From cd08bf41f787659948901ec5dc7f468ab7fcded6 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期一, 20 五月 2024 11:12:56 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Down.java                            |   68 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java                  |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java                                          |  105 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java                                      |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java                          |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java                                                     |   58 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java                        |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java        |   13 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java                         |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java                           |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java                                        |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java                            |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java                            |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java                            |   26 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java            |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java                              |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java                       |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java                              |   34 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java                                |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java                        |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java                            |    5 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.gitignore                                                                            |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java                           |   12 
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java                                       |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java                            |   18 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml                                                        |  213 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitConfigVo.java                              |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                                            |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolsDeal.java                |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java                            |   76 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml                                                |   43 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java                            |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java                                 |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java                           |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_CoreUnit.java                                 |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockDeal.java                       |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java                                   |   13 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java                           |   12 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrProject.java                                              |  111 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java                            |   11 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java                               |   77 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java                            |    1 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw                                                                                       |    0 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml                                                              |    0 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java                            |   87 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java                            |   71 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml                                                                                    |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java                            |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/PipIrrMwRtuApplication.java                                     |   29 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/test/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplicationTests.java             |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java             |   15 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java                   |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_TcpUnit.java                                  |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java                            |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockVo.java                         |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.jar                                                        |    0 
 pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/PipIrrDemoApplication.java                              |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java                         |   90 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml                                               |   22 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/WebResponseVo.java                                |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java                            |    4 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java                      |   29 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application.yml                                                         |   18 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java                            |   18 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java                            |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java                            |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java         |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java                                 |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml                                                         |   13 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java             |   52 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java                                   |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java                            |    3 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java                             |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java                              |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java                              |   94 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java                            |   18 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java                            |   18 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java                              |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java                            |   62 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ResourceUnit.java                             |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdXyVo.java                            |   31 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java                            |   85 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java                         |  113 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/pom.xml                                                                               |  141 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java                                |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataCache.java                                |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java                            |   49 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java            |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java                                   |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java                            |   49 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java                                    |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java                            |   46 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuLogDealer.java                                 |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java                            |  115 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java                              |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java                            |   18 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java                              |   21 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java                            |   69 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java                               |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Down.java                            |   93 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java                                                 |   15 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java                           |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java                  |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java                            |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java                            |  125 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java                                     |   10 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolVo.java                   |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeParse.java                                   |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java                              |  118 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Down.java                            |   96 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java                |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitAdapter.java                               |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java                            |   43 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java                 |    6 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                                         |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java                  |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java                  |   10 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultNode.java                            |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtilUnsigned.java                                               |  144 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/test/java/com/dy/rtuMw/PipIrrMwAcceptApplicationTests.java                             |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java                            |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java                              |    5 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeConfig.java                                  |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java                                 |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java                            |   89 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java                                         |   58 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/resources/application.yml                                                    |   29 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/RtuSv.java                                  |   12 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.properties                                                      |    0 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java           |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuDownTask.java                                   |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java                              |   72 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java    |   41 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java                              |  120 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java                            |  115 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogNode.java                                 |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/java/com/dy/pipIrrGis/PipIrrGisApplication.java                                 |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java                           |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoIntake.java                                                 |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/springUtil/RestTemplateConfiguration.java                                |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationOnLine.java                                        |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionError.java                         |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java                              |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java                            |   69 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java                              |   80 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java                            |   76 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java                            |   38 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java                          |  149 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogManager.java                              |    4 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml                                                              |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java                                 |   14 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java          |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java                           |   64 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java                  |   49 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java                             |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java                        |   15 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java        |  173 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java                     |   13 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.properties                                                 |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java                         |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java                                               |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java                       |   10 
 pipIrr-platform/pipIrr-mw/pom.xml                                                                                                  |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java                           |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java                              |   48 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java                              |   12 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java                           |   81 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java                       |   53 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/说明.txt                                      |    0 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd24Vo.java                           |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java                            |   18 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java                         |  209 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Up.java                              |   73 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java                              |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java                         |  149 +
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java               |   29 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java                              |   14 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java                              |    8 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/说明.txt                                            |    9 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitAdapter.java                          |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9CVo.java                           |    3 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/Command.java                                |  217 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Test.java                                  |   18 
 pipIrr-platform/pipIrr-web/pom.xml                                                                                                 |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Down.java                            |   85 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_SupportUnit.java                              |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd31Vo.java                           |    3 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java                              |    7 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java                       |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java |   25 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml                                                     |   53 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCdXyVo.java                           |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java                            |   70 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java                            |  128 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml                                                |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java                              |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java                        |  261 +
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java        |  161 
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java            |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java                              |    7 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java                         |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/singleDataSource/DruidDataSourceConfig.java                              |   28 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java                            |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java                            |   10 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkRtuData.java                                   |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java                     |    7 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java                            |    8 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnit.java                                      |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java                            |  121 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd88Vo.java                            |   20 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RtuDataUnit.java                              |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java                        |  246 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java                            |   76 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskConfig.java                                  |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java                         |   46 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultCache.java                           |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/TrampControllerQueryVo.java      |   34 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java                |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java                            |   43 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataNode.java                                 |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java                            |    6 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java                              |   10 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java                 |    6 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java                     |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/PipIrrProjectApplication.java                     |    9 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Down.java                            |   77 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java                       |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java                              |    9 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java                                 |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java          |   36 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnit.java                                 |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCacheBk.java                            |    4 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java                           |   11 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.jar                                                             |    0 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/Task.java                                        |    2 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw.cmd                                                                                   |    0 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw                                                                                  |    0 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java                            |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java                      |   15 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java                              |  129 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuSessionStatus.java                             |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineVo.java                     |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forRmi/RmiRequestedCallback.java                         |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitConfigVo.java                         |    5 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java                            |   88 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java                              |   82 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationDriver.java                                        |    2 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java                                    |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupport.java                             |  101 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java                            |   66 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml                                                     |    2 
 /dev/null                                                                                                                          |   18 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java  |   14 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java                              |   73 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java                              |   73 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.gitignore                                                                                 |    2 
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw.cmd                                                                              |    0 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java                 |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java         |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java                                                |   46 
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RmiUnit.java                                  |    4 
 272 files changed, 7,932 insertions(+), 816 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationDriver.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationDriver.java
index a8a700d..b9c299b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationDriver.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationDriver.java
@@ -9,4 +9,6 @@
      * 鍗忚鍚嶇О锛屽悇涓崗璁悕绉颁笉鑳芥湁閲嶅鐜拌薄
      */
     String name() default "" ;
+
+    boolean enable() default true ;
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationOnLine.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationOnLine.java
index 4e2069a..410c230 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationOnLine.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationOnLine.java
@@ -13,6 +13,12 @@
      * 鎵�灞炲崗璁悕绉�
      */
 	String protocolName() default "" ;
+
+    /**
+     * 閰嶇疆鏄惁鍚姩
+     * @return
+     */
+	boolean enable() default true ;
     /**
      * 涓轰紭鍏堢骇(浠�1寮�濮嬶紝鏈�灏忎负1锛屽悇鍗忚闂翠紭鍏堢骇鐩稿樊1)锛屾暟瀛楄秺灏忕骇鍒秺楂樸��
      * 鑻ユ湁澶氫釜鍗忚锛屽悇涓崗璁殑涓婄嚎澶勭悊绫讳互浼樺厛绾ц繘琛屾帓搴忥紝浼樺厛绾ч珮鐨勫厛澶勭悊涓婄嚎鏁版嵁銆�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java
index 75ab6a9..e86b049 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java
@@ -12,7 +12,13 @@
     /**
      * 鎵�灞炲崗璁悕绉� 
      */
-	String protocolName() default "" ; 
+	String protocolName() default "" ;
+
+	/**
+	 * 閰嶇疆鏄惁鍚姩
+	 * @return
+	 */
+	boolean enable() default true ;
     /**
      * 涓轰紭鍏堢骇(浠�1寮�濮嬶紝鏈�灏忎负1锛屽悇鍗忚闂翠紭鍏堢骇鐩稿樊1)锛屾暟瀛楄秺灏忕骇鍒秺楂樸��
      * 鑻ユ湁澶氫釜鍗忚锛屽悇涓崗璁殑涓婄嚎澶勭悊绫讳互浼樺厛绾ц繘琛屾帓搴忥紝浼樺厛绾ч珮鐨勫厛澶勭悊涓婄嚎鏁版嵁銆�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java
index 2b3aa3a..3eea8c9 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationScan.java
@@ -75,14 +75,16 @@
 						if(clazz.isAnnotationPresent(AnnotationDriver.class)){
 							AnnotationDriver ann = clazz.getAnnotation(AnnotationDriver.class) ;
 							if(ann != null){
-								protocolName = ann.name() ;
-								if(!(protocolName.trim().equals(""))){
-									if(driverMap.containsKey(protocolName)){
-										throw new Exception("涓ラ噸閿欒锛屽崗璁┍鍔ㄥ悕绉�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+								if(ann.enable()){
+									protocolName = ann.name() ;
+									if(!(protocolName.trim().equals(""))){
+										if(driverMap.containsKey(protocolName)){
+											throw new Exception("涓ラ噸閿欒锛屽崗璁┍鍔ㄥ悕绉�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+										}
+										driverMap.put(protocolName, new AnnotationDriverVo(clazz)) ;
+									}else{
+										throw new Exception("涓ラ噸閿欒锛屽崗璁┍鍔ㄥ悕绉版敞瑙e�间负绌哄瓧绗︿覆") ;
 									}
-									driverMap.put(protocolName, new AnnotationDriverVo(clazz)) ;
-								}else{
-									throw new Exception("涓ラ噸閿欒锛屽崗璁┍鍔ㄥ悕绉版敞瑙e�间负绌哄瓧绗︿覆") ;
 								}
 							}
 						}
@@ -91,61 +93,64 @@
 						if(clazz.isAnnotationPresent(AnnotationPrefixedDataAvailable.class)){
 							AnnotationPrefixedDataAvailable ann = clazz.getAnnotation(AnnotationPrefixedDataAvailable.class) ;
 							if(ann != null){
-								protocolName = ann.protocolName() ;
-								if(!(protocolName.trim().equals(""))){
-									if(prefixedDataAvailableMap.containsKey(protocolName)){
-										throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶅崗璁┍鍔�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+								if(ann.enable()){
+									protocolName = ann.protocolName() ;
+									if(!(protocolName.trim().equals(""))){
+										if(prefixedDataAvailableMap.containsKey(protocolName)){
+											throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶅崗璁┍鍔�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+										}
+									}else{
+										throw new Exception("涓ラ噸閿欒锛屼笂琛屾暟鎹畬鏁存�ф鏌ユ墍閰嶅崗璁┍鍔ㄦ敞瑙e�间负绌哄瓧绗︿覆") ;
 									}
-								}else{
-									throw new Exception("涓ラ噸閿欒锛屼笂琛屾暟鎹畬鏁存�ф鏌ユ墍閰嶅崗璁┍鍔ㄦ敞瑙e�间负绌哄瓧绗︿覆") ;
-								}
 
-								priority = ann.priority() ;
-								if(priority == 0){
-									throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄紭鍏堢骇娉ㄨВ涓嶈兘涓�0") ;
-								}
-								if(isRepeatPrefixedDataAvailablePriority(priority, prefixedDataAvailableMap)){
-									throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄紭鍏堢骇娉ㄨВ(priority)鏁板��" + priority + "閲嶅") ;
-								}
+									priority = ann.priority() ;
+									if(priority == 0){
+										throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄紭鍏堢骇娉ㄨВ涓嶈兘涓�0") ;
+									}
+									if(isRepeatPrefixedDataAvailablePriority(priority, prefixedDataAvailableMap)){
+										throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄紭鍏堢骇娉ㄨВ(priority)鏁板��" + priority + "閲嶅") ;
+									}
 
-								onLineDataMinLength = ann.onLineDataMinLength() ;
-						/*姘旇薄鍗忚涓�0
-						if(onLineDataMinLength == 0){
-							throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄笂绾挎暟鎹渶灏忛暱搴︽敞瑙d笉鑳戒负0") ;
-						}
-						*/
-								headMinLength = ann.headMinLength() ;
-						/*姘旇薄鍗忚涓�0
-						if(headMinLength == 0){
-							throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄笂鎶ユ暟鎹殑澶撮儴鏈�灏忛暱搴︽敞瑙d笉鑳戒负0") ;
-						}
-						*/
-
-								prefixedDataAvailableMap.put(protocolName, new AnnotationPrefixedDataAvailableVo(clazz, protocolName, priority, onLineDataMinLength, headMinLength, ProtocolConstant.errorMaxLength)) ;
+									onLineDataMinLength = ann.onLineDataMinLength() ;
+									/*姘旇薄鍗忚涓�0
+									if(onLineDataMinLength == 0){
+										throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄笂绾挎暟鎹渶灏忛暱搴︽敞瑙d笉鑳戒负0") ;
+									}
+									*/
+												headMinLength = ann.headMinLength() ;
+									/*姘旇薄鍗忚涓�0
+									if(headMinLength == 0){
+										throw new Exception("涓ラ噸閿欒锛� 涓婅鏁版嵁瀹屾暣鎬ф鏌ユ墍閰嶄笂鎶ユ暟鎹殑澶撮儴鏈�灏忛暱搴︽敞瑙d笉鑳戒负0") ;
+									}
+									*/
+									prefixedDataAvailableMap.put(protocolName, new AnnotationPrefixedDataAvailableVo(clazz, protocolName, priority, onLineDataMinLength, headMinLength, ProtocolConstant.errorMaxLength)) ;
+								}
 							}
 						}
 
 						if(clazz.isAnnotationPresent(AnnotationOnLine.class)){
 							AnnotationOnLine ann = clazz.getAnnotation(AnnotationOnLine.class) ;
 							if(ann != null){
-								protocolName = ann.protocolName() ;
-								if(!(protocolName.trim().equals(""))){
-									if(onLineMap.containsKey(protocolName)){
-										throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶅崗璁┍鍔�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+								if(ann.enable()){
+									protocolName = ann.protocolName() ;
+									if(!(protocolName.trim().equals(""))){
+										if(onLineMap.containsKey(protocolName)){
+											throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶅崗璁┍鍔�" + protocolName + "鍑虹幇浜嗛噸澶嶆敞瑙o紒") ;
+										}
+									}else{
+										throw new Exception("涓ラ噸閿欒锛屼笂绾挎暟鎹垎鏋愭墍閰嶅崗璁┍鍔ㄦ敞瑙e�间负绌哄瓧绗︿覆") ;
 									}
-								}else{
-									throw new Exception("涓ラ噸閿欒锛屼笂绾挎暟鎹垎鏋愭墍閰嶅崗璁┍鍔ㄦ敞瑙e�间负绌哄瓧绗︿覆") ;
-								}
 
-								priority = ann.priority() ;
-								if(priority == 0){
-									throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶄紭鍏堢骇娉ㄨВ涓嶈兘涓�0") ;
-								}
-								if(isRepeatOnLinePriority(priority, onLineMap)){
-									throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶄紭鍏堢骇娉ㄨВ(priority)鏁板��" + priority + "閲嶅") ;
-								}
+									priority = ann.priority() ;
+									if(priority == 0){
+										throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶄紭鍏堢骇娉ㄨВ涓嶈兘涓�0") ;
+									}
+									if(isRepeatOnLinePriority(priority, onLineMap)){
+										throw new Exception("涓ラ噸閿欒锛� 涓婄嚎鏁版嵁鍒嗘瀽鎵�閰嶄紭鍏堢骇娉ㄨВ(priority)鏁板��" + priority + "閲嶅") ;
+									}
 
-								onLineMap.put(protocolName, new AnnotationOnLineVo(clazz, protocolName, priority)) ;
+									onLineMap.put(protocolName, new AnnotationOnLineVo(clazz, protocolName, priority)) ;
+								}
 							}
 						}
 					}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
index 933e980..c979a5d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Command.java
@@ -44,11 +44,6 @@
 	 * 鍔熻兘鐮�
 	 */
 	public String code ; 
-	
-	/**
-	 * 涓嶈繑鍥炰腑闂翠欢瀵瑰懡浠ゅ鐞嗙粨鏋滐紙true锛氫笉杩斿洖澶勭悊缁撴灉锛宖alse鎴杗ull锛氳繑鍥炲鐞嗙粨鏋滐級
-	 */
-	public Boolean noRtMwDealRes ;
 
 	/**
 	 * rtu杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
@@ -71,7 +66,7 @@
 		s += (rtuAddr == null ? "" : ("Rtu鍦板潃=" + rtuAddr + "\n"));
 		s += "鍛戒护绫诲瀷=" + (type.equals(CommandType.innerCommand)?"鍐呴儴鍛戒护":"RTU鍛戒护") + "\n" ;
 		s += (code == null ? "" : ("鍔熻兘鐮�=" + code + "\n")) ;
-		s += "鏄惁杩斿洖涓棿浠跺鍛戒护澶勭悊缁撴灉=" + (noRtMwDealRes == null?"鏄�":(noRtMwDealRes?"鏄�":"鍚�") + "\n") ;
+		s += (rtuResultSendWebUrl == null ? "" : ("鍥炶皟缃戝潃=" + rtuResultSendWebUrl + "\n"));
 		if(param != null){
 			s += "鍙傛暟:" + param  ;
 		}
@@ -205,14 +200,6 @@
 	public Command setCode(String code) {
 		this.code = code;
 		return this ;
-	}
-	@SuppressWarnings("unused")
-	public Boolean getNoRtMwDealRes() {
-		return noRtMwDealRes;
-	}
-	@SuppressWarnings("unused")
-	public void setNoRtMwDealRes(Boolean noRtMwDealRes) {
-		this.noRtMwDealRes = noRtMwDealRes;
 	}
 	public Object getParam() {
 		return param;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java
index 8d2ac78..488f85a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/DriverV1_0_1.java
@@ -6,7 +6,7 @@
 import java.net.URI;
 import java.net.URL;
 
-@AnnotationDriver(name= ProtocolConstantV206V1_0_0.protocolName)
+@AnnotationDriver(enable = false, name= ProtocolConstantV206V1_0_0.protocolName)
 public class DriverV1_0_1 extends Driver {
 	
 	private static String scanRootPackage = "com.dy.common.mw.protocol.p206V1_0_0." ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
index 69d63a1..922a1ba 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/OnLineV1_0_1.java
@@ -4,6 +4,7 @@
 import com.dy.common.mw.protocol.OnLine;
 
 @AnnotationOnLine(
+		enable = false,
 		protocolName = ProtocolConstantV206V1_0_0.protocolName,
 		priority = ProtocolConstantV206V1_0_0.priority)
 @SuppressWarnings("unused")
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
index b991de9..daf9862 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/PrefixedDataAvailableV1_0_1.java
@@ -11,6 +11,7 @@
 
 
 @AnnotationPrefixedDataAvailable(
+		enable = false,
 		protocolName = ProtocolConstantV206V1_0_0.protocolName,
 		priority = ProtocolConstantV206V1_0_0.priority,
 		onLineDataMinLength = ProtocolConstantV206V1_0_0.onLineDataMinLength,
diff --git "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
index 6505ee9..bcc9c0e 100644
--- "a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
+++ "b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/\350\257\264\346\230\216.txt"
@@ -2,11 +2,16 @@
 鍦ㄤ粬绂昏亴鍚庯紝浠庨煩鏈堝寰楀埌鏈�鏂板崗璁紝骞跺仛浜嗛儴鍒嗗崗璁蒋浠跺疄鐜颁慨鏀癸紝
 鍙戠幇鏂板崗璁腑鏈変竴浜涘崗璁畾涔夋湁閲嶅锛屼篃鏈夐敊璇殑锛屾墍浠ヨ繖鐗堟湰鍗忚鏈叏閮ㄥ疄鐜帮紝
 浣嗗疄鐜扮殑閮ㄥ垎鍙互鐢ㄦ潵娴嬭瘯娴嬫帶涓�浣撻榾锛堜笌娈靛織寮轰竴璧锋祴璇曡繃锛夈��
-鐩墠鎯呭喌涓嬶紝杩欑増鏈崗璁疄鐜颁笉鑳藉簲鐢ㄤ簬瀹為檯椤圭洰涓紝濡傛灉蹇呴』瀹炵幇锛�
+鐩墠鎯呭喌涓嬶紝杩欑増鏈崗璁紪鐮佷笉鑳藉簲鐢ㄤ簬瀹為檯椤圭洰涓紝濡傛灉蹇呴』瀹炵幇锛�
 杩橀渶瑕佺粨鍚堢‖浠跺崗璁叿浣撳疄鐜板唴瀹瑰啀瀹炵幇閫氫俊涓棿浠剁殑鍗忚瑙f瀽涓庢瀯閫犻儴鍒嗭紝
 杩橀渶瑕佸疄鐜颁笂琛屾暟鎹鐞嗕换鍔℃爲閮ㄥ垎銆�
 
 
 闈虫�荤増娴嬫帶涓�浣撻榾涓庣帇姹熸捣鐗堟祴鎺т竴浣撻榾涓嶈兘鍦ㄥ悓涓�涓腑闂翠欢杩愯锛�
 鍥犱负涓や釜鐗堟湰鐨勫崗璁崗璁ご閮戒竴鏍凤紝娌℃硶鍖哄垎寮�鏉ワ紝濡傛灉涓ょ璁惧
-閮借搴旂敤锛岄渶瑕侀儴缃蹭袱涓�氫俊涓棿浠躲��
\ No newline at end of file
+閮借搴旂敤锛岄渶瑕侀儴缃蹭袱涓�氫俊涓棿浠躲��
+
+褰撳墠鎶奃riverV1_0_1椹卞姩閰嶇疆涓轰笉璧蜂綔鐢細
+DriverV1_0_1绫绘敞瑙nable = false
+PrefixedDataAvailableV1_0_1绫绘敞瑙nable = false
+OnLineV1_0_1绫绘敞瑙nable = false
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
index 0be4b8b..ed18635 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CodeV202404.java
@@ -81,7 +81,7 @@
 			(code.equals(cd_25) ? "璁剧疆璁惧缁堢閲嶆柊娉ㄥ唽" :
 			(code.equals(cd_9B) ? "娓呴櫎璁惧缁堢娉ㄥ唽鍙�" :
 			(code.equals(cd_9C) ? "榛戝悕鍗曡繙绋嬪己鍒跺叧闂按娉�/闃�闂�" :
-			(code.equals(cd_C2) ? "寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤" :
+			(code.equals(cd_C2) ? "寮�鍏虫按娉�/闃�闂ㄧ粨鏋滀笂鎶�" :
 			""))))))))))))))))))))))))))))))))))))))) ;
 		return name ;
 	}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java
index 42c9190..86f8b00 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/CommonV202404.java
@@ -172,9 +172,9 @@
     public byte createCtrl(byte dir, byte funcCode){
         byte b = dir;//DIR = 1(0x80)锛岃〃绀烘甯ф姤鏂囨槸鐢辩粓绔彂鍑虹殑涓婅鎶ユ枃锛�
         b = (byte)(b | funcCode) ;
-        //DIV = 1(0x40)锛岃〃绀烘鎶ユ枃宸茶鎷嗗垎涓鸿嫢骞插抚
-        //FCB = 1(0x08)锛岃〃绀哄彧鍙戜竴娆�
-        b = (byte)(b |0x08) ;
+        //DIV = 1(0x20)锛岃〃绀烘鎶ユ枃宸茶鎷嗗垎涓鸿嫢骞插抚
+        //FCB = 1(0x10)锛岃〃绀哄彧鍙戜竴娆�
+        b = (byte)(b |0x10) ;
         //DIR = 0 涓嬭锛屽垯鍔熻兘鐮侀噰鐢�0
         return b ;
     }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java
deleted file mode 100644
index 65f6fcb..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataAlarmVo.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404;
-
-import lombok.Data;
-
-@Data
-public class DataAlarmVo {
-    public Byte batteryVolt ;// 钃勭數姹犵數鍘�
-    public Byte loss ;//婕忔崯
-    public Byte meter ;//浠〃
-    public Byte valve ;//闃�闂�
-
-    public String toString(){
-        StringBuilder str = new StringBuilder() ;
-        str.append("      鎶ヨ:\n");
-        str.append("         钃勭數姹犵數鍘嬶細");
-        str.append(batteryVolt==null?"":(batteryVolt==1?"鎶ヨ":"姝e父"));
-        str.append("\n");
-        str.append("         婕忔崯锛�");
-        str.append(loss==null?"":(loss==1?"鎶ヨ":"姝e父"));
-        str.append("\n");
-        str.append("         浠〃锛�");
-        str.append(meter==null?"":(meter==1?"鎶ヨ":"姝e父"));
-        str.append("\n");
-        str.append("         闃�闂細");
-        str.append(valve==null?"":(valve==1?"鎶ヨ":"姝e父"));
-        return str.toString() ;
-    }
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java
deleted file mode 100644
index 41acc0d..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/DataStateVo.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404;
-
-import lombok.Data;
-
-@Data
-public class DataStateVo  {
-    public Byte icCard;// IC鍗″姛鑳�
-    public Byte working;//宸ヤ綔鐘舵��
-    public Byte valve ;//闃�闂�
-
-    public String toString(){
-        StringBuilder str = new StringBuilder() ;
-        str.append("      鐘舵��:\n");
-        str.append("         IC 鍗″姛鑳斤細");
-        str.append(icCard ==null?"":(icCard ==1?"鏈夋晥":"鏃犳晥"));
-        str.append("\n");
-        str.append("         宸ヤ綔鐘舵�侊細");
-        str.append(working ==null?"":(working ==1?"鍚姩":"鍋滄"));
-        str.append("\n");
-        str.append("         闃�闂ㄧ姸鎬侊細");
-        str.append(valve==null?"":(valve==1?"鎵撳紑":"鍏抽棴"));
-        return str.toString() ;
-    }
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
index e453294..54f2c5c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd15Vo.java
@@ -7,7 +7,7 @@
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
     public String icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
-    public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+    public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
     public Double chargeMoney ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
     public Double chargeWater ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
     public String flowNo ;//娴佹按鍙凤紙12浣嶆暟瀛楋級
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
index 325814f..a7105c2 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd16Vo.java
@@ -6,6 +6,6 @@
 public class ComCd16Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
-    public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
-    public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
+    public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
+    public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java
new file mode 100644
index 0000000..015fe88
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd21Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd21Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+    public String ip ;//IP锛堜緥濡� 125.235.35.89锛�
+    public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java
new file mode 100644
index 0000000..ff1e0d5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd22Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd22Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer maxAmountYear ;//鏈轰簳骞存渶澶х敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+    public Double limitLevel ;//姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java
new file mode 100644
index 0000000..3c6c962
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd23Vo.java
@@ -0,0 +1,12 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd23Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+    public String domain ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
+    public Integer port ;//绔彛鍙凤紙0~65536锛�
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd24Vo.java
similarity index 72%
copy from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
copy to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd24Vo.java
index b2d917d..bd78bcd 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd24Vo.java
@@ -3,7 +3,8 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd24Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String registerNo ;//璁惧娉ㄥ唽鍙凤紝16杩涘埗鏁版嵁锛屾渶澶�16涓瓧鑺�
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
new file mode 100644
index 0000000..6662a05
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd26Vo.java
@@ -0,0 +1,11 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd26Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer ipChannel ;//IP閫氶亾鍙� 0x01:1閫氶亾 0x02:2閫氶亾.
+    public Integer maxAmountYear ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd31Vo.java
similarity index 81%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd31Vo.java
index b2d917d..84191a3 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd31Vo.java
@@ -3,7 +3,8 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd31Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Boolean valid ;//鏈夋晥鎬�
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java
deleted file mode 100644
index 451017f..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd50Vo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.downVos;
-
-import lombok.Data;
-
-@Data
-public class ComCd50Vo {
-    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
-    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java
deleted file mode 100644
index d162f87..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd56Vo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.downVos;
-
-import lombok.Data;
-
-@Data
-public class ComCd56Vo {
-    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
-    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java
similarity index 76%
copy from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
copy to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java
index b2d917d..e6dc649 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd86Vo.java
@@ -3,7 +3,8 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd86Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java
similarity index 76%
copy from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
copy to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java
index b2d917d..dbd0dff 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd87Vo.java
@@ -3,7 +3,8 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd87Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public Integer channel ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java
new file mode 100644
index 0000000..fd7c258
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd92_A2Vo.java
@@ -0,0 +1,15 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+import lombok.Data;
+
+@Data
+public class ComCd92_A2Vo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+    public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺, 涓や釜灏忔暟鐐�, 鍗曚綅m3, 0~99999999.99
+    public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦, 涓や釜灏忔暟鐐�, 鍗曚綅鍏�, 0~999999.99
+    public Double waterPrice ;//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+    public Double elePrice ;//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+    public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java
similarity index 61%
copy from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
copy to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java
index b2d917d..d1d6369 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd93_A3Vo.java
@@ -3,7 +3,9 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd93_A3Vo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+    public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java
deleted file mode 100644
index 2b3c096..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd97Vo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.downVos;
-
-import lombok.Data;
-
-@Data
-public class ComCd97Vo {
-    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
-    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java
deleted file mode 100644
index 239f2c3..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd98Vo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.downVos;
-
-import lombok.Data;
-
-@Data
-public class ComCd98Vo {
-    public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
-    public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9CVo.java
similarity index 75%
copy from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
copy to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9CVo.java
index b2d917d..5a94de7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd5BVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCd9CVo.java
@@ -3,7 +3,8 @@
 import lombok.Data;
 
 @Data
-public class ComCd5BVo {
+public class ComCd9CVo {
     public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
     public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+    public String icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCdXyVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCdXyVo.java
new file mode 100644
index 0000000..2cb0c6e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/downVos/ComCdXyVo.java
@@ -0,0 +1,6 @@
+package com.dy.common.mw.protocol.p206V202404.downVos;
+
+public class ComCdXyVo {
+    public String controllerType;//鎺у埗鍣ㄧ被鍨�:  01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+    public Integer projectNo ;//椤圭洰缂栧彿
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java
index 15eb423..d444e08 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Down.java
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
index b55c10e..a0617e7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_02_Up.java
@@ -83,7 +83,7 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd02Vo cdData = new DataCd02Vo() ;
+        DataCd02Vo cdData = new DataCd02Vo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, ProtocolConstantV206V202404.dataIndex, 1) ;
         cdData.projectNo = 0 + bs[ProtocolConstantV206V202404.dataIndex + 1];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
index 8cd9aa2..99149ed 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Down.java
@@ -1,6 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
@@ -20,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -46,7 +48,8 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd10Vo cvo = JSON.parseObject(json, ComCd10Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd10Vo涓簄ull") ;
@@ -64,7 +67,7 @@
             index += 8 ;
             GlCreate.createPw(bs, index);
 
-            index ++ ;
+            index += 2 ;
             GlCreate.createS2D(bs, index) ;
 
             index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
index c3158a6..690100c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_10_Up.java
@@ -54,13 +54,13 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd10Vo cdData = new DataCd10Vo() ;
+        DataCd10Vo cdData = new DataCd10Vo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
         cdData.rtuNewAddr = new CommonV202404().parseRtuAddr(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
index a853664..e8c91f0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Down.java
@@ -1,6 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
@@ -22,6 +23,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -48,7 +50,8 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd15Vo cvo = JSON.parseObject(json, ComCd15Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd15Vo涓簄ull") ;
@@ -62,7 +65,7 @@
             if(cvo.flowNo.length() != 12){
                 throw new Exception("娴佹按鍙峰繀椤绘槸12浣嶆暟瀛�") ;
             }
-            byte[] bs = new byte[17] ;
+            byte[] bs = new byte[43] ;
             int index = 0 ;
             bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
 
@@ -96,9 +99,9 @@
                     bs[index++] = 0 ;
                 }
             }
-            if(cvo.chargeMoney != null){
-                String chargeMoney = "" + (Double.valueOf(cvo.chargeWater * 100)).longValue() ;
-                byte[] bTemp = ByteUtil.string2BCD_LE(chargeMoney) ;
+            if(cvo.chargeWater != null){
+                String chargeWater = "" + (Double.valueOf(cvo.chargeWater * 100)).longValue() ;
+                byte[] bTemp = ByteUtil.string2BCD_LE(chargeWater) ;
                 int bTempLen = bTemp.length ;
                 int count = 0 ;
                 for(int i = 0 ; i < bTempLen; i++){
@@ -120,9 +123,12 @@
             ByteUtil.string2BCD_BE(bs, cvo.flowNo, index) ;
 
             index += 6 ;
+            GlCreate.createDt(bs, index);
+
+            index += 6 ;
             GlCreate.createPw(bs, index);
 
-            index ++ ;
+            index += 2 ;
             GlCreate.createS2D(bs, index) ;
 
             index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
index 0ff2a95..ed670fb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_15_Up.java
@@ -3,8 +3,7 @@
 
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd15Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -55,13 +54,13 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd15Vo cdData = new DataCd15Vo() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
 
         index++ ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
index 4dc4781..ed8cf0a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Down.java
@@ -1,6 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
@@ -22,6 +23,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -48,18 +50,18 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd16Vo cvo = JSON.parseObject(json, ComCd16Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd16Vo涓簄ull") ;
             }
-            if(cvo.moneyAlarm < 0 || cvo.moneyAlarm > 65535){
-                throw new Exception("鍓╀綑閲戦鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            if(cvo.moneyAlarm < 0 || cvo.moneyAlarm > 9999){
+                throw new Exception("鍓╀綑閲戦鎶ヨ鍊煎繀椤绘槸0~9999鑼冨洿鍐呯殑鏁存暟") ;
             }
-            if(cvo.waterAlarm < 0 || cvo.waterAlarm > 65535){
-                throw new Exception("鍓╀綑姘撮噺鎶ヨ鍊煎繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            if(cvo.waterAlarm < 0 || cvo.waterAlarm > 9999){
+                throw new Exception("鍓╀綑姘撮噺鎶ヨ鍊煎繀椤绘槸0~9999鑼冨洿鍐呯殑鏁存暟") ;
             }
-
 
             byte[] bs = new byte[13] ;
             int index = 0 ;
@@ -68,16 +70,43 @@
             index ++ ;
             bs[index] = cvo.projectNo.byteValue() ;
 
-            index ++ ;
-            ByteUtilUnsigned.short2Bytes_BE(bs, cvo.waterAlarm, index);
 
             index ++ ;
-            ByteUtilUnsigned.short2Bytes_BE(bs, cvo.moneyAlarm, index);
+            String strTemp = "" + cvo.waterAlarm ;
+            byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            int bTempLen = bTemp.length ;
+            int count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 2){
+                    break ;
+                }
+            }
+            for(; count < 2; count++){
+                bs[index++] = 0 ;
+            }
+
+            index += 4 ;
+            strTemp = "" + cvo.moneyAlarm ;
+            bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            bTempLen = bTemp.length ;
+            count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 2){
+                    break ;
+                }
+            }
+            for(; count < 2; count++){
+                bs[index++] = 0 ;
+            }
 
             index ++ ;
             GlCreate.createPw(bs, index);
 
-            index ++ ;
+            index += 2 ;
             GlCreate.createS2D(bs, index) ;
 
             index += 4 ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java
new file mode 100644
index 0000000..7d3dea2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_16_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_16
+})
+@SuppressWarnings("unused")
+public class Cd_16_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_16_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
new file mode 100644
index 0000000..1e23b06
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Down.java
@@ -0,0 +1,121 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+import java.nio.charset.StandardCharsets;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_21
+})
+public class Cd_21_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd21Vo cvo = JSON.parseObject(json, ComCd21Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+            }
+            if(cvo.channel == null){
+                throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+            }
+            if(cvo.channel != 1 && cvo.channel != 2){
+                throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+            }
+            if(cvo.ip == null || cvo.ip.equals("")){
+                throw new Exception("IP涓嶈兘涓虹┖") ;
+            }
+            if(cvo.ip.length() > 15){
+                throw new Exception("IP鏈�澶ч暱搴︽槸15涓瓧绗�") ;
+            }
+            if(cvo.port < 0 || cvo.port > 65535){
+                throw new Exception("绔彛鍙峰繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            }
+
+            byte[] ipBs = cvo.ip.getBytes(StandardCharsets.UTF_8) ;
+            byte[] portBs = ("" + cvo.port).getBytes(StandardCharsets.UTF_8) ;
+
+            byte[] bs = new byte[4] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.channel.byteValue() ;
+
+            index ++ ;
+            bs[index] = (byte)((ipBs.length << 4) + portBs.length) ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+            bytes = ByteUtil.bytesMerge(bytes, ipBs) ;
+            bytes = ByteUtil.bytesMerge(bytes, portBs) ;
+
+
+            byte[] bs1 = new byte[7] ;
+            index ++ ;
+            GlCreate.createPw(bs1, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs1, index) ;
+
+            index += 4 ;
+            bs1[index] = 0 ; //鏃跺欢
+            bytes = ByteUtil.bytesMerge(bytes, bs1) ;
+
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java
new file mode 100644
index 0000000..37ec76b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_21_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_21
+})
+@SuppressWarnings("unused")
+public class Cd_21_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_21_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
new file mode 100644
index 0000000..f9970b2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Down.java
@@ -0,0 +1,128 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd16Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_22
+})
+public class Cd_22_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd22Vo cvo = JSON.parseObject(json, ComCd22Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd22Vo涓簄ull") ;
+            }
+            if(cvo.maxAmountYear < 0 || cvo.maxAmountYear > 99999999){
+                throw new Exception("鏈轰簳骞存渶澶х敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
+            }
+            if(cvo.limitLevel < 0 || cvo.limitLevel > 9999.99){
+                throw new Exception("姘翠綅涓嬮檺鍊煎繀椤绘槸0~9999.99鑼冨洿鍐呯殑鏁存暟") ;
+            }
+
+            byte[] bs = new byte[17] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            String strTemp = "" + cvo.maxAmountYear ;
+            byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            int bTempLen = bTemp.length ;
+            int count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 4){
+                    break ;
+                }
+            }
+            for(; count < 4; count++){
+                bs[index++] = 0 ;
+            }
+
+            index += 4 ;
+            strTemp = "" + (Double.valueOf(cvo.limitLevel * 100)).longValue() ;
+            bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            bTempLen = bTemp.length ;
+            count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 3){
+                    break ;
+                }
+            }
+            for(; count < 3; count++){
+                bs[index++] = 0 ;
+            }
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java
new file mode 100644
index 0000000..12eb306
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_22_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_22
+})
+@SuppressWarnings("unused")
+public class Cd_22_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_22_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
new file mode 100644
index 0000000..089d4d6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Down.java
@@ -0,0 +1,125 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd23Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+import java.nio.charset.StandardCharsets;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_23
+})
+public class Cd_23_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd23Vo cvo = JSON.parseObject(json, ComCd23Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd23Vo涓簄ull") ;
+            }
+            if(cvo.channel == null){
+                throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+            }
+            if(cvo.channel != 1 && cvo.channel != 2){
+                throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+            }
+            if(cvo.domain == null || cvo.domain.equals("")){
+                throw new Exception("鍩熷悕涓嶈兘涓虹┖") ;
+            }
+            if(cvo.domain.length() > 42){
+                throw new Exception("鍩熷悕鏈�澶ч暱搴︽槸42涓瓧绗�") ;
+            }
+            if(cvo.port < 0 || cvo.port > 65535){
+                throw new Exception("绔彛鍙峰繀椤绘槸0~65535鑼冨洿鍐呯殑鏁存暟") ;
+            }
+
+            byte[] domainBs = cvo.domain.getBytes(StandardCharsets.UTF_8) ;
+            byte[] portBs = ("" + cvo.port).getBytes(StandardCharsets.UTF_8) ;
+
+            byte[] bs = new byte[5] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.channel.byteValue() ;
+
+            index ++ ;
+            bs[index] = (byte)(domainBs.length) ;
+
+            index ++ ;
+            bs[index] = (byte)(portBs.length) ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+            bytes = ByteUtil.bytesMerge(bytes, domainBs) ;
+            bytes = ByteUtil.bytesMerge(bytes, portBs) ;
+
+
+            byte[] bs1 = new byte[7] ;
+            index ++ ;
+            GlCreate.createPw(bs1, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs1, index) ;
+
+            index += 4 ;
+            bs1[index] = 0 ; //鏃跺欢
+            bytes = ByteUtil.bytesMerge(bytes, bs1) ;
+
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java
new file mode 100644
index 0000000..fa4a771
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_23_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_23
+})
+@SuppressWarnings("unused")
+public class Cd_23_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_23_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java
new file mode 100644
index 0000000..9e3242f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Down.java
@@ -0,0 +1,115 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd23Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd24Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+import java.nio.charset.StandardCharsets;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_24
+})
+public class Cd_24_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd24Vo cvo = JSON.parseObject(json, ComCd24Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd24Vo涓簄ull") ;
+            }
+            if(cvo.registerNo == null || cvo.registerNo.equals("")){
+                throw new Exception("璁惧娉ㄥ唽鍙蜂笉鑳戒负绌�") ;
+            }
+            if(cvo.registerNo.length() > 32){
+                throw new Exception("璁惧娉ㄥ唽鍙锋渶澶ч暱搴︽槸32涓瓧绗�") ;
+            }
+            if(cvo.registerNo.length() % 2 != 0){
+                throw new Exception("璁惧娉ㄥ唽鍙峰瓧绗︽暟蹇呴』鏄伓鏁颁綅") ;
+            }
+            if(!NumUtil.isHex(cvo.registerNo)){
+                throw new Exception("璁惧娉ㄥ唽鍙峰繀椤绘槸鍗佸叚杩涘埗鏁�") ;
+            }
+
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            byte len = (byte)(cvo.registerNo.length()/2) ;
+            bs[index] = len ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+            byte[] bsRg = ByteUtil.hexToBytes(cvo.registerNo) ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bsRg) ;
+
+            byte[] bs1 = new byte[7] ;
+            index ++ ;
+            GlCreate.createPw(bs1, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs1, index) ;
+
+            index += 4 ;
+            bs1[index] = 0 ; //鏃跺欢
+            bytes = ByteUtil.bytesMerge(bytes, bs1) ;
+
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Up.java
new file mode 100644
index 0000000..be8e0b8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_24_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_24
+})
+@SuppressWarnings("unused")
+public class Cd_24_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_24_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Down.java
new file mode 100644
index 0000000..6b457b5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Down.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_25
+})
+public class Cd_25_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[9] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Up.java
new file mode 100644
index 0000000..746eb2c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_25_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_25
+})
+@SuppressWarnings("unused")
+public class Cd_25_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_25_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
new file mode 100644
index 0000000..fa0f86b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Down.java
@@ -0,0 +1,115 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd26Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_26
+})
+public class Cd_26_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd26Vo cvo = JSON.parseObject(json, ComCd26Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd22Vo涓簄ull") ;
+            }
+            if(cvo.ipChannel != 1 && cvo.ipChannel !=2){
+                throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+            }
+
+            if(cvo.maxAmountYear < 0 || cvo.maxAmountYear > 99999999){
+                throw new Exception("璁惧缁堢骞寸敤姘撮噺蹇呴』鏄�0~99999999鑼冨洿鍐呯殑鏁存暟") ;
+            }
+
+            byte[] bs = new byte[15] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.ipChannel.byteValue() ;
+
+            index ++ ;
+            String strTemp = "" + cvo.maxAmountYear ;
+            byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            int bTempLen = bTemp.length ;
+            int count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 4){
+                    break ;
+                }
+            }
+            for(; count < 4; count++){
+                bs[index++] = 0 ;
+            }
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java
new file mode 100644
index 0000000..020d5de
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_26_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_26
+})
+@SuppressWarnings("unused")
+public class Cd_26_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_26_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java
new file mode 100644
index 0000000..c0e00ca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Down.java
@@ -0,0 +1,85 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_30
+})
+public class Cd_30_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[9] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java
new file mode 100644
index 0000000..fd658bb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_30_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_30
+})
+@SuppressWarnings("unused")
+public class Cd_30_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_30_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Down.java
new file mode 100644
index 0000000..f6e1181
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Down.java
@@ -0,0 +1,93 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd31Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_31
+})
+public class Cd_31_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd31Vo cvo = JSON.parseObject(json, ComCd31Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd30Vo涓簄ull") ;
+            }
+            if(cvo.valid == null){
+                throw new Exception("鏈夋晥鎬у繀椤昏缃�") ;
+            }
+            byte[] bs = new byte[10] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.valid.booleanValue()?(byte)0x01:(byte)0x00 ;
+
+            index ++ ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Up.java
new file mode 100644
index 0000000..ed5ac66
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_31_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_31
+})
+@SuppressWarnings("unused")
+public class Cd_31_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_31_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java
index 36a910e..a7c732d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Down.java
@@ -1,11 +1,11 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd50Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,17 +48,16 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
-            ComCd50Vo cvo = JSON.parseObject(json, ComCd50Vo.class) ;
-            if(cvo == null){
-                throw new Exception("json杞珻omCd10Vo涓簄ull") ;
-            }
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
             byte[] bs = new byte[2] ;
             int index = 0 ;
-            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
 
             index ++ ;
-            bs[index] = cvo.projectNo.byteValue() ;
+            bs[index] = projectNo.byteValue() ;
 
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
index dc88816..f957713 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_50_Up.java
@@ -54,13 +54,13 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd50Vo cdData = new DataCd50Vo() ;
+        DataCd50Vo cdData = new DataCd50Vo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
         cdData.rtuAddr = new CommonV202404().parseRtuAddr(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java
index 5ed1b31..12ccd88 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Down.java
@@ -1,6 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
@@ -21,6 +22,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,7 +49,8 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd55Vo cvo = JSON.parseObject(json, ComCd55Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd55Vo涓簄ull") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
index 19a8adb..df10fe0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_55_Up.java
@@ -63,18 +63,19 @@
         String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        Integer projectNo = 0 + bs[index];
+        Integer projectNo = (int)bs[index];
 
         index++ ;
         byte hasRecord = bs[index];
         if(hasRecord == 1){
             //鏈夎褰�
             List<DataCd55Vo> list = new ArrayList<>() ;
-            DataCd55Vo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            index++ ;
+            DataCd55Vo vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             while(vo != null){
-                index += 39 ;
+                index += 35 ;
                 list.add(vo) ;
-                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+                vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             }
             dV1.subData = list ;
         }else{
@@ -82,10 +83,10 @@
         }
     }
 
-    private DataCd55Vo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
-        //姣忔潯鏁版嵁鍗�39瀛楄妭
+    private DataCd55Vo doParseData(byte[] bs, int index, int bsLen, String dataCode, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�35瀛楄妭
         if(bsLen - index > 35){
-            DataCd55Vo cdData = new DataCd55Vo() ;
+            DataCd55Vo cdData = new DataCd55Vo(CodeV202404.getCodeName(dataCode)) ;
 
             cdData.controllerType = controllerType ;
             cdData.projectNo = projectNo ;
@@ -96,15 +97,15 @@
             cdData.icCardNo  = GlParse.parseIcCardNo(bs, index, 6, 2) ;
 
             index += 8 ;
-            int chargeMoney = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            Long chargeMoney = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
             cdData.chargeMoney = chargeMoney/100.0D;
 
             index += 5 ;
-            int chargeWater = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            Long chargeWater = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
             cdData.chargeWater = chargeWater/100.0D;
 
             index += 5 ;
-            cdData.flowNo = ByteUtil.BCD2String_BE(bs, index, index + 5) ;
+            cdData.flowNo = ByteUtil.BCD2String_LE(bs, index, index + 5) ;
 
             index += 6 ;
             byte flag = bs[index] ;
@@ -115,18 +116,7 @@
             }
 
             index += 1 ;
-            String ss = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
-            cdData.dt = "20" + yy + "-" + MM + "-" + dd + " " + HH + ":" + mm  + ":" + ss ;
+            cdData.dt = GlParse.parseRtuDt(bs, index) ;
 
             return cdData ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java
index 62a38ec..16c34ba 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Down.java
@@ -1,11 +1,11 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd55Vo;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd56Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,17 +48,16 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
-            ComCd56Vo cvo = JSON.parseObject(json, ComCd56Vo.class) ;
-            if(cvo == null){
-                throw new Exception("json杞珻omCd56Vo涓簄ull") ;
-            }
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
             byte[] bs = new byte[2] ;
             int index = 0 ;
-            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
 
             index ++ ;
-            bs[index] = cvo.projectNo.byteValue() ;
+            bs[index] = projectNo.byteValue() ;
 
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
index 7054446..87c4ddc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_56_Up.java
@@ -56,19 +56,19 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd56Vo cdData = new DataCd56Vo() ;
+        DataCd56Vo cdData = new DataCd56Vo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
-        cdData.waterAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+        cdData.waterAlarm = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
 
         index += 2 ;
-        cdData.moneyAlarm = ByteUtilUnsigned.bytes2Short_BE(bs, index) ;
+        cdData.moneyAlarm = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
 
     }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java
index 0cb1ab5..7c3cd86 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Down.java
@@ -1,11 +1,11 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd50Vo;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd5BVo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,17 +48,16 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
-            ComCd5BVo cvo = JSON.parseObject(json, ComCd5BVo.class) ;
-            if(cvo == null){
-                throw new Exception("json杞珻omCd5BVo涓簄ull") ;
-            }
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
             byte[] bs = new byte[2] ;
             int index = 0 ;
-            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
 
             index ++ ;
-            bs[index] = cvo.projectNo.byteValue() ;
+            bs[index] = projectNo.byteValue() ;
 
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java
index 5b3dc0c..ba41b4c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5B_Up.java
@@ -4,10 +4,7 @@
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5BVo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
-import com.dy.common.util.ByteUtil;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -57,7 +54,7 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd5BVo cdData = new DataCd5BVo() ;
+        DataCd80_5BVo cdData = new DataCd80_5BVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
 
         GlParse.parseCd80And5B(bs, cdData);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java
index 7ac5167..4e15056 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Down.java
@@ -1,6 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
@@ -20,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -46,7 +48,8 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd55Vo cvo = JSON.parseObject(json, ComCd55Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd55Vo涓簄ull") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
index 8f0dfc1..9acc765 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_5C_Up.java
@@ -63,18 +63,19 @@
         String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        Integer projectNo = 0 + bs[index];
+        Integer projectNo = (int)bs[index];
 
         index++ ;
         byte hasRecord = bs[index];
         if(hasRecord == 1){
             //鏈夎褰�
             List<DataCd5CVo> list = new ArrayList<>() ;
-            DataCd5CVo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            index++ ;
+            DataCd5CVo vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             while(vo != null){
-                index += 39 ;
+                index += 16 ;
                 list.add(vo) ;
-                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+                vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             }
             dV1.subData = list ;
         }else{
@@ -82,10 +83,10 @@
         }
     }
 
-    private DataCd5CVo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
-        //姣忔潯鏁版嵁鍗�39瀛楄妭
+    private DataCd5CVo doParseData(byte[] bs, int index, int bsLen, String dataCode, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�16瀛楄妭
         if(bsLen - index > 16){
-            DataCd5CVo cdData = new DataCd5CVo() ;
+            DataCd5CVo cdData = new DataCd5CVo(CodeV202404.getCodeName(dataCode)) ;
 
             cdData.controllerType = controllerType ;
             cdData.projectNo = projectNo ;
@@ -99,15 +100,15 @@
             String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
             cdData.dt = "20" + yy + "-" + MM + "-" + dd + " " + HH  ;
 
-            int meterAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            Long meterAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3) ;
             cdData.meterAmountDay = meterAmountDay/100.0D;
 
             index += 4 ;
-            int farmerAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            Long farmerAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3) ;
             cdData.farmerAmountDay = farmerAmountDay/100.0D;
 
             index += 4 ;
-            int lossAmountDay = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            Long lossAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3) ;
             cdData.lossAmountDay = lossAmountDay/100.0D;
 
             return cdData ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java
index fe0c3a8..d08a594 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Down.java
@@ -1,14 +1,13 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd5BVo;
 import com.dy.common.mw.protocol.p206V202404.downVos.ComCd65Vo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
-import com.dy.common.util.DateTime;
 
 @AnnotationCodeDown(ifAny={
         CodeV202404.cd_65
@@ -22,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -48,7 +48,8 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
             ComCd65Vo cvo = JSON.parseObject(json, ComCd65Vo.class) ;
             if(cvo == null){
                 throw new Exception("json杞珻omCd65Vo涓簄ull") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
index b0ca292..4e2fa05 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_65_Up.java
@@ -4,7 +4,6 @@
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd5BVo;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
@@ -64,18 +63,19 @@
         String controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        Integer projectNo = 0 + bs[index];
+        Integer projectNo = (int)bs[index];
 
         index++ ;
         byte hasRecord = bs[index];
         if(hasRecord == 1){
             //鏈夎褰�
             List<DataCd65Vo> list = new ArrayList<>() ;
-            DataCd65Vo vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+            index++ ;
+            DataCd65Vo vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             while(vo != null){
-                index += 39 ;
+                index += 43 ;
                 list.add(vo) ;
-                vo = this.doParseData(bs, index, bsLen, controllerType, projectNo) ;
+                vo = this.doParseData(bs, index, bsLen, dataCode, controllerType, projectNo) ;
             }
             dV1.subData = list ;
         }else{
@@ -83,10 +83,10 @@
         }
     }
 
-    private DataCd65Vo doParseData(byte[] bs, int index, int bsLen, String controllerType,Integer projectNo) throws Exception{
-        //姣忔潯鏁版嵁鍗�39瀛楄妭
-        if(bsLen - index > 39){
-            DataCd65Vo cdData = new DataCd65Vo() ;
+    private DataCd65Vo doParseData(byte[] bs, int index, int bsLen, String dataCode, String controllerType,Integer projectNo) throws Exception{
+        //姣忔潯鏁版嵁鍗�43瀛楄妭
+        if(bsLen - index > 43){
+            DataCd65Vo cdData = new DataCd65Vo(CodeV202404.getCodeName(dataCode)) ;
 
             cdData.controllerType = controllerType ;
             cdData.projectNo = projectNo ;
@@ -97,42 +97,28 @@
             cdData.icCardNo  = GlParse.parseIcCardNo(bs, index, 6, 2) ;
 
             index += 8 ;
-            int moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            Long moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
             cdData.moneyRemain = moneyRemain/100.0D;
 
             index += 5 ;
-            int waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+            Long waterRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
             cdData.waterRemain = waterRemain/100.0D;
 
             index += 5 ;
-            int thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            int thisEle = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
             cdData.thisEle = thisEle/100.0D;
 
             index += 4 ;
-            int thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+            int thisWater = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
             cdData.thisWater = thisWater/100.0D;
 
             index += 4 ;
-            String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String HH = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String dd = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            String MM = ByteUtil.BCD2String_BE(bs, index, index) ;
-            cdData.rtuStartDt = MM + "-" + dd + " " + HH + ":" + mm ;
+            cdData.rtuStartDt = GlParse.parseRtuDt(bs, index) ;
 
-            index++ ;
-            mm = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            HH = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            dd = ByteUtil.BCD2String_BE(bs, index, index) ;
-            index++ ;
-            MM = ByteUtil.BCD2String_BE(bs, index, index) ;
-            cdData.rtuEndDt = MM + "-" + dd + " " + HH + ":" + mm ;
+            index += 6 ;
+            cdData.rtuEndDt = GlParse.parseRtuDt(bs, index) ;
 
-            index++ ;
+            index += 6 ;
             cdData.useWaterType = bs[index];
 
             return cdData ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java
new file mode 100644
index 0000000..60bf2d8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_68
+})
+public class Cd_68_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java
new file mode 100644
index 0000000..2ff1fda
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_68_Up.java
@@ -0,0 +1,72 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd68Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_68
+})
+@SuppressWarnings("unused")
+public class Cd_68_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_68_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;//涓诲姩涓婃姤
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd68Vo cdData = new DataCd68Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        cdData.maxAmountYear = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
+
+        index += 4 ;
+        cdData.limitLevel = ByteUtil.BCD2Int_LE(bs, index, index + 2)/100.0D ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java
index 21dd8cf..f6a1152 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Down.java
@@ -4,8 +4,7 @@
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
 import com.dy.common.util.ByteUtil;
 
 @AnnotationCodeDown(ifAny={
@@ -20,6 +19,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -46,11 +46,12 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            DataCd80Vo cdData = (DataCd80Vo)para.param ;
-            byte[] bs = new byte[2] ;
+            DataCd80_5BVo cdData = (DataCd80_5BVo)para.param ;
+            byte[] bs = new byte[3] ;
             bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
             bs[1] = cdData.projectNo.byteValue() ;
-            GlCreate.createTp(bs, 3) ;
+            bs[2] = 0x01 ;//01:鎴愬姛 81:澶辫触
+            //GlCreate.createTp(bs, 2) ;
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
             throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
index 05d4c82..fd0c350 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_80_Up.java
@@ -4,8 +4,7 @@
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd8AVo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -85,7 +84,7 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd80Vo cdData = new DataCd80Vo() ;
+        DataCd80_5BVo cdData = new DataCd80_5BVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
 
         GlParse.parseCd80And5B(bs, cdData);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java
index e7ac594..e9d431f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Down.java
@@ -4,7 +4,6 @@
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
 import com.dy.common.util.ByteUtil;
 
@@ -20,6 +19,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,10 +47,10 @@
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
             DataCd81Vo cdData = (DataCd81Vo)para.param ;
-            byte[] bs = new byte[2] ;
+            byte[] bs = new byte[8] ;
             bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
             bs[1] = cdData.projectNo.byteValue() ;
-            GlCreate.createTp(bs, 3) ;
+            GlCreate.createTp(bs, 2) ;
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
             throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
index 7fe4dd2..e9280fe 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_81_Up.java
@@ -4,7 +4,6 @@
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
 import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
@@ -85,16 +84,19 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd81Vo cdData = new DataCd81Vo() ;
+        DataCd81Vo cdData = new DataCd81Vo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
 
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
-        GlParse.parseAlarmAndState(bs, index, cdData) ;
+        cdData.rtuDt = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;//鍥涗釜瀛楄妭
     }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java
new file mode 100644
index 0000000..d69cd5e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Down.java
@@ -0,0 +1,70 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_83
+})
+public class Cd_83_Down implements CodeParse {
+
+    //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd83Vo cdData = (DataCd83Vo)para.param ;
+            byte[] bs = new byte[3] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            bs[2] = 0x01 ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
new file mode 100644
index 0000000..1e77cc4
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_83_Up.java
@@ -0,0 +1,120 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_83
+})
+@SuppressWarnings("unused")
+public class Cd_83_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_83_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_83_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd83Vo cdData = new DataCd83Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index ++ ;
+        cdData.waterTotalAmountYear = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.waterTotalAmountMeter = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.eleTotalAmountYear = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.eleTotalAmountMeter = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.waterTotalAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.waterUserTotalAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.lossTotalAmountDay = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.batteryVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1)/100.0D ;
+
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java
new file mode 100644
index 0000000..16d691d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Down.java
@@ -0,0 +1,69 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_84
+})
+public class Cd_84_Down implements CodeParse {
+
+    //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd84Vo cdData = (DataCd84Vo)para.param ;
+            byte[] bs = new byte[2] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
new file mode 100644
index 0000000..3f98625
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
@@ -0,0 +1,129 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd83Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd84Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_84
+})
+@SuppressWarnings("unused")
+public class Cd_84_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_84_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_84_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd84Vo cdData = new DataCd84Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index ++ ;//姘存车/闃�	0xf0:闃�闂� 0x00:姘存车
+
+        index ++ ;//褰撳墠鐢ㄦ按鏂瑰紡	1涓狧EX 0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按
+
+        index++ ;
+        cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+        index += 4 ;
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+        index += 8 ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+        index += 8 ;
+        cdData.opDt = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        cdData.waterTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.eleTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.moneyRemainUser = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.waterRemainUser = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;//鍥涗釜瀛楄妭
+
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java
new file mode 100644
index 0000000..f8e6718
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Down.java
@@ -0,0 +1,69 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_85
+})
+public class Cd_85_Down implements CodeParse {
+
+    //private static Logger log = LogManager.getLogger(Cd_02_Down.class);
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCd85Vo cdData = (DataCd85Vo)para.param ;
+            byte[] bs = new byte[2] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
new file mode 100644
index 0000000..30e75e8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_85_Up.java
@@ -0,0 +1,94 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd85Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_85
+})
+@SuppressWarnings("unused")
+public class Cd_85_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_85_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_85_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd85Vo cdData = new DataCd85Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+
+        GlParse.parseCd85(bs, cdData) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java
new file mode 100644
index 0000000..8ae70ae
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Down.java
@@ -0,0 +1,89 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd21Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd86Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_86
+})
+public class Cd_86_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd86Vo cvo = JSON.parseObject(json, ComCd86Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+            }
+            if(cvo.channel == null){
+                throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+            }
+            if(cvo.channel != 1 && cvo.channel != 2){
+                throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+            }
+
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.channel.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
new file mode 100644
index 0000000..8427760
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_86_Up.java
@@ -0,0 +1,80 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd86Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_86
+})
+@SuppressWarnings("unused")
+public class Cd_86_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_86_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd86Vo cdData = new DataCd86Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        cdData.channel = (int)bs[index];
+
+        index++ ;
+        short totalLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+        int ipLen = (totalLen & 0xF0) >> 4 ;
+        int portLen = totalLen & 0x0F ;
+
+        index++ ;
+        cdData.ip = ByteUtil.bytes2String_BE(bs, index, index + ipLen - 1) ;
+
+        index += ipLen ;
+        cdData.port = Integer.parseInt(ByteUtil.bytes2String_LE(bs, index, index + portLen - 1)) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java
new file mode 100644
index 0000000..35d916e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Down.java
@@ -0,0 +1,88 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd87Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_87
+})
+public class Cd_87_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd87Vo cvo = JSON.parseObject(json, ComCd87Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd21Vo涓簄ull") ;
+            }
+            if(cvo.channel == null){
+                throw new Exception("IP閫氶亾鍙蜂笉鑳戒负绌�") ;
+            }
+            if(cvo.channel != 1 && cvo.channel != 2){
+                throw new Exception("IP閫氶亾鍙峰彧鑳芥槸1鎴�2") ;
+            }
+
+            byte[] bs = new byte[3] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            bs[index] = cvo.channel.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
new file mode 100644
index 0000000..cbcbfbf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_87_Up.java
@@ -0,0 +1,82 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd86Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd87Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_87
+})
+@SuppressWarnings("unused")
+public class Cd_87_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_87_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd87Vo cdData = new DataCd87Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        cdData.channel = (int)bs[index];
+
+        index++ ;
+        short domainLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+
+        index++ ;
+        short portLen = ByteUtilUnsigned.byte2Byte(bs, index) ;
+
+        index++ ;
+        cdData.domain = ByteUtil.bytes2String_LE(bs, index, index + domainLen - 1) ;
+
+        index += domainLen ;
+        cdData.port = Integer.parseInt(ByteUtil.bytes2String_LE(bs, index, index + portLen - 1)) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Down.java
new file mode 100644
index 0000000..7e8bdde
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Down.java
@@ -0,0 +1,77 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd87Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_88
+})
+public class Cd_88_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Up.java
new file mode 100644
index 0000000..2e2474a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_88_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd87Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd88Vo;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.ByteUtilUnsigned;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_88
+})
+@SuppressWarnings("unused")
+public class Cd_88_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_88_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd88Vo cdData = new DataCd88Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        short len = ByteUtilUnsigned.byte2Byte(bs, index) ;
+
+        index++ ;
+        cdData.registerNo = ByteUtil.bytes2Hex(bs, false, index, len) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java
index ebc085d..c243b71 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Down.java
@@ -19,6 +19,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -49,7 +50,7 @@
             byte[] bs = new byte[8] ;
             bs[0] = (byte)(Integer.parseInt(cdData.getControllerType(), 16));
             bs[1] = cdData.projectNo.byteValue() ;
-            GlCreate.createTp(bs, 3) ;
+            GlCreate.createTp(bs, 2) ;
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
             throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
index e3196a5..deaeeed 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_8A_Up.java
@@ -83,32 +83,32 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd8AVo cdData = new DataCd8AVo() ;
+        DataCd8AVo cdData = new DataCd8AVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
-        int lng = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long lng = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.lng = lng/1000000.0D;
 
         index += 5 ;
-        int lat = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long lat = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.lat = lat/1000000.0D;
 
         index += 5 ;
-        int softVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int softVersion = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.softVersion = softVersion/10.0F;
 
         index += 2 ;
-        int hardVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int hardVersion = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.hardVersion = hardVersion/10.0F;
 
         index += 2 ;
-        int protocolVersion = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int protocolVersion = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.protocolVersion = protocolVersion/10.0F;
 
     }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
new file mode 100644
index 0000000..5dba686
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Down.java
@@ -0,0 +1,209 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd22Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_92,
+        CodeV202404.cd_A2
+})
+public class Cd_92_A2_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd92_A2Vo cvo = JSON.parseObject(json, ComCd92_A2Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd92_A2Vo涓簄ull") ;
+            }
+            if(cvo.waterRemain != null){
+                if(cvo.waterRemain < 0 || cvo.waterRemain > 99999999.99){
+                    throw new Exception("鐢ㄦ埛鍓╀綑姘撮噺蹇呴』鏄�0~99999999.99鑼冨洿鍐呯殑鏁版嵁") ;
+                }
+            }
+            if(cvo.moneyRemain != null){
+                if(cvo.moneyRemain < 0 || cvo.moneyRemain > 999999.99){
+                    throw new Exception("鐢ㄦ埛鍓╀綑閲戦蹇呴』鏄�0~999999.99鑼冨洿鍐呯殑鏁版嵁") ;
+                }
+            }
+            if(cvo.waterPrice != null){
+                if(cvo.waterPrice < 0 || cvo.waterPrice > 99.99){
+                    throw new Exception("姘撮噺鍗曚环蹇呴』鏄�0~99.99鑼冨洿鍐呯殑鏁版嵁") ;
+                }
+            }
+            if(cvo.elePrice != null){
+                if(cvo.elePrice < 0 || cvo.elePrice > 99.99){
+                    throw new Exception("鐢甸噺鍗曚环蹇呴』鏄�0~99.99鑼冨洿鍐呯殑鏁版嵁") ;
+                }
+            }
+            if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
+                throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+            }
+            if(cvo.orderNo.length() != 12){
+                throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+            }
+
+
+            byte[] bs = new byte[45] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            if(cvo.controllerType.equals("01")){
+                bs[index] = (byte)0xF0 ;
+            }else{
+                bs[index] = (byte)0x00 ;
+            }
+
+            index ++ ;
+            GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+
+            index += 8 ;
+            if(cvo.waterRemain != null){
+                cvo.waterRemain = 0.0 ;
+            }
+            String strTemp = "" + Double.valueOf(cvo.waterRemain * 100).intValue() ;
+            byte[] bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            int bTempLen = bTemp.length ;
+            int count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 4){
+                    break ;
+                }
+            }
+            for(; count < 4; count++){
+                bs[index++] = 0 ;
+            }
+
+            if(cvo.moneyRemain != null){
+                cvo.moneyRemain = 0.0 ;
+            }
+            strTemp = "" + (Double.valueOf(cvo.moneyRemain * 100)).intValue() ;
+            bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            bTempLen = bTemp.length ;
+            count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 4){
+                    break ;
+                }
+            }
+            for(; count < 4; count++){
+                bs[index++] = 0 ;
+            }
+
+
+            if(cvo.waterPrice != null){
+                cvo.waterPrice = 0.0 ;
+            }
+            strTemp = "" + (Double.valueOf(cvo.waterPrice * 100)).intValue() ;
+            bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            bTempLen = bTemp.length ;
+            count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 2){
+                    break ;
+                }
+            }
+            for(; count < 2; count++){
+                bs[index++] = 0 ;
+            }
+
+
+            if(cvo.elePrice != null){
+                cvo.elePrice = 0.0 ;
+            }
+            strTemp = "" + (Double.valueOf(cvo.elePrice * 100)).intValue() ;
+            bTemp = ByteUtil.string2BCD_LE(strTemp) ;
+            bTempLen = bTemp.length ;
+            count = 0 ;
+            for(int i = 0 ; i < bTempLen; i++){
+                bs[index++] = bTemp[i] ;
+                count ++ ;
+                if(count >= 2){
+                    break ;
+                }
+            }
+            for(; count < 2; count++){
+                bs[index++] = 0 ;
+            }
+
+
+            ByteUtil.string2BCD_BE(bs, cvo.orderNo, index) ;
+
+            index += 8 ;
+            GlCreate.createDt(bs, index);
+
+            index += 6 ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
new file mode 100644
index 0000000..512934d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_92_A2_Up.java
@@ -0,0 +1,81 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd92_A2Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_92,
+        CodeV202404.cd_A2
+})
+@SuppressWarnings("unused")
+public class Cd_92_A2_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_92_A2_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd92_A2Vo cdData = new DataCd92_A2Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+        index += 8 ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+        index += 8 ;
+        cdData.opType = bs[index];
+
+        index ++ ;
+        cdData.opResult = bs[index];
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
new file mode 100644
index 0000000..f9d9796
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Down.java
@@ -0,0 +1,113 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd92_A2Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd93_A3Vo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_93,
+        CodeV202404.cd_A3
+})
+public class Cd_93_A3_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd93_A3Vo cvo = JSON.parseObject(json, ComCd93_A3Vo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd93_A3Vo涓簄ull") ;
+            }
+            if(!NumUtil.isPlusIntNumber(cvo.orderNo)){
+                throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+            }
+            if(cvo.orderNo.length() != 12){
+                throw new Exception("璁㈠崟鍙峰繀椤绘槸16浣嶆暟瀛�") ;
+            }
+
+            byte[] bs = new byte[32] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            if(cvo.controllerType.equals("01")){
+                bs[index] = (byte)0xF0 ;
+            }else{
+                bs[index] = (byte)0x00 ;
+            }
+
+            index ++ ;
+            GlCreate.createIcCardNo(cvo.icCardNo, bs, index);
+
+            index += 8 ;
+            ByteUtil.string2BCD_BE(bs, cvo.orderNo, index) ;
+
+            index += 8 ;
+            GlCreate.createDt(bs, index);
+
+            index += 6 ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java
new file mode 100644
index 0000000..8f887d9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_93_A3_Up.java
@@ -0,0 +1,64 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_93,
+        CodeV202404.cd_A3
+})
+@SuppressWarnings("unused")
+public class Cd_93_A3_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_93_A3_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCd93_A3Vo cdData = new DataCd93_A3Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+
+        GlParse.parseCd93A3(bs, cdData) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java
index 2c414b4..a3fcdeb 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Down.java
@@ -1,11 +1,11 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd65Vo;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd97Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,17 +48,16 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
-            ComCd97Vo cvo = JSON.parseObject(json, ComCd97Vo.class) ;
-            if(cvo == null){
-                throw new Exception("json杞珻omCd97Vo涓簄ull") ;
-            }
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
             byte[] bs = new byte[2] ;
             int index = 0 ;
-            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
 
             index ++ ;
-            bs[index] = cvo.projectNo.byteValue() ;
+            bs[index] = projectNo.byteValue() ;
 
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
index 9f276fb..f1af90a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_97_Up.java
@@ -3,16 +3,10 @@
 
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
-import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd50Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd65Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd97Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-
-import java.util.ArrayList;
-import java.util.List;
 
 @AnnotationCodeUp(ifAny={
         CodeV202404.cd_97
@@ -60,13 +54,13 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd97Vo cdData = new DataCd97Vo() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
         byte result = bs[index];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java
index 047e57e..33edc52 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Down.java
@@ -1,11 +1,11 @@
 package com.dy.common.mw.protocol.p206V202404.parse;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.CodeV202404;
 import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd97Vo;
-import com.dy.common.mw.protocol.p206V202404.downVos.ComCd98Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
 import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
 import com.dy.common.util.ByteUtil;
 
@@ -21,6 +21,7 @@
 
         MidResultToRtu midRs = new MidResultToRtu() ;
         midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
         midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
         midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
         midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
@@ -47,17 +48,16 @@
     public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
         byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
         if(para.param != null){
-            String json = (String)para.param;
-            ComCd98Vo cvo = JSON.parseObject(json, ComCd98Vo.class) ;
-            if(cvo == null){
-                throw new Exception("json杞珻omCd98Vo涓簄ull") ;
-            }
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
             byte[] bs = new byte[2] ;
             int index = 0 ;
-            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
 
             index ++ ;
-            bs[index] = cvo.projectNo.byteValue() ;
+            bs[index] = projectNo.byteValue() ;
 
             bytes = ByteUtil.bytesMerge(bytes, bs) ;
         }else{
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
index eae5f1a..5152440 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_98_Up.java
@@ -3,7 +3,7 @@
 
 import com.dy.common.mw.protocol.*;
 import com.dy.common.mw.protocol.p206V202404.*;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd98Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
 import com.dy.common.util.ByteUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -54,13 +54,13 @@
      */
     protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
         DataV202404 dV1 = (DataV202404)data.getSubData() ;
-        DataCd98Vo cdData = new DataCd98Vo() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
         dV1.subData = cdData ;
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
         byte result = bs[index];
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java
new file mode 100644
index 0000000..339656a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_99
+})
+public class Cd_99_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java
new file mode 100644
index 0000000..61062d2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_99_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_99
+})
+@SuppressWarnings("unused")
+public class Cd_99_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_99_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java
new file mode 100644
index 0000000..85312c8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Down.java
@@ -0,0 +1,76 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_9A
+})
+public class Cd_9A_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String controllerType = (String)obj.get("controllerType");
+            Integer projectNo = (Integer)obj.get("projectNo") ;
+
+            byte[] bs = new byte[2] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(controllerType, 16));
+
+            index ++ ;
+            bs[index] = projectNo.byteValue() ;
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
new file mode 100644
index 0000000..ff4ef59
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9A_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_9A
+})
+@SuppressWarnings("unused")
+public class Cd_9A_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_9A_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Down.java
new file mode 100644
index 0000000..5192cdf
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Down.java
@@ -0,0 +1,96 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd15Vo;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCd9CVo;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.util.ByteUtil;
+import com.dy.common.util.NumUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_9C
+})
+public class Cd_9C_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = true ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = null ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = false ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            JSONObject obj = (JSONObject)para.param;
+            String json = obj.toJSONString();
+            ComCd9CVo cvo = JSON.parseObject(json, ComCd9CVo.class) ;
+            if(cvo == null){
+                throw new Exception("json杞珻omCd9CVo涓簄ull") ;
+            }
+            if(cvo.icCardAddr.length() != 8){
+                throw new Exception("IC鍗″湴鍧�蹇呴』鏄�8浣嶆暟瀛楁垨瀛楁瘝") ;
+            }
+
+            byte[] bs = new byte[13] ;
+            int index = 0 ;
+            bs[index] = (byte)(Integer.parseInt(cvo.controllerType, 16));
+
+            index ++ ;
+            bs[index] = cvo.projectNo.byteValue() ;
+
+            index ++ ;
+            GlCreate.createIcCardAddr(cvo.icCardAddr, bs, index);
+
+            index += 4 ;
+            GlCreate.createPw(bs, index);
+
+            index += 2 ;
+            GlCreate.createS2D(bs, index) ;
+
+            index += 4 ;
+            bs[index] = 0 ; //鏃跺欢
+
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Up.java
new file mode 100644
index 0000000..c19fb5e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_9C_Up.java
@@ -0,0 +1,73 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdXyVo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_9C
+})
+@SuppressWarnings("unused")
+public class Cd_9C_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_9C_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = false ;
+
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdXyVo cdData = new DataCdXyVo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Down.java
new file mode 100644
index 0000000..3550556
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Down.java
@@ -0,0 +1,68 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ParseParamsForDownV202404;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlCreate;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdC2Vo;
+import com.dy.common.util.ByteUtil;
+
+@AnnotationCodeDown(ifAny={
+        CodeV202404.cd_C2
+})
+public class Cd_C2_Down implements CodeParse {
+
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback) throws Exception {
+        ParseParamsForDownV202404 para = (ParseParamsForDownV202404) params ;
+        byte[] bs = this.doParse(para) ;
+
+        MidResultToRtu midRs = new MidResultToRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuResultSendWebUrl = para.rtuResultSendWebUrl ;
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁
+        midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.hasResponse = false ;//鏄惁鏈夊簲绛�
+        midRs.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        midRs.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨锛屼綆鍔熻�楁椂涓簍rue
+
+        midRs.isSendFirst = true ;//鍛戒护搴旂瓟锛岄鍏堝彂閫侊紝闃叉RTU閲嶆柊涓婃姤
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            midRs.isQuickSend = true ;
+        }
+
+        return new MidResult[]{midRs} ;
+    }
+    /**
+     * 鏋勯�犱笅琛屾暟鎹�
+     * @param para 鍙傛暟
+     * @return 瀛楄妭鏁扮粍
+     * @throws Exception 寮傚父
+     */
+    public byte[] doParse(ParseParamsForDownV202404 para) throws Exception {
+        byte[] bytes = GlCreate.createStart2Cd(para.rtuAddr, para.commandCode);
+        if(para.param != null){
+            DataCdC2Vo cdData = (DataCdC2Vo)para.param ;
+            byte[] bs = new byte[2] ;
+            bs[0] = (byte)(Integer.parseInt(cdData.controllerType, 16));
+            bs[1] = cdData.projectNo.byteValue() ;
+            bytes = ByteUtil.bytesMerge(bytes, bs) ;
+        }else{
+            throw new Exception("涓嬭鍛戒护鍙傛暟鎹负null") ;
+        }
+        GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑
+
+        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬
+
+        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
+
+        return bytes ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
new file mode 100644
index 0000000..5eced82
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_C2_Up.java
@@ -0,0 +1,118 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+
+import com.dy.common.mw.protocol.*;
+import com.dy.common.mw.protocol.p206V202404.*;
+import com.dy.common.mw.protocol.p206V202404.parse.global.GlParse;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCd02Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.DataCdC2Vo;
+import com.dy.common.util.ByteUtil;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+@AnnotationCodeUp(ifAny={
+        CodeV202404.cd_C2
+})
+@SuppressWarnings("unused")
+public class Cd_C2_Up implements CodeParse{
+
+    private static final Logger log = LogManager.getLogger(Cd_C2_Up.class);
+
+    /**
+     * 鍒嗘瀽涓婅鏁版嵁
+     */
+    @Override
+    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
+        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
+        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
+        if(bsLen > 0){
+            this.doParse(para.upBuffer,
+                    bsLen,
+                    para.upCode,
+                    para.data) ;
+        }
+        log.info("鍒嗘瀽涓婅鏁版嵁<" + CodeV202404.getCodeName(para.upCode) + " RTU鍦板潃=" + para.rtuAddr + ">:\n" + para.data.toString());
+
+        MidResultFromRtu midRs = new MidResultFromRtu() ;
+        midRs.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        midRs.upCode = para.upCode ;//涓婅鏁版嵁涓殑鍔熻兘鐮�
+        midRs.upHex = para.upHex ;//涓婅鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        midRs.upBuffer = para.upBuffer ;//涓婅鏁版嵁瀛楄妭鏁扮粍
+        midRs.data = para.data ;//瑙f瀽鍚庣殑鏁版嵁
+
+        midRs.reportOrResponse_trueOrFalse = true ;
+
+        String confirmComCode = para.upCode ;
+        ParseParamsForDownV202404 downCpParams  = new ParseParamsForDownV202404() ;
+        downCpParams.setValue(
+                null,
+                ProtocolConstantV206V202404.protocolName,
+                para.rtuAddr,
+                Command.defaultId,
+                confirmComCode,
+                para.data.subData==null?null:(((DataV202404)para.data.subData).subData),
+                null);
+        //鏋勯�犲簲绛�
+        byte[] data = new Cd_C2_Down().doParse(downCpParams) ;
+
+        MidResultToRtu confirmCommand = new MidResultToRtu() ;
+        confirmCommand.protocolName = para.protocolName ;//鍗忚鍚嶇О
+        confirmCommand.rtuAddr = para.rtuAddr ;//Rtu鍦板潃
+        confirmCommand.commandId = Command.defaultId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉
+        confirmCommand.downCode = confirmComCode ;//涓嬭鍛戒护鍔熻兘鐮�;
+        confirmCommand.downBuffer = data ;//涓嬭鍛戒护鏁版嵁
+        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡
+        confirmCommand.hasResponse = false ;//鏄惁鏈夊簲绛�
+        confirmCommand.maxSendTimes = 1 ;//鍛戒护鏈�澶у彂閫佹鏁�(褰撴敹涓嶅埌搴旂瓟鏃讹紝灏嗛噸鍙�2娆�)锛屽鏋滀笉璁剧疆锛屽懡浠ょ紦瀛樺櫒杩涜琛ュ厖璁剧疆
+        confirmCommand.isCachForOffLine = false ;//RTU涓嶅湪绾匡紝鍛戒护鏄惁缂撳瓨
+
+        confirmCommand.isSendFirst = true ;//纭鍛戒护锛屼紭鍏堝彂閫�
+        if(isLowPower != null && isLowPower.booleanValue()){
+            //浣庡姛鑰楁椂锛屽敖蹇彂閫�
+            confirmCommand.isQuickSend = true ;
+        }
+        callback.callback(midRs.reportOrResponse_trueOrFalse);
+        return new MidResult[]{midRs, confirmCommand} ;
+    }
+    /**
+     * 鎵ц鍒嗘瀽
+     * @param bs 瀛楄妭鏁扮粍
+     * @param bsLen 瀛楄妭闀垮害锛堟�诲寘闀匡紝鍖呮嫭鍖呭ご鍜屽寘灏撅級
+     * @param dataCode 鍔熻兘鐮�
+     * @param data 鏁版嵁
+     * @throws Exception 寮傚父
+     */
+    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
+        DataV202404 dV1 = (DataV202404)data.getSubData() ;
+        DataCdC2Vo cdData = new DataCdC2Vo(CodeV202404.getCodeName(dataCode)) ;
+        dV1.subData = cdData ;
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index ++ ;
+        cdData.projectNo = 0 + bs[index];
+
+        index ++ ;//0xf0闃�闂�0x00姘存车
+
+        index ++ ;
+        cdData.opType1 = bs[index];
+
+        index ++ ;
+        cdData.opType2 = bs[index];
+
+        index++ ;
+        byte result = bs[index];
+        if(result == 1){
+            cdData.success = true ;
+        }else{
+            cdData.success = false ;
+        }
+
+        index++ ;
+        GlParse.parseRtuDt(bs, index);
+
+        index+= 6 ;
+        GlParse.parseAlarmAndState(bs, index, cdData);//鍥涗釜瀛楄妭
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Test.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Test.java
new file mode 100644
index 0000000..ea10d0b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Test.java
@@ -0,0 +1,18 @@
+package com.dy.common.mw.protocol.p206V202404.parse;
+
+import com.dy.common.util.ByteUtil;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/15 13:43
+ * @Description
+ */
+public class Test {
+    public static void main(String[] args) throws Exception{
+        byte[] bs = new byte[]{(byte)0x80, (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00} ;
+        Long l1 =  ByteUtil.BCD2Long_BE(bs, 0, 0 + 4);
+        Long l2 =  ByteUtil.BCD2Long_LE(bs, 0, 0 + 4);
+        System.out.println(l1);
+        System.out.println(l2);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
index 16f5543..9a0db38 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlCreate.java
@@ -32,7 +32,7 @@
 
         index++ ;
         GlCreate.createRtuAddr(rtuAddr, bsHead, index);
-        index += 7 ;
+        index += 8 ;
 
         ByteUtil.hex2Bytes(commandCode, bsHead, index) ;
         return bsHead ;
@@ -93,25 +93,69 @@
         Integer icCardNo2Int = Integer.parseInt(icCardNo2) ;
         ByteUtilUnsigned.short2Bytes_LE(bs, icCardNo2Int.shortValue(), index);
     }
+
+    public static void createDt(byte[] bs, int index) throws Exception {
+        ByteUtil.string2BCD_BE(bs, DateTime.ss(), index) ; ;
+        ByteUtil.string2BCD_BE(bs, DateTime.mm(), index + 1) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.HH(), index + 2) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.dd(), index + 3) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.MM(), index + 4) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.yy(), index + 5) ;
+    }
+
+
     public static void createPw(byte[] bs, int index) throws Exception {
         bs[index] = 0;
         bs[index + 1] = 0;
     }
 
     public static void createTp(byte[] bs, int index) throws Exception {
+        ByteUtil.string2BCD_BE(bs, DateTime.ss(), index) ; ;
+        ByteUtil.string2BCD_BE(bs, DateTime.mm(), index + 1) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.HH(), index + 2) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.dd(), index + 3) ;
+        byte month = Byte.parseByte(DateTime.MM()) ;
+        byte week = (byte)(DateTime.week_Int().byteValue() << 1)  ;
+        String month1 = "0" ;
+        String month2 = "0" ;
+        if(month < 10){
+            month1 = "" + month ;
+        }else{
+            if(month == 10){
+                month1 = "0" ;
+            }else if(month == 11){
+                month1 = "1" ;
+            }else if(month == 12){
+                month1 = "2" ;
+            }
+            week = (byte)(week | 0x01) ;
+        }
+        month2 = "" + week ;
+
+        ByteUtil.string2BCD_BE(bs, month2 + month1, index + 4) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.yy(), index + 5) ;
+
+        /*
         bs[index] = Byte.parseByte(DateTime.ss()) ;
         bs[index + 1] = Byte.parseByte(DateTime.mm()) ;
         bs[index + 2] = Byte.parseByte(DateTime.HH()) ;
         bs[index + 3] = Byte.parseByte(DateTime.dd()) ;
         bs[index + 4] = (byte)(DateTime.week_Int().byteValue() << 5 | Byte.parseByte(DateTime.MM())) ;
         bs[index + 5] = Byte.parseByte(DateTime.yy()) ;
+        */
     }
 
     public static void createS2D(byte[] bs, int index) throws Exception {
+        ByteUtil.string2BCD_BE(bs, DateTime.ss(), index) ; ;
+        ByteUtil.string2BCD_BE(bs, DateTime.mm(), index + 1) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.HH(), index + 2) ;
+        ByteUtil.string2BCD_BE(bs, DateTime.dd(), index + 3) ;
+        /*
         bs[index] = Byte.parseByte(DateTime.ss()) ;
         bs[index + 1] = Byte.parseByte(DateTime.mm()) ;
         bs[index + 2] = Byte.parseByte(DateTime.HH()) ;
         bs[index + 3] = Byte.parseByte(DateTime.dd()) ;
+        */
     }
 
     public static void createLen(byte[] bsNoTail) throws Exception {
@@ -126,4 +170,11 @@
         bytes[1] = ProtocolConstantV206V1_0_0.P_Tail_Byte ;
         return bytes ;
     }
+
+    public static void main(String[] args)throws Exception{
+        byte[] bs = new byte[6] ;
+        createTp(bs, 0) ;
+        String hex = ByteUtil.bytes2Hex(bs,true, 0, 6) ;
+        System.out.println(hex);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
index 982ed69..82e681d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
@@ -1,8 +1,7 @@
 package com.dy.common.mw.protocol.p206V202404.parse.global;
 
 import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo;
-import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo;
+import com.dy.common.mw.protocol.p206V202404.upVos.*;
 import com.dy.common.util.ByteUtil;
 import com.dy.common.util.ByteUtilUnsigned;
 import org.apache.logging.log4j.LogManager;
@@ -31,7 +30,7 @@
         String mm = ByteUtil.BCD2String_BE(bs, index, index) ;
         index++ ;
         String yy = ByteUtil.BCD2String_BE(bs, index, index) ;
-        return yy + "-" + mm + "-" + dd + " " + HH + ":" + MM + ":" + ss ;
+        return "20" + yy + "-" + mm + "-" + dd + " " + HH + ":" + MM + ":" + ss ;
     }
    /**
      * 鍒嗘瀽IC鍗$紪鍙�
@@ -44,66 +43,39 @@
      */
     public static String parseIcCardNo(byte[] bs, int index, int len1, int len2)throws Exception{
         String rtuAddrBCD = "" + ByteUtil.BCD2Long_BE(bs, index, index + len1 - 1) ;
-        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, index + len1 + len2 -1 ) ;
+        String rtuAddrStr = "" + ByteUtilUnsigned.bytes2Short_LE(bs, index + len1) ;
         while(rtuAddrStr.length() < 5){
             rtuAddrStr = "0" + rtuAddrStr ;
         }
         return rtuAddrBCD + rtuAddrStr ;
     }
 
+
     /**
      * 鍒嗘瀽鐘舵�佷笌鎶ヨ
      * @param bs
      * @param index
      * @return
      */
-    public static void parseAlarmAndState(byte[] bs, int index, DataCd80Vo vo){
+    public static void parseAlarmAndState(byte[] bs, int index, AlarmVo vo){
         byte b = bs[index] ;
         vo.statePump = (byte)(b & 0x1) ;
-        vo.alarmWaterRemain = (byte)(b & 0x2) ;
-        vo.alarm0WaterRemain = (byte)(b & 0x4) ;
-        vo.alarmExceedYear = (byte)(b & 0x8) ;
-        vo.alarmWaterMeterFault = (byte)(b & 0x10) ;
-        vo.alarmSteal = (byte)(b & 0x20) ;
-        vo.alarmWaterMeterBreak = (byte)(b & 0x40) ;
-        vo.alarmEleMeterFault = (byte)(b & 0x80) ;
+        vo.alarmWaterRemain = (byte)(b >> 1 & 1) ;
+        vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ;
+        vo.alarmExceedYear = (byte)(b >> 3 & 1) ;
+        vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ;
+        vo.alarmSteal = (byte)(b >> 5 & 1) ;
+        vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ;
+        vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ;
 
-        index++ ;
-        b = bs[index] ;
+        b = bs[index + 1] ;
         vo.alarm0MoneyRemain = (byte)(b & 0x1) ;
-        vo.alarmInnerDoor = (byte)(b & 0x2) ;
-        vo.alarmOuterDoor = (byte)(b & 0x4) ;
-        vo.alarmEleMiss = (byte)(b & 0x8) ;
-        vo.alarmEleExceed = (byte)(b & 0x10) ;
-        vo.alarmEleLowVolt = (byte)(b & 0x20) ;
-        vo.stateIcEnable = (byte)(b & 0x40) ;
-    }
-    /**
-     * 鍒嗘瀽鐘舵�佷笌鎶ヨ
-     * @param bs
-     * @param index
-     * @return
-     */
-    public static void parseAlarmAndState(byte[] bs, int index, DataCd81Vo vo){
-        byte b = bs[index] ;
-        vo.statePump = (byte)(b & 0x1) ;
-        vo.alarmWaterRemain = (byte)(b & 0x2) ;
-        vo.alarm0WaterRemain = (byte)(b & 0x4) ;
-        vo.alarmExceedYear = (byte)(b & 0x8) ;
-        vo.alarmWaterMeterFault = (byte)(b & 0x10) ;
-        vo.alarmSteal = (byte)(b & 0x20) ;
-        vo.alarmWaterMeterBreak = (byte)(b & 0x40) ;
-        vo.alarmEleMeterFault = (byte)(b & 0x80) ;
-
-        index++ ;
-        b = bs[index] ;
-        vo.alarm0MoneyRemain = (byte)(b & 0x1) ;
-        vo.alarmInnerDoor = (byte)(b & 0x2) ;
-        vo.alarmOuterDoor = (byte)(b & 0x4) ;
-        vo.alarmEleMiss = (byte)(b & 0x8) ;
-        vo.alarmEleExceed = (byte)(b & 0x10) ;
-        vo.alarmEleLowVolt = (byte)(b & 0x20) ;
-        vo.stateIcEnable = (byte)(b & 0x40) ;
+        vo.alarmInnerDoor = (byte)(b >> 1 & 1) ;
+        vo.alarmOuterDoor = (byte)(b >> 2 & 1) ;
+        vo.alarmEleMiss = (byte)(b >> 3 & 1) ;
+        vo.alarmEleExceed = (byte)(b >> 4 & 1) ;
+        vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ;
+        vo.stateIcEnable = (byte)(b >> 6 & 1) ;
     }
 
     public static String parseTp(byte[] bs, short index){
@@ -117,7 +89,7 @@
             index++ ;
             dt = ByteUtil.BCD2String_BE(bs, index, index) + " " + dt ;//鏃�
             index++ ;
-            //bs[index] = (byte)(bs[index] & 0x10);
+            bs[index] = (byte)(bs[index] & 0x1F);
             dt = ByteUtil.BCD2String_BE(bs, index, index) + "-" + dt ;//鏈�
             index++ ;
             dt = "20" + ByteUtil.BCD2String_BE(bs, index, index) + "-" + dt ;//骞�
@@ -133,19 +105,18 @@
      * @param cdData
      * @throws Exception
      */
-    public static void parseCd80And5B(byte[] bs, DataCd80Vo cdData) throws Exception{
-
+    public static void parseCd80And5B(byte[] bs, DataCd80_5BVo cdData) throws Exception{
         int index = ProtocolConstantV206V202404.dataIndex ;
         cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
 
         index++ ;
-        cdData.projectNo = 0 + bs[index];
+        cdData.projectNo = (int)bs[index];
 
         index++ ;
         cdData.useWaterType = bs[index];
 
         index++ ;
-        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 4) ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
 
         index += 8 ;
         cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
@@ -157,97 +128,218 @@
         cdData.rtuDt  = GlParse.parseRtuDt(bs, index) ;
 
         index += 6 ;
-        int waterLevel = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        Long waterLevel = ByteUtil.BCD2Long_LE(bs, index, index + 3) ;
         cdData.waterLevel = waterLevel/1000.0D;
 
         index += 4 ;
-        int waterPress = ByteUtil.BCD2Int_BE(bs, index, index + 2) ;
+        int waterPress = ByteUtil.BCD2Int_LE(bs, index, index + 2) ;
         cdData.waterPress = waterPress/100.0D;
 
         index += 3 ;
-        int waterInstant = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        Long waterInstant = ByteUtil.BCD2Long_LE(bs, index, index + 3) ;
         cdData.waterInstant = waterInstant/100.0D;
 
         index += 4 ;
-        int waterTotal = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long waterTotal = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.waterTotal = waterTotal/100.0D;
 
         index += 5 ;
-        int eleTotal = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long eleTotal = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.eleTotal = eleTotal/100.0D;
 
         index += 5 ;
-        int moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.moneyRemain = moneyRemain/100.0D;
 
         index += 5 ;
-        int waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4) ;
+        Long waterRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4) ;
         cdData.waterRemain = waterRemain/100.0D;
 
         index += 5 ;
-        int thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        int thisEle = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
         cdData.thisEle = thisEle/100.0D;
 
         index += 4 ;
-        int thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        int thisWater = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
         cdData.thisWater = thisWater/100.0D;
 
         index += 4 ;
-        int thisMoney = ByteUtil.BCD2Int_BE(bs, index, index + 3) ;
+        int thisMoney = ByteUtil.BCD2Int_LE(bs, index, index + 3) ;
         cdData.thisMoney = thisMoney/100.0D;
 
         index += 4 ;
-        cdData.thisDuration = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        cdData.thisDuration = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
 
         index += 2 ;
-        int waterPrice = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int waterPrice = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.waterPrice = waterPrice/100.0D;
 
         index += 2 ;
-        int elePrice = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int elePrice = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.elePrice = elePrice/100.0D;
 
         index += 2 ;
-        GlParse.parseAlarmAndState(bs, index, cdData) ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;//鍥涗釜瀛楄妭
 
-        index += 2 ;
-        int aVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        index += 4 ;
+        int aVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.aVolt = aVolt/10.0D;
 
         index += 2 ;
-        int bVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int bVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.bVolt = bVolt/10.0D;
 
         index += 2 ;
-        int cVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int cVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.cVolt = cVolt/10.0D;
 
         index += 2 ;
-        int aCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int aCurrent = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.aCurrent = aCurrent/10.0D;
 
         index += 2 ;
-        int bCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int bCurrent = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.bCurrent = bCurrent/10.0D;
 
         index += 2 ;
-        int cCurrent = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int cCurrent = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.cCurrent = cCurrent/10.0D;
 
         index += 2 ;
-        int batteryVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int batteryVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.batteryVolt = batteryVolt/100.0D;
 
         index += 2 ;
-        int waterMeterTransVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int waterMeterTransVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.waterMeterTransVolt = waterMeterTransVolt/100.0D;
 
         index += 2 ;
-        int waterMeterWorkVolt = ByteUtil.BCD2Int_BE(bs, index, index + 1) ;
+        int waterMeterWorkVolt = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
         cdData.waterMeterWorkVolt = waterMeterWorkVolt/100.0D;
 
         index += 2 ;
-        cdData.csq = ByteUtil.BCD2Int_BE(bs, index, index) ;
+        cdData.csq = ByteUtil.BCD2Int_LE(bs, index, index) ;
 
     }
+
+
+    /**
+     * 鍒嗘瀽鍔熻兘85鏁版嵁
+     * @param bs
+     * @param cdData
+     * @throws Exception
+     */
+    public static void parseCd85(byte[] bs, DataCd85Vo cdData) throws Exception {
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index ++ ;
+        cdData.opType = bs[index];
+
+        index++ ;
+        cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+        index += 4 ;
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+        index += 8 ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+        index += 8 ;
+        cdData.startDt  = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        cdData.endDt  = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        cdData.waterTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.eleTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.waterRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.thisEle = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisWater = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisMoney = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisDuration = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
+
+        index += 2 ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;//鍥涗釜瀛楄妭
+    }
+    /**
+     * 鍒嗘瀽鍔熻兘93銆丄3鏁版嵁
+     * @param bs
+     * @param cdData
+     * @throws Exception
+     */
+    public static void parseCd93A3(byte[] bs, DataCd93_A3Vo cdData) throws Exception {
+        int index = ProtocolConstantV206V202404.dataIndex ;
+        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
+
+        index++ ;
+        cdData.projectNo = (int)bs[index];
+
+        index ++ ;
+        cdData.opResult = bs[index];
+
+        index ++ ;
+        cdData.opType = bs[index];
+
+        index++ ;
+        cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
+
+        index += 4 ;
+        cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ;
+
+        index += 8 ;
+        cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
+
+        index += 8 ;
+        cdData.startDt  = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        cdData.endDt  = GlParse.parseRtuDt(bs, index) ;
+
+        index += 6 ;
+        cdData.waterTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.eleTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.moneyRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.waterRemain = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
+
+        index += 5 ;
+        cdData.thisEle = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisWater = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisMoney = ByteUtil.BCD2Long_LE(bs, index, index + 3)/100.0D ;
+
+        index += 4 ;
+        cdData.thisDuration = ByteUtil.BCD2Int_LE(bs, index, index + 1) ;
+
+        index += 2 ;
+        GlParse.parseAlarmAndState(bs, index, cdData) ;//鍥涗釜瀛楄妭
+    }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
new file mode 100644
index 0000000..e39949b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/AlarmVo.java
@@ -0,0 +1,77 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/13 16:01
+ * @Description
+ */
+public class AlarmVo {
+
+    public Byte statePump ; //娉�/闃�鐘舵��	(1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
+    public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ	(1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
+    public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃�	(1锛氬墿浣欐按閲忎负0鍏虫车  0锛氭甯�)
+    public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ	(1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
+    public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅�	(1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
+    public Byte alarmSteal ; //鍋锋按鎶ヨ	(1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
+    public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀�	(1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
+    public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ	(1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
+    public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0	(1锛氬墿浣欓噾棰濅负0鎶ヨ  0锛氭甯�)
+    public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀�	(1锛氬唴闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+    public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀�	(1锛氬闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
+    public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ	(1锛氫笁鐩哥己椤规姤璀�    0锛氭甯�)
+    public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ	(1锛氫氦娴佽繃娴佹姤璀�    0锛氭甯�)
+    public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀�	(1锛氭瑺鍘嬫姤璀�        0锛氭甯�)
+    public Byte stateIcEnable ; //IC鍗′娇鑳�	(1銆両C鏈夊埛鍗℃敮鎸�    0锛氫笉鏀寔)
+
+    public String toString(){
+        StringBuffer sb = new StringBuffer() ;
+        sb.append("      娉�/闃�鐘舵�� : ") ;
+        sb.append(statePump == null?"鏈煡":(statePump.byteValue()==1?"娉�/闃�寮�":(statePump.byteValue()==0?"娉�/闃�鍏�":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鍓╀綑姘撮噺鎶ヨ : ") ;
+        sb.append(alarmWaterRemain == null?"鏈煡":(alarmWaterRemain.byteValue() == 0 ? "姝e父":(alarmWaterRemain.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鍓╀綑0姘撮噺鍏虫车/闃� : ") ;
+        sb.append(alarm0WaterRemain == null?"鏈煡":(alarm0WaterRemain.byteValue() == 0 ? "姝e父":(alarm0WaterRemain.byteValue() == 1 ? "鍏虫车/闃�":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      骞村害瓒呴噰 : ") ;
+        sb.append(alarmExceedYear == null?"鏈煡":(alarmExceedYear.byteValue() == 0 ? "姝e父":(alarmExceedYear.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      娴侀噺璁℃晠闅� : ") ;
+        sb.append(alarmWaterMeterFault == null?"鏈煡":(alarmWaterMeterFault.byteValue() == 0 ? "姝e父":(alarmWaterMeterFault.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鍋锋按 : ") ;
+        sb.append(alarmSteal == null?"鏈煡":(alarmSteal.byteValue() == 0 ? "姝e父":(alarmSteal.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      娴侀噺璁℃崯鍧� : ") ;
+        sb.append(alarmWaterMeterBreak == null?"鏈煡":(alarmWaterMeterBreak.byteValue() == 0 ? "姝e父":(alarmWaterMeterBreak.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鐢佃〃鏁呴殰 : ") ;
+        sb.append(alarmEleMeterFault == null?"鏈煡":(alarmEleMeterFault.byteValue() == 0 ? "姝e父":(alarmEleMeterFault.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鍓╀綑0閲戦鍏虫车/闃� : ") ;
+        sb.append(alarm0MoneyRemain == null?"鏈煡":(alarm0MoneyRemain.byteValue() == 0 ? "姝e父":(alarm0MoneyRemain.byteValue() == 1 ? "鍏虫车/闃�":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鎺у埗鍣ㄥ唴闂� : ") ;
+        sb.append(alarmInnerDoor == null?"鏈煡":(alarmInnerDoor.byteValue() == 0 ? "姝e父":(alarmInnerDoor.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      鎺у埗鍣ㄥ闂� : ") ;
+        sb.append(alarmOuterDoor == null?"鏈煡":(alarmOuterDoor.byteValue() == 0 ? "姝e父":(alarmOuterDoor.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      浜ゆ祦缂洪」 : ") ;
+        sb.append(alarmEleMiss == null?"鏈煡":(alarmEleMiss.byteValue() == 0 ? "姝e父":(alarmEleMiss.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      浜ゆ祦杩囨祦 : ") ;
+        sb.append(alarmEleExceed == null?"鏈煡":(alarmEleExceed.byteValue() == 0 ? "姝e父":(alarmEleExceed.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      涓夌浉鐢垫瑺鍘� : ") ;
+        sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue() == 0 ? "姝e父":(alarmEleLowVolt.byteValue() == 1 ? "鎶ヨ":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      IC鍗″姛鑳� : ") ;
+        sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue() == 0 ? "涓嶆敮鎸�":(stateIcEnable.byteValue() == 1 ? "鏀寔":"鏈煡"))) ;
+        sb.append("\n") ;
+
+        return sb.toString() ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java
index 5888f6d..7217e7a 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd02Vo.java
@@ -10,9 +10,15 @@
 	public Integer projectNo ;//椤圭洰缂栧彿:
 	public String status ;//淇濇寔鍦ㄧ嚎鐘舵��:  F0 鐧诲綍锛孎1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd02Vo(String comName){
+		this.comName = comName ;
+	}
+
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      閾捐矾妫�娴� : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      璇锋眰鐘舵�� : ") ;
 		sb.append(status == null?"鏈煡":(status.equals("F0")?"鐧诲綍":(status.equals("F1")?"閫�鍑虹櫥褰�":(status.equals("F2")?"鍦ㄧ嚎淇濇寔":status)))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java
index 46ce7db..4ae9598 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd10Vo.java
@@ -10,9 +10,15 @@
 	public Integer projectNo ;//椤圭洰缂栧彿:
 	public String rtuNewAddr ;//鎺у埗鍣ㄦ柊鍦板潃
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd10Vo(String comName){
+		this.comName = comName ;
+	}
+
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      璁剧疆缁堢鍦板潃搴旂瓟 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java
index 1c3df62..24d3fec 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd50Vo.java
@@ -10,9 +10,15 @@
 	public Integer projectNo ;//椤圭洰缂栧彿:
 	public String rtuAddr;//鎺у埗鍣ㄦ柊鍦板潃
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd50Vo(String comName){
+		this.comName = comName ;
+	}
+
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      璁剧疆缁堢鍦板潃搴旂瓟 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java
index a2c4b9a..d484bf5 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd55Vo.java
@@ -16,10 +16,15 @@
 	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
 	public String dt ;//鍏呭�兼椂闂达紙yyyy-mm-dd HH:mm:ss锛�
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd55Vo(String comName){
+		this.comName = comName ;
+	}
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      鏌ヨ璁惧缁堢鍏呭�艰褰�  : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
index 6ee2945..7b367ba 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd56Vo.java
@@ -11,10 +11,15 @@
 	public Integer waterAlarm ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
 	public Integer moneyAlarm ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~65535
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd56Vo(String comName){
+		this.comName = comName ;
+	}
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      鏌ヨ璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀��  : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
@@ -24,6 +29,9 @@
 		sb.append("      鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
 		sb.append(moneyAlarm == null?"鏈煡":moneyAlarm) ;
 		sb.append("\n") ;
+		sb.append("      鍓╀綑姘撮噺鎶ヨ鍊� : ") ;
+		sb.append(waterAlarm == null?"鏈煡":waterAlarm) ;
+		sb.append("\n") ;
 		return sb.toString() ;
 	}
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java
deleted file mode 100644
index ca92652..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5BVo.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.upVos;
-
-import lombok.Data;
-
-//璁惧缁堢宸ヤ綔涓婃姤
-@Data
-public class DataCd5BVo extends DataCd80Vo {
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java
index 50abb2c..514e58d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd5CVo.java
@@ -13,9 +13,15 @@
 	public Double farmerAmountDay ;//褰撴棩鐢ㄦ埛鐢ㄦ按閲忥紝2涓皬鏁扮偣
 	public Double lossAmountDay ;//褰撴棩婕忔崯姘撮噺锛�2涓皬鏁扮偣
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd5CVo(String comName){
+		this.comName = comName ;
+	}
+
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      鏌ヨ璁惧缁堢鐨勫巻鍙叉棩璁板綍  : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java
index 5395ec4..e0a96fc 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd65Vo.java
@@ -14,13 +14,19 @@
 	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
 	public Double thisEle ;//鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
 	public Double thisWater ;//鏈浣跨敤姘撮噺(鍗曚綅0.01绔嬫柟绫�)
-	public String rtuStartDt ;//鏈寮�濮嬫椂闂� (鍒嗘椂鏃ユ湀)
-	public String rtuEndDt ;//鏈缁撴潫鏃堕棿 (鍒嗘椂鏃ユ湀)
+	public String rtuStartDt ;//鏈寮�濮嬫椂闂� (yyyy-mm-dd HH:MM:SS)
+	public String rtuEndDt ;//鏈缁撴潫鏃堕棿 (yyyy-mm-dd HH:MM:SS)
 	public Byte useWaterType ;//鐢ㄦ按鏂瑰紡锛�0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按 0x01:骞冲彴杩滅▼寮�娉�/闃�鐢ㄦ按 0x02:鐢ㄦ埛杩滅▼寮�娉�/闃�鐢ㄦ按 0x03:娴嬭瘯鍗★紝0x04:鍏跺畠锛�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd65Vo(String comName){
+		this.comName = comName ;
+	}
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java
new file mode 100644
index 0000000..22705f8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd68Vo.java
@@ -0,0 +1,38 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄�
+@Data
+public class DataCd68Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public Integer maxAmountYear ;//鏈轰簳骞存渶澶х敤姘撮噺  鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+	public Double limitLevel ;//姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd68Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鏈轰簳骞存渶澶х敤姘撮噺 : ") ;
+		sb.append(maxAmountYear == null?"鏈煡":maxAmountYear) ;
+		sb.append("\n") ;
+		sb.append("      姘翠綅涓嬮檺 : ") ;
+		sb.append(limitLevel == null?"鏈煡":limitLevel) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java
deleted file mode 100644
index 18ce06b..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80Vo.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.upVos;
-
-import lombok.Data;
-
-//璁惧缁堢宸ヤ綔涓婃姤
-@Data
-public class DataCd80Vo {
-
-	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
-	public Integer projectNo ;//椤圭洰缂栧彿:
-	public Byte useWaterType ;//鐢ㄦ按鏂瑰紡锛�0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按 0x01:骞冲彴杩滅▼寮�娉�/闃�鐢ㄦ按 0x02:鐢ㄦ埛杩滅▼寮�娉�/闃�鐢ㄦ按 0x03:娴嬭瘯鍗★紝0x04:鍏跺畠锛�
-	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
-	public String icCardAddr ;//IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃舵鏁版嵁涓�0)
-	public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級
-	public String rtuDt ;//瑙傚療鏃堕棿: 6瀛楄妭鐨凚CD鐮�(绉掑垎鏃舵棩鏈堝勾)
-	public Double waterLevel ;//姘翠綅锛堝崟浣�0.001绫筹級
-	public Double waterPress ;//姘村帇锛堝崟浣�0.01鍗冨笗锛�
-	public Double waterInstant ;//鐬椂娴侀噺锛堝崟浣�0.01绔嬫柟绫�/灏忔椂锛�
-	public Double waterTotal ;//姘磋〃绱娴侀噺(鍗曚綅0.01m3)
-	public Double eleTotal ;//鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
-	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
-	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
-	public Double thisEle ;//鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
-	public Double thisWater ;//鏈浣跨敤姘撮噺(鍗曚綅0.01绔嬫柟绫�)
-	public Double thisMoney ;//鏈浣跨敤閲戦(鍗曚綅0.01鍏�)
-	public Integer thisDuration ;//鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)
-	public Double waterPrice ;//褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
-	public Double elePrice ;//褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
-	public Double aVolt ;//浜ゆ祦A鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
-	public Double bVolt ;//浜ゆ祦B鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
-	public Double cVolt ;//浜ゆ祦C鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
-	public Double aCurrent ;//浜ゆ祦A鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
-	public Double bCurrent ;//浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
-	public Double cCurrent ;//浜ゆ祦C鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
-	public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)
-	public Double waterMeterTransVolt ;//姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)
-	public Double waterMeterWorkVolt ;//姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)
-	/*
-	CSQ鍊煎簲鍦�0鍒�31涔嬮棿锛屽叾涓�99琛ㄧず鏃犱俊鍙枫��
-	缃戠粶璐ㄩ噺璇勪及锛�
-		CSQ鍊煎皬浜�10锛氬彲浠ヨ涓虹綉缁滆緝宸��
-		CSQ鍊煎湪10鍜�25涔嬮棿锛氬彲浠ヨ涓虹綉缁滀腑绛夈��
-		CSQ鍊煎ぇ浜�25锛氬彲浠ヨ涓虹綉缁滆緝濂姐��
-		CSQ鍊煎皬浜�11锛氫笉瀹规槗闄勭潃缃戠粶銆�
-		11 < CSQ < 18锛氱綉缁滀笉绋冲畾锛屽彲鑳戒細瀵艰嚧璇爜杈冨銆�
-		CSQ鍊煎ぇ浜�18锛氳兘绋冲畾閫氫俊
-	 */
-	public Integer csq ;//鎵嬫満淇″彿寮哄害 CSQ鍊硷紙锛�
-
-	public Byte statePump ; //娉�/闃�鐘舵��	(1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
-	public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ	(1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
-	public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃�	(1锛氬墿浣欐按閲忎负0鍏虫车  0锛氭甯�)
-	public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ	(1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
-	public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅�	(1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
-	public Byte alarmSteal ; //鍋锋按鎶ヨ	(1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
-	public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀�	(1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
-	public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ	(1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
-	public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0鍏虫车/闃�	(1锛氬墿浣欓噾棰濅负0鎶ヨ  0锛氭甯�)
-	public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀�	(1锛氬唴闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
-	public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀�	(1锛氬闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
-	public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ	(1锛氫笁鐩哥己椤规姤璀�    0锛氭甯�)
-	public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ	(1锛氫氦娴佽繃娴佹姤璀�    0锛氭甯�)
-	public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀�	(1锛氭瑺鍘嬫姤璀�        0锛氭甯�)
-	public Byte stateIcEnable ; //IC鍗′娇鑳�	(1銆両C鏈夊埛鍗℃敮鎸�    0锛氫笉鏀寔)
-
-
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      璁惧缁堢宸ヤ綔涓婃姤 : \n") ;
-		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
-		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      椤圭洰缂栧彿 : ") ;
-		sb.append(projectNo == null?"鏈煡":projectNo) ;
-		sb.append("\n") ;
-		sb.append("      鐢ㄦ按鏂瑰紡 : ") ;
-		sb.append(useWaterType == null?"鏈煡":(useWaterType.byteValue()==0?"鍒峰崱寮�娉�/闃�":(useWaterType.byteValue()==1?"骞冲彴杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==2?"APP杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==3?"娴嬭瘯鍗″紑娉�/闃�":(useWaterType.byteValue()==4?"鍏朵粬":"鏈煡")))))) ;
-		sb.append("\n") ;
-		sb.append("      璁㈠崟鍙� : ") ;
-		sb.append(orderNo == null?"鏈煡":orderNo) ;
-		sb.append("\n") ;
-		sb.append("      IC鍗″湴鍧� : ") ;
-		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
-		sb.append("\n") ;
-		sb.append("      鐢ㄦ埛鍗″簭鍒楀彿 : ") ;
-		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
-		sb.append("\n") ;
-		sb.append("      瑙傚療鏃堕棿 : ") ;
-		sb.append(rtuDt == null?"鏈煡":rtuDt) ;
-		sb.append("\n") ;
-		sb.append("      姘翠綅 : ") ;
-		sb.append(waterLevel == null?"鏈煡":waterLevel) ;
-		sb.append("\n") ;
-		sb.append("      姘村帇 : ") ;
-		sb.append(waterPress == null?"鏈煡":waterPress) ;
-		sb.append("\n") ;
-		sb.append("      鐬椂娴侀噺 : ") ;
-		sb.append(waterInstant == null?"鏈煡":waterInstant) ;
-		sb.append("\n") ;
-		sb.append("      姘磋〃绱娴侀噺 : ") ;
-		sb.append(waterTotal == null?"鏈煡":waterTotal) ;
-		sb.append("\n") ;
-		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
-		sb.append(eleTotal == null?"鏈煡":eleTotal) ;
-		sb.append("\n") ;
-		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
-		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
-		sb.append("\n") ;
-		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
-		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
-		sb.append("\n") ;
-		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
-		sb.append(thisEle == null?"鏈煡":thisEle) ;
-		sb.append("\n") ;
-		sb.append("      鏈浣跨敤姘撮噺 : ") ;
-		sb.append(thisWater == null?"鏈煡":thisWater) ;
-		sb.append("\n") ;
-		sb.append("      鏈浣跨敤閲戦 : ") ;
-		sb.append(thisMoney == null?"鏈煡":thisMoney) ;
-		sb.append("\n") ;
-		sb.append("      鏈浣跨敤鏃堕暱 : ") ;
-		sb.append(thisDuration == null?"鏈煡":thisDuration) ;
-		sb.append("\n") ;
-		sb.append("      褰撳墠姘撮噺鍗曚环 : ") ;
-		sb.append(waterPrice == null?"鏈煡":waterPrice) ;
-		sb.append("\n") ;
-		sb.append("      褰撳墠鐢甸噺鍗曚环 : ") ;
-		sb.append(elePrice == null?"鏈煡":elePrice) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦A鐩哥數鍘� : ") ;
-		sb.append(aVolt == null?"鏈煡":aVolt) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦B鐩哥數鍘� : ") ;
-		sb.append(bVolt == null?"鏈煡":bVolt) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦C鐩哥數鍘� : ") ;
-		sb.append(cVolt == null?"鏈煡":cVolt) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦A鐩哥數娴� : ") ;
-		sb.append(aCurrent == null?"鏈煡":aCurrent) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦B鐩哥數娴� : ") ;
-		sb.append(bCurrent == null?"鏈煡":bCurrent) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦C鐩哥數娴� : ") ;
-		sb.append(cCurrent == null?"鏈煡":cCurrent) ;
-		sb.append("\n") ;
-		sb.append("      鍚庡鐢垫睜鐢靛帇 : ") ;
-		sb.append(batteryVolt == null?"鏈煡":batteryVolt) ;
-		sb.append("\n") ;
-		sb.append("      姘磋〃杩滀紶鐢靛帇 : ") ;
-		sb.append(waterMeterTransVolt == null?"鏈煡":waterMeterTransVolt) ;
-		sb.append("\n") ;
-		sb.append("      姘磋〃宸ヤ綔鐢靛帇 : ") ;
-		sb.append(waterMeterWorkVolt == null?"鏈煡":waterMeterWorkVolt) ;
-		sb.append("\n") ;
-		sb.append("      娉电姸鎬� : ") ;
-		sb.append(statePump == null?"鏈煡":(statePump.byteValue()==1?"娉�/闃�寮�":(statePump.byteValue()==0?"娉�/闃�鍏�":"鏈煡"))) ;
-		sb.append("      鍓╀綑姘撮噺鎶ヨ : ") ;
-		sb.append(alarmWaterRemain == null?"鏈煡":(alarmWaterRemain.byteValue()==1?"灏忎簬鎶ヨ涓婇檺":(alarmWaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鍓╀綑姘撮噺涓�0鍏虫车/闃� : ") ;
-		sb.append(alarm0WaterRemain == null?"鏈煡":(alarm0WaterRemain.byteValue()==1?"褰掗浂鍏虫车/闃�":(alarm0WaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      骞村害瓒呴噰 : ") ;
-		sb.append(alarmExceedYear == null?"鏈煡":(alarmExceedYear.byteValue()==1?"鎶ヨ":(alarmExceedYear.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      澶栭儴娴侀噺璁℃晠闅� : ") ;
-		sb.append(alarmWaterMeterFault == null?"鏈煡":(alarmWaterMeterFault.byteValue()==1?"鎶ヨ":(alarmWaterMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鍋锋按 : ") ;
-		sb.append(alarmSteal == null?"鏈煡":(alarmSteal.byteValue()==1?"鎶ヨ":(alarmSteal.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      娴侀噺璁℃崯鍧� : ") ;
-		sb.append(alarmWaterMeterBreak == null?"鏈煡":(alarmWaterMeterBreak.byteValue()==1?"鎶ヨ":(alarmWaterMeterBreak.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鐢佃〃鏁呴殰 : ") ;
-		sb.append(alarmEleMeterFault == null?"鏈煡":(alarmEleMeterFault.byteValue()==1?"鎶ヨ":(alarmEleMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鍓╀綑閲戦涓�0鍏虫车/闃� : ") ;
-		sb.append(alarm0MoneyRemain == null?"鏈煡":(alarm0MoneyRemain.byteValue()==1?"鎶ヨ":(alarm0MoneyRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鎺у埗鍣ㄥ唴闂� : ") ;
-		sb.append(alarmInnerDoor == null?"鏈煡":(alarmInnerDoor.byteValue()==1?"鎶ヨ":(alarmInnerDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鎺у埗鍣ㄥ闂� : ") ;
-		sb.append(alarmOuterDoor == null?"鏈煡":(alarmOuterDoor.byteValue()==1?"鎶ヨ":(alarmOuterDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦缂洪」 : ") ;
-		sb.append(alarmEleMiss == null?"鏈煡":(alarmEleMiss.byteValue()==1?"鎶ヨ":(alarmEleMiss.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦杩囨祦 : ") ;
-		sb.append(alarmEleExceed == null?"鏈煡":(alarmEleExceed.byteValue()==1?"鎶ヨ":(alarmEleExceed.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      涓夌浉鐢垫瑺鍘� : ") ;
-		sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue()==1?"鎶ヨ":(alarmEleLowVolt.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      IC鍗′娇鑳� : ") ;
-		sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue()==1?"鏀寔":(stateIcEnable.byteValue()==0?"涓嶆敮鎸�":"鏈煡"))) ;
-		sb.append("\n") ;
-		return sb.toString() ;
-	}
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java
new file mode 100644
index 0000000..06f782a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd80_5BVo.java
@@ -0,0 +1,149 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
+@Data
+public class DataCd80_5BVo extends AlarmVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Byte useWaterType ;//鐢ㄦ按鏂瑰紡锛�0x00:姝e父鍒峰崱寮�娉�/闃�鐢ㄦ按 0x01:骞冲彴杩滅▼寮�娉�/闃�鐢ㄦ按 0x02:鐢ㄦ埛杩滅▼寮�娉�/闃�鐢ㄦ按 0x03:娴嬭瘯鍗★紝0x04:鍏跺畠锛�
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public String icCardAddr ;//IC鍗″湴鍧�(杩滅▼寮�娉�/闃�鏃舵鏁版嵁涓�0)
+	public String icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�16浣嶆暟瀛楋級
+	public String rtuDt ;//瑙傚療鏃堕棿: 6瀛楄妭鐨凚CD鐮�(绉掑垎鏃舵棩鏈堝勾)
+	public Double waterLevel ;//姘翠綅锛堝崟浣�0.001绫筹級
+	public Double waterPress ;//姘村帇锛堝崟浣�0.01鍗冨笗锛�
+	public Double waterInstant ;//鐬椂娴侀噺锛堝崟浣�0.01绔嬫柟绫�/灏忔椂锛�
+	public Double waterTotal ;//姘磋〃绱娴侀噺(鍗曚綅0.01m3)
+	public Double eleTotal ;//鐢佃〃绱鐢甸噺(鍗曚綅0.01搴�)
+	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦(鍗曚綅0.01鍏�)
+	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺(鍗曚綅0.01m3)
+	public Double thisEle ;//鏈浣跨敤鐢甸噺(鍗曚綅0.01搴�)
+	public Double thisWater ;//鏈浣跨敤姘撮噺(鍗曚綅0.01绔嬫柟绫�)
+	public Double thisMoney ;//鏈浣跨敤閲戦(鍗曚綅0.01鍏�)
+	public Integer thisDuration ;//鏈浣跨敤鏃堕暱(鍗曚綅:鍒嗛挓  鏈�澶�9999鍒嗛挓)
+	public Double waterPrice ;//褰撳墠姘撮噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+	public Double elePrice ;//褰撳墠鐢甸噺鍗曚环(鍗曚綅0.01鍏� 鏈�澶�99.99鍏�)
+	public Double aVolt ;//浜ゆ祦A鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double bVolt ;//浜ゆ祦B鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double cVolt ;//浜ゆ祦C鐩哥數鍘嬫暟鎹�(鍗曚綅0.1浼忕壒)
+	public Double aCurrent ;//浜ゆ祦A鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double bCurrent ;//浜ゆ祦B鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double cCurrent ;//浜ゆ祦C鐩哥數娴佹暟鎹�(鍗曚綅0.1瀹夊煿)
+	public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇(鍗曚綅0.01浼忕壒)
+	public Double waterMeterTransVolt ;//姘磋〃杩滀紶鐢靛帇(鍗曚綅0.01浼忕壒)
+	public Double waterMeterWorkVolt ;//姘磋〃宸ヤ綔鐢靛帇(鍗曚綅0.01浼忕壒)
+	/*
+	CSQ鍊煎簲鍦�0鍒�31涔嬮棿锛屽叾涓�99琛ㄧず鏃犱俊鍙枫��
+	缃戠粶璐ㄩ噺璇勪及锛�
+		CSQ鍊煎皬浜�10锛氬彲浠ヨ涓虹綉缁滆緝宸��
+		CSQ鍊煎湪10鍜�25涔嬮棿锛氬彲浠ヨ涓虹綉缁滀腑绛夈��
+		CSQ鍊煎ぇ浜�25锛氬彲浠ヨ涓虹綉缁滆緝濂姐��
+		CSQ鍊煎皬浜�11锛氫笉瀹规槗闄勭潃缃戠粶銆�
+		11 < CSQ < 18锛氱綉缁滀笉绋冲畾锛屽彲鑳戒細瀵艰嚧璇爜杈冨銆�
+		CSQ鍊煎ぇ浜�18锛氳兘绋冲畾閫氫俊
+	 */
+	public Integer csq ;//鎵嬫満淇″彿寮哄害 CSQ鍊硷紙锛�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd80_5BVo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ按鏂瑰紡 : ") ;
+		sb.append(useWaterType == null?"鏈煡":(useWaterType.byteValue()==0?"鍒峰崱寮�娉�/闃�":(useWaterType.byteValue()==1?"骞冲彴杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==2?"APP杩滅▼寮�娉�/闃�":(useWaterType.byteValue()==3?"娴嬭瘯鍗″紑娉�/闃�":(useWaterType.byteValue()==4?"鍏朵粬":"鏈煡")))))) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍗″簭鍒楀彿 : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      瑙傚療鏃堕棿 : ") ;
+		sb.append(rtuDt == null?"鏈煡":rtuDt) ;
+		sb.append("\n") ;
+		sb.append("      姘翠綅 : ") ;
+		sb.append(waterLevel == null?"鏈煡":waterLevel) ;
+		sb.append("\n") ;
+		sb.append("      姘村帇 : ") ;
+		sb.append(waterPress == null?"鏈煡":waterPress) ;
+		sb.append("\n") ;
+		sb.append("      鐬椂娴侀噺 : ") ;
+		sb.append(waterInstant == null?"鏈煡":waterInstant) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱娴侀噺 : ") ;
+		sb.append(waterTotal == null?"鏈煡":waterTotal) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotal == null?"鏈煡":eleTotal) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
+		sb.append(thisEle == null?"鏈煡":thisEle) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤姘撮噺 : ") ;
+		sb.append(thisWater == null?"鏈煡":thisWater) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤閲戦 : ") ;
+		sb.append(thisMoney == null?"鏈煡":thisMoney) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鏃堕暱 : ") ;
+		sb.append(thisDuration == null?"鏈煡":thisDuration) ;
+		sb.append("\n") ;
+		sb.append("      褰撳墠姘撮噺鍗曚环 : ") ;
+		sb.append(waterPrice == null?"鏈煡":waterPrice) ;
+		sb.append("\n") ;
+		sb.append("      褰撳墠鐢甸噺鍗曚环 : ") ;
+		sb.append(elePrice == null?"鏈煡":elePrice) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦A鐩哥數鍘� : ") ;
+		sb.append(aVolt == null?"鏈煡":aVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦B鐩哥數鍘� : ") ;
+		sb.append(bVolt == null?"鏈煡":bVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦C鐩哥數鍘� : ") ;
+		sb.append(cVolt == null?"鏈煡":cVolt) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦A鐩哥數娴� : ") ;
+		sb.append(aCurrent == null?"鏈煡":aCurrent) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦B鐩哥數娴� : ") ;
+		sb.append(bCurrent == null?"鏈煡":bCurrent) ;
+		sb.append("\n") ;
+		sb.append("      浜ゆ祦C鐩哥數娴� : ") ;
+		sb.append(cCurrent == null?"鏈煡":cCurrent) ;
+		sb.append("\n") ;
+		sb.append("      鍚庡鐢垫睜鐢靛帇 : ") ;
+		sb.append(batteryVolt == null?"鏈煡":batteryVolt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃杩滀紶鐢靛帇 : ") ;
+		sb.append(waterMeterTransVolt == null?"鏈煡":waterMeterTransVolt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃宸ヤ綔鐢靛帇 : ") ;
+		sb.append(waterMeterWorkVolt == null?"鏈煡":waterMeterWorkVolt) ;
+		sb.append("\n") ;
+		return sb.toString() + super.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java
index 665b22a..5c1047d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd81Vo.java
@@ -4,82 +4,31 @@
 
 //璁惧缁堢闅忔満鑷姤
 @Data
-public class DataCd81Vo {
+public class DataCd81Vo extends AlarmVo {
 
 	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
 	public Integer projectNo ;//椤圭洰缂栧彿:
+	public String rtuDt ;//璁惧涓婃姤鐨勬棩鏈熸椂闂�(yyyy-mm-dd HH:MM:SS)
 
-	public Byte statePump ; //娉�/闃�鐘舵��	(1锛氬紑娉�/闃�锛�0锛氬叧娉�/闃�)
-	public Byte alarmWaterRemain ; //鍓╀綑姘撮噺鎶ヨ	(1锛氬皬浜庢姤璀︿笂闄愭姤璀� 0锛氭甯�)
-	public Byte alarm0WaterRemain ; //鍓╀綑姘撮噺涓�0鍏虫车/闃�	(1锛氬墿浣欐按閲忎负0鍏虫车  0锛氭甯�)
-	public Byte alarmExceedYear ; //骞村害瓒呴噰鎶ヨ	(1锛氬勾鐢ㄦ按閲忓ぇ浜庨檺鍒舵按閲忔姤璀� 0锛氭甯�)
-	public Byte alarmWaterMeterFault ; //澶栭儴娴侀噺璁℃晠闅�	(1锛氭祦閲忚鏁呴殰鎶ヨ 0锛氭甯�)
-	public Byte alarmSteal ; //鍋锋按鎶ヨ	(1锛氱粫寮�鎺у埗鍣ㄧ敤姘存姤璀� 0锛氭甯�)
-	public Byte alarmWaterMeterBreak ; //娴侀噺璁℃崯鍧忔姤璀�	(1锛氭甯搁�氳浣嗙灛鏃朵负0鎶ヨ 0锛氭甯�)
-	public Byte alarmEleMeterFault ; //鐢佃〃鏁呴殰鎶ヨ	(1锛氬拰鐢佃〃閫氳鏂垨鏁版嵁涓嶆甯� 0锛氭甯�)
-	public Byte alarm0MoneyRemain ; //鍓╀綑閲戦涓�0鍏虫车/闃�	(1锛氬墿浣欓噾棰濅负0鎶ヨ  0锛氭甯�)
-	public Byte alarmInnerDoor ; //鎺у埗鍣ㄥ唴闂ㄦ姤璀�	(1锛氬唴闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
-	public Byte alarmOuterDoor ; //鎺у埗鍣ㄥ闂ㄦ姤璀�	(1锛氬闂ㄦ墦寮�鎶ヨ    0锛氭甯�)
-	public Byte alarmEleMiss ; //浜ゆ祦缂洪」鎶ヨ	(1锛氫笁鐩哥己椤规姤璀�    0锛氭甯�)
-	public Byte alarmEleExceed ; //浜ゆ祦杩囨祦鎶ヨ	(1锛氫氦娴佽繃娴佹姤璀�    0锛氭甯�)
-	public Byte alarmEleLowVolt ; //涓夌浉鐢垫瑺鍘嬫姤璀�	(1锛氭瑺鍘嬫姤璀�        0锛氭甯�)
-	public Byte stateIcEnable ; //IC鍗′娇鑳�	(1銆両C鏈夊埛鍗℃敮鎸�    0锛氫笉鏀寔)
+	public String comName ;//鍛戒护鍚嶇О
 
+	public DataCd81Vo(String comName){
+		this.comName = comName ;
+	}
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      璁惧缁堢闅忔満鑷姤 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
 		sb.append("      椤圭洰缂栧彿 : ") ;
 		sb.append(projectNo == null?"鏈煡":projectNo) ;
 		sb.append("\n") ;
-		sb.append("      娉电姸鎬� : ") ;
-		sb.append(statePump == null?"鏈煡":(statePump.byteValue()==1?"娉�/闃�寮�":(statePump.byteValue()==0?"娉�/闃�鍏�":"鏈煡"))) ;
-		sb.append("      鍓╀綑姘撮噺鎶ヨ : ") ;
-		sb.append(alarmWaterRemain == null?"鏈煡":(alarmWaterRemain.byteValue()==1?"灏忎簬鎶ヨ涓婇檺":(alarmWaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
+		sb.append("      璁惧鏃堕挓 : ") ;
+		sb.append(rtuDt == null?"鏈煡":rtuDt) ;
 		sb.append("\n") ;
-		sb.append("      鍓╀綑姘撮噺涓�0鍏虫车/闃� : ") ;
-		sb.append(alarm0WaterRemain == null?"鏈煡":(alarm0WaterRemain.byteValue()==1?"褰掗浂鍏虫车/闃�":(alarm0WaterRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      骞村害瓒呴噰 : ") ;
-		sb.append(alarmExceedYear == null?"鏈煡":(alarmExceedYear.byteValue()==1?"鎶ヨ":(alarmExceedYear.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      澶栭儴娴侀噺璁℃晠闅� : ") ;
-		sb.append(alarmWaterMeterFault == null?"鏈煡":(alarmWaterMeterFault.byteValue()==1?"鎶ヨ":(alarmWaterMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鍋锋按 : ") ;
-		sb.append(alarmSteal == null?"鏈煡":(alarmSteal.byteValue()==1?"鎶ヨ":(alarmSteal.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      娴侀噺璁℃崯鍧� : ") ;
-		sb.append(alarmWaterMeterBreak == null?"鏈煡":(alarmWaterMeterBreak.byteValue()==1?"鎶ヨ":(alarmWaterMeterBreak.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鐢佃〃鏁呴殰 : ") ;
-		sb.append(alarmEleMeterFault == null?"鏈煡":(alarmEleMeterFault.byteValue()==1?"鎶ヨ":(alarmEleMeterFault.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鍓╀綑閲戦涓�0鍏虫车/闃� : ") ;
-		sb.append(alarm0MoneyRemain == null?"鏈煡":(alarm0MoneyRemain.byteValue()==1?"鎶ヨ":(alarm0MoneyRemain.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鎺у埗鍣ㄥ唴闂� : ") ;
-		sb.append(alarmInnerDoor == null?"鏈煡":(alarmInnerDoor.byteValue()==1?"鎶ヨ":(alarmInnerDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      鎺у埗鍣ㄥ闂� : ") ;
-		sb.append(alarmOuterDoor == null?"鏈煡":(alarmOuterDoor.byteValue()==1?"鎶ヨ":(alarmOuterDoor.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦缂洪」 : ") ;
-		sb.append(alarmEleMiss == null?"鏈煡":(alarmEleMiss.byteValue()==1?"鎶ヨ":(alarmEleMiss.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      浜ゆ祦杩囨祦 : ") ;
-		sb.append(alarmEleExceed == null?"鏈煡":(alarmEleExceed.byteValue()==1?"鎶ヨ":(alarmEleExceed.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      涓夌浉鐢垫瑺鍘� : ") ;
-		sb.append(alarmEleLowVolt == null?"鏈煡":(alarmEleLowVolt.byteValue()==1?"鎶ヨ":(alarmEleLowVolt.byteValue()==0?"姝e父":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      IC鍗′娇鑳� : ") ;
-		sb.append(stateIcEnable == null?"鏈煡":(stateIcEnable.byteValue()==1?"鏀寔":(stateIcEnable.byteValue()==0?"涓嶆敮鎸�":"鏈煡"))) ;
-		sb.append("\n") ;
-		return sb.toString() ;
+		return sb.toString() + super.toString() ;
 	}
 
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
new file mode 100644
index 0000000..104f326
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd83Vo.java
@@ -0,0 +1,66 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏈轰簳瀹氱偣涓婃姤, 姣忓ぉ12鐐逛笂鎶ユ暟鎹�
+@Data
+public class DataCd83Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public Double waterTotalAmountYear ;//鏈勾绱娴侀噺
+	public Double waterTotalAmountMeter ;//姘磋〃绱娴侀噺
+	public Double eleTotalAmountYear ;//鏈勾绱鐢甸噺
+	public Double eleTotalAmountMeter ;//鐢佃〃绱鐢甸噺
+	public Double waterTotalAmountDay ;//褰撴棩姘磋〃鍑�娴侀噺
+	public Double waterUserTotalAmountDay ;// 褰撴棩鐢ㄦ埛鐢ㄦ按閲�
+	public Double lossTotalAmountDay ;// 婕忔崯姘撮噺
+	public Double batteryVolt ;//鍚庡鐢垫睜鐢靛帇
+	public Double rtuDt ;//涓婃姤鏃堕棿锛坹yyy-mm-dd HH锛�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd83Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鏈勾绱娴侀噺 : ") ;
+		sb.append(waterTotalAmountYear == null?"鏈煡":waterTotalAmountYear) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱娴侀噺 : ") ;
+		sb.append(waterTotalAmountMeter == null?"鏈煡":waterTotalAmountMeter) ;
+		sb.append("\n") ;
+		sb.append("      鏈勾绱鐢甸噺 : ") ;
+		sb.append(eleTotalAmountYear == null?"鏈煡":eleTotalAmountYear) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotalAmountMeter == null?"鏈煡":eleTotalAmountMeter) ;
+		sb.append("\n") ;
+		sb.append("      褰撴棩姘磋〃鍑�娴侀噺 : ") ;
+		sb.append(waterTotalAmountDay == null?"鏈煡":waterTotalAmountDay) ;
+		sb.append("\n") ;
+		sb.append("      褰撴棩鐢ㄦ埛鐢ㄦ按閲� : ") ;
+		sb.append(waterUserTotalAmountDay == null?"鏈煡":waterUserTotalAmountDay) ;
+		sb.append("\n") ;
+		sb.append("      婕忔崯姘撮噺 : ") ;
+		sb.append(lossTotalAmountDay == null?"鏈煡":lossTotalAmountDay) ;
+		sb.append("\n") ;
+		sb.append("      鍚庡鐢垫睜鐢靛帇 : ") ;
+		sb.append(batteryVolt == null?"鏈煡":batteryVolt) ;
+		sb.append("\n") ;
+		sb.append("      涓婃姤鏃堕棿 : ") ;
+		sb.append(rtuDt == null?"鏈煡":rtuDt) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
new file mode 100644
index 0000000..b351c34
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd84Vo.java
@@ -0,0 +1,62 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鍒峰崱寮�娉�/闃�涓婃姤
+@Data
+public class DataCd84Vo extends AlarmVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public String opDt ;//寮�娉�/闃�鏃堕棿(鍒嗘椂鏃ユ湀)
+	public Double waterTotalAmount ;//姘磋〃绱姘撮噺锛屽崟浣�0.01绔嬫柟绫�
+	public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺锛屽崟浣�0.01搴�
+	public Double moneyRemainUser ;//鐢ㄦ埛鍓╀綑閲戦锛� 鍗曚綅0.01鍏�
+	public Double waterRemainUser ;//鐢ㄦ埛鍓╀綑姘撮噺锛� 鍗曚綅0.01m3
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd84Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗$紪鍙� : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      寮�娉�/闃�鏃堕棿 : ") ;
+		sb.append(opDt == null?"鏈煡":opDt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱姘撮噺 : ") ;
+		sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotalAmount == null?"鏈煡":eleTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemainUser == null?"鏈煡":moneyRemainUser) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemainUser == null?"鏈煡":waterRemainUser) ;
+		sb.append("\n") ;
+		return sb.toString() + super.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java
new file mode 100644
index 0000000..5037c15
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd85Vo.java
@@ -0,0 +1,87 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
+@Data
+public class DataCd85Vo extends AlarmVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public Byte opType ;//鍏虫车/闃�鏂瑰紡:  0x00:鍒峰崱闂� 0x01:骞冲彴鍏� 0x02:APP鍏�  0x03:闈炴硶鍗″叧 0x04:姘磋〃寮傚父鍏� 0x05:鐢佃〃寮傚父鍏� 0x06:鍓╀綑姘撮噺涓嶈冻鍏� 0x07:鍓╀綑閲戦涓嶈冻鍏� 0x08:寮�娉�/闃�鍚庣閬撴病鏈夋祦閲忓叧 0x09:鎺夌數鍐嶄笂鐢点��
+	public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public String startDt ;//寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
+	public String endDt ;//缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
+	public Double waterTotalAmount ;//姘磋〃绱娴侀噺
+	public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺
+	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦锛屽崟浣�0.01鍏�
+	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺锛屼繚鐣� 榛樿 00 00 00 00 00
+	public Double thisEle ;//鏈浣跨敤鐢甸噺, 鍗曚綅0.01搴�
+	public Double thisWater ;//鏈浣跨敤姘撮噺, 鍗曚綅0.01绔嬫柟绫�
+	public Double thisMoney ;//鏈浣跨敤閲戦, 鍗曚綅0.01鍏�
+	public Integer thisDuration;//鏈浣跨敤鏃堕棿闀�, 鍗曚綅锛氬垎閽�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd85Vo(String comName){
+		this.comName = comName ;
+	}
+
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍏虫车/闃�绫诲瀷 : ") ;
+		sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x00 ? "鍒峰崱":(opType.byteValue() == 0x01 ? "骞冲彴":(opType.byteValue() == 0x02 ? "APP":(opType.byteValue() == 0x03 ? "闈炴硶鍗�":(opType.byteValue() == 0x04 ? "姘磋〃寮傚父":(opType.byteValue() == 0x05 ? "鐢佃〃寮傚父":(opType.byteValue() == 0x06 ? "鍓╀綑姘撮噺涓嶈冻":(opType.byteValue() == 0x07 ? "鍓╀綑閲戦涓嶈冻":(opType.byteValue() == 0x08 ? "鏃犳祦閲�":(opType.byteValue() == 0x09 ? "鎺夌數鍐嶄笂鐢�":"鏈煡"))))))))))) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗$紪鍙� : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      寮�濮嬫椂闂� : ") ;
+		sb.append(startDt == null?"鏈煡":startDt) ;
+		sb.append("\n") ;
+		sb.append("      缁撴潫鏃堕棿 : ") ;
+		sb.append(endDt == null?"鏈煡":endDt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱娴侀噺 : ") ;
+		sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotalAmount == null?"鏈煡":eleTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
+		sb.append(thisEle == null?"鏈煡":thisEle) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤姘撮噺 : ") ;
+		sb.append(thisWater == null?"鏈煡":thisWater) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤閲戦 : ") ;
+		sb.append(thisMoney == null?"鏈煡":thisMoney) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鏃堕棿闀� : ") ;
+		sb.append(thisDuration == null?"鏈煡": thisDuration) ;
+		sb.append("\n") ;
+		return sb.toString() + super.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
new file mode 100644
index 0000000..8eab817
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd86Vo.java
@@ -0,0 +1,43 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鎺у埗鍣↖P鍦板潃
+@Data
+public class DataCd86Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Integer channel ;//IP閫氶亾鍙�
+	public String ip ;//IP
+	public Integer port ;//绔彛鍙�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd86Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      IP閫氶亾鍙� : ") ;
+		sb.append(channel == null?"鏈煡":channel) ;
+		sb.append("\n") ;
+		sb.append("      ip : ") ;
+		sb.append(ip == null?"鏈煡":ip) ;
+		sb.append("\n") ;
+		sb.append("      绔彛鍙� : ") ;
+		sb.append(port == null?"鏈煡":port) ;
+		sb.append("\n") ;
+
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
new file mode 100644
index 0000000..ccf749f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd87Vo.java
@@ -0,0 +1,43 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//鏌ヨ鎺у埗鍣ㄥ煙鍚�
+@Data
+public class DataCd87Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Integer channel ;//IP閫氶亾鍙�
+	public String domain ;//鍩熷悕
+	public Integer port ;//绔彛鍙�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd87Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      IP閫氶亾鍙� : ") ;
+		sb.append(channel == null?"鏈煡":channel) ;
+		sb.append("\n") ;
+		sb.append("      鍩熷悕 : ") ;
+		sb.append(domain == null?"鏈煡":domain) ;
+		sb.append("\n") ;
+		sb.append("      绔彛鍙� : ") ;
+		sb.append(port == null?"鏈煡":port) ;
+		sb.append("\n") ;
+
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd88Vo.java
similarity index 65%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd88Vo.java
index 53bae3b..9607a02 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd15Vo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd88Vo.java
@@ -2,28 +2,32 @@
 
 import lombok.Data;
 
-//杩滅▼鐢ㄦ埛鍏呭��
+//鏌ヨ鎺у埗鍣ㄥ煙鍚�
 @Data
-public class DataCd15Vo {
-
+public class DataCd88Vo {
 
 	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
 	public Integer projectNo ;//椤圭洰缂栧彿:
-	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+	public String registerNo ;//娉ㄥ唽鍙凤紙16瀛楄妭hex锛�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd88Vo(String comName){
+		this.comName = comName ;
+	}
 
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
 		sb.append("      椤圭洰缂栧彿 : ") ;
 		sb.append(projectNo == null?"鏈煡":projectNo) ;
 		sb.append("\n") ;
-		sb.append("      鍛戒护缁撴灉 : ") ;
-		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+		sb.append("      娉ㄥ唽鍙� : ") ;
+		sb.append(registerNo == null?"鏈煡":registerNo) ;
 		sb.append("\n") ;
-
 		return sb.toString() ;
 	}
 
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java
index 3915231..b8795b7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd8AVo.java
@@ -14,9 +14,15 @@
 	public Float hardVersion ;//纭欢鐗堟湰鍙�
 	public Float protocolVersion ;//鍗忚鐗堟湰鍙�
 
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd8AVo(String comName){
+		this.comName = comName ;
+	}
+
 	public String toString(){
 		StringBuffer sb = new StringBuffer() ;
-		sb.append("      璁惧鐧诲綍 : \n") ;
+		sb.append("      " + comName + " : \n") ;
 		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
 		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
 		sb.append("\n") ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
new file mode 100644
index 0000000..954ffc7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd92_A2Vo.java
@@ -0,0 +1,46 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�
+@Data
+public class DataCd92_A2Vo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public Byte opType ;//寮�闃�绫诲瀷: 01:骞冲彴寮�娉�/闃� 02:鐢ㄦ埛寮�娉�/闃�
+	public Byte opResult ;//寮�鍚车/闃�缁撴灉: 0x00:鎴愬姛 0x81:澶辫触
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd92_A2Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗$紪鍙� : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      寮�鍚车/闃�绫诲瀷 : ") ;
+		sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x01 ? "骞冲彴":"鐢ㄦ埛")) ;
+		sb.append("\n") ;
+		sb.append("      寮�鍚车/闃�缁撴灉 : ") ;
+		sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+		return sb.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
new file mode 100644
index 0000000..0063ee0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd93_A3Vo.java
@@ -0,0 +1,90 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
+@Data
+public class DataCd93_A3Vo extends AlarmVo {
+
+	public String controllerType;//鎺у埗鍣ㄧ被鍨� 01锛�0x01锛�:娴嬫帶涓�浣撻榾锛�57(0x57):浜曠數鎺у埗鍣�
+	public Integer projectNo ;//鎺у埗鍣ㄧ被鍨� 0x01:娴嬫帶涓�浣撻榾锛�0x57:浜曠數鎺у埗鍣�
+	public Byte opResult ;//鍏虫车/闃�缁撴灉: 0x00:鎴愬姛 0x81:澶辫触
+	public Byte opType ;//鍏虫车/闃�鏂瑰紡:  0x00:鍒峰崱闂� 0x01:骞冲彴鍏� 0x02:APP鍏�  0x03:闈炴硶鍗″叧 0x04:姘磋〃寮傚父鍏� 0x05:鐢佃〃寮傚父鍏� 0x06:鍓╀綑姘撮噺涓嶈冻鍏� 0x07:鍓╀綑閲戦涓嶈冻鍏� 0x08:寮�娉�/闃�鍚庣閬撴病鏈夋祦閲忓叧 0x09:鎺夌數鍐嶄笂鐢点��
+	public String icCardAddr ;//IC鍗″湴鍧�锛堣繙绋嬪叧闂椂涓�0锛�
+	public String icCardNo ;//IC鍗$紪鍙凤紙17浣嶆暟瀛楋級
+	public String orderNo ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+	public String startDt ;//寮�濮嬫椂闂�(鍒嗘椂鏃ユ湀)
+	public String endDt ;//缁撴潫鏃堕棿(鍒嗘椂鏃ユ湀)
+	public Double waterTotalAmount ;//姘磋〃绱娴侀噺
+	public Double eleTotalAmount ;//鐢佃〃绱鐢甸噺
+	public Double moneyRemain ;//鐢ㄦ埛鍓╀綑閲戦锛屽崟浣�0.01鍏�
+	public Double waterRemain ;//鐢ㄦ埛鍓╀綑姘撮噺锛屼繚鐣� 榛樿 00 00 00 00 00
+	public Double thisEle ;//鏈浣跨敤鐢甸噺, 鍗曚綅0.01搴�
+	public Double thisWater ;//鏈浣跨敤姘撮噺, 鍗曚綅0.01绔嬫柟绫�
+	public Double thisMoney ;//鏈浣跨敤閲戦, 鍗曚綅0.01鍏�
+	public Integer thisDuration;//鏈浣跨敤鏃堕棿闀�, 鍗曚綅锛氬垎閽�
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCd93_A3Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鍏虫车/闃�绫诲瀷 : ") ;
+		sb.append(opType == null?"鏈煡":(opType.byteValue() == 0x00 ? "鍒峰崱":(opType.byteValue() == 0x01 ? "骞冲彴":(opType.byteValue() == 0x02 ? "APP":(opType.byteValue() == 0x03 ? "闈炴硶鍗�":(opType.byteValue() == 0x04 ? "姘磋〃寮傚父":(opType.byteValue() == 0x05 ? "鐢佃〃寮傚父":(opType.byteValue() == 0x06 ? "鍓╀綑姘撮噺涓嶈冻":(opType.byteValue() == 0x07 ? "鍓╀綑閲戦涓嶈冻":(opType.byteValue() == 0x08 ? "鏃犳祦閲�":(opType.byteValue() == 0x09 ? "鎺夌數鍐嶄笂鐢�":"鏈煡"))))))))))) ;
+		sb.append("\n") ;
+		sb.append("      鍏冲惎娉�/闃�缁撴灉 : ") ;
+		sb.append(opResult == null?"鏈煡":(opResult.byteValue() == 0x00 ? "鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗″湴鍧� : ") ;
+		sb.append(icCardAddr == null?"鏈煡":icCardAddr) ;
+		sb.append("\n") ;
+		sb.append("      IC鍗$紪鍙� : ") ;
+		sb.append(icCardNo == null?"鏈煡":icCardNo) ;
+		sb.append("\n") ;
+		sb.append("      璁㈠崟鍙� : ") ;
+		sb.append(orderNo == null?"鏈煡":orderNo) ;
+		sb.append("\n") ;
+		sb.append("      寮�濮嬫椂闂� : ") ;
+		sb.append(startDt == null?"鏈煡":startDt) ;
+		sb.append("\n") ;
+		sb.append("      缁撴潫鏃堕棿 : ") ;
+		sb.append(endDt == null?"鏈煡":endDt) ;
+		sb.append("\n") ;
+		sb.append("      姘磋〃绱娴侀噺 : ") ;
+		sb.append(waterTotalAmount == null?"鏈煡":waterTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢佃〃绱鐢甸噺 : ") ;
+		sb.append(eleTotalAmount == null?"鏈煡":eleTotalAmount) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑閲戦 : ") ;
+		sb.append(moneyRemain == null?"鏈煡":moneyRemain) ;
+		sb.append("\n") ;
+		sb.append("      鐢ㄦ埛鍓╀綑姘撮噺 : ") ;
+		sb.append(waterRemain == null?"鏈煡":waterRemain) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鐢甸噺 : ") ;
+		sb.append(thisEle == null?"鏈煡":thisEle) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤姘撮噺 : ") ;
+		sb.append(thisWater == null?"鏈煡":thisWater) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤閲戦 : ") ;
+		sb.append(thisMoney == null?"鏈煡":thisMoney) ;
+		sb.append("\n") ;
+		sb.append("      鏈浣跨敤鏃堕棿闀� : ") ;
+		sb.append(thisDuration == null?"鏈煡": thisDuration) ;
+		sb.append("\n") ;
+		return sb.toString() + super.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java
deleted file mode 100644
index a2440c2..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd97Vo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.upVos;
-
-import lombok.Data;
-
-//娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
-@Data
-public class DataCd97Vo {
-
-	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
-	public Integer projectNo ;//椤圭洰缂栧彿:
-	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
-
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
-		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
-		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      椤圭洰缂栧彿 : ") ;
-		sb.append(projectNo == null?"鏈煡":projectNo) ;
-		sb.append("\n") ;
-		sb.append("      鍛戒护缁撴灉 : ") ;
-		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
-		sb.append("\n") ;
-
-		return sb.toString() ;
-	}
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java
deleted file mode 100644
index e061feb..0000000
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCd98Vo.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.dy.common.mw.protocol.p206V202404.upVos;
-
-import lombok.Data;
-
-//娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍
-@Data
-public class DataCd98Vo {
-
-	public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
-	public Integer projectNo ;//椤圭洰缂栧彿:
-	public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
-
-	public String toString(){
-		StringBuffer sb = new StringBuffer() ;
-		sb.append("      娓呴櫎璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍 : \n") ;
-		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
-		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
-		sb.append("\n") ;
-		sb.append("      椤圭洰缂栧彿 : ") ;
-		sb.append(projectNo == null?"鏈煡":projectNo) ;
-		sb.append("\n") ;
-		sb.append("      鍛戒护缁撴灉 : ") ;
-		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
-		sb.append("\n") ;
-
-		return sb.toString() ;
-	}
-
-}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java
new file mode 100644
index 0000000..ddb99e3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdC2Vo.java
@@ -0,0 +1,46 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+import lombok.Data;
+
+//寮�鍏虫按娉�/闃�闂ㄦ垚鍔�/澶辫触涓婃姤
+@Data
+public class DataCdC2Vo extends AlarmVo {
+
+	public String controllerType ;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+	public Integer projectNo ;//椤圭洰缂栧彿:
+	public Byte opType1 ;//鎿嶄綔鏂瑰紡锛�0:鍒峰崱寮�姘存车/闃�闂紱1:杩滅▼寮�姘存车/闃�闂紱2:APP寮�姘存车/闃�闂�
+	public Byte opType2 ;//寮�鍚叧闂細0: 寮�鍚� -1:鍏抽棴
+	public Boolean success ;//鎵ц缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+	public String rutDt ;//璁惧鏃堕挓
+
+	public String comName ;//鍛戒护鍚嶇О
+
+	public DataCdC2Vo(String comName){
+		this.comName = comName ;
+	}
+
+	public String toString(){
+		StringBuffer sb = new StringBuffer() ;
+		sb.append("      " + comName + " : \n") ;
+		sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+		sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      椤圭洰缂栧彿 : ") ;
+		sb.append(projectNo == null?"鏈煡":projectNo) ;
+		sb.append("\n") ;
+		sb.append("      鎿嶄綔鏂瑰紡 : ") ;
+		sb.append(opType1 == null?"鏈煡":(opType1.byteValue()==0?"鍒峰崱":(opType1.byteValue()==1?"杩滅▼":(opType1.byteValue()==2?"App":"鏈煡")))) ;
+		sb.append("\n") ;
+		sb.append("      寮�鍚叧闂� : ") ;
+		sb.append(opType2 == null?"鏈煡":(opType2.byteValue()==0?"寮�鍚按娉�/闃�闂�":(opType2.byteValue()==1?"鍏抽棴姘存车/闃�闂�":"鏈煡"))) ;
+		sb.append("\n") ;
+		sb.append("      璁惧鏃堕挓 : ") ;
+		sb.append(rutDt == null?"鏈煡":rutDt) ;
+		sb.append("\n") ;
+		sb.append("      鎵ц缁撴灉 : ") ;
+		sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+		sb.append("\n") ;
+		return sb.toString() + super.toString() ;
+	}
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdXyVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdXyVo.java
new file mode 100644
index 0000000..ea54a9e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/upVos/DataCdXyVo.java
@@ -0,0 +1,31 @@
+package com.dy.common.mw.protocol.p206V202404.upVos;
+
+public class DataCdXyVo {
+
+    public String controllerType;//鎺у埗鍣ㄧ被鍨�:   01:娴嬫帶涓�浣撻榾锛�57:浜曠數鎺у埗鍣�
+    public Integer projectNo ;//椤圭洰缂栧彿:
+    public Boolean success ;//鍛戒护缁撴灉锛坱rue鎴愬姛, false澶辫触锛�
+
+    public String comName ;//鍛戒护鍚嶇О
+
+    public DataCdXyVo(String comName){
+        this.comName = comName ;
+    }
+
+    public String toString(){
+        StringBuffer sb = new StringBuffer() ;
+        sb.append("      " + comName + " : \n") ;
+        sb.append("      鎺у埗鍣ㄧ被鍨� : ") ;
+        sb.append(controllerType == null?"鏈煡":(controllerType.equals("01")?"娴嬫帶涓�浣撻榾":(controllerType.equals("57")?"浜曠數鎺у埗鍣�":"鏈煡"))) ;
+        sb.append("\n") ;
+        sb.append("      椤圭洰缂栧彿 : ") ;
+        sb.append(projectNo == null?"鏈煡":projectNo) ;
+        sb.append("\n") ;
+        sb.append("      鍛戒护缁撴灉 : ") ;
+        sb.append(success == null?"鏈煡":(success?"鎴愬姛":"澶辫触")) ;
+        sb.append("\n") ;
+
+        return sb.toString() ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/singleDataSource/DruidDataSourceConfig.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/singleDataSource/DruidDataSourceConfig.java
new file mode 100644
index 0000000..962fe3e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/singleDataSource/DruidDataSourceConfig.java
@@ -0,0 +1,28 @@
+package com.dy.common.singleDataSource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+import java.sql.SQLException;
+
+@Configuration
+public class DruidDataSourceConfig {
+
+    //缂栧啓鏂规硶,娉ㄥ叆DruidDataSource
+    //杩樻湁璇存槑涓�涓嬩负浠�涔堟垜浠敞鍏ヨ嚜宸辩殑DataSource , 榛樿鐨凥iKariDatasource澶辨晥?
+    //1. 榛樿鐨勬暟鎹簮 濡傞厤缃�? @ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
+    //  瑙h閫氳繃@ConditionalOnMissingBean({ DataSource.class}) 鍒ゆ柇濡傛灉瀹瑰櫒鏈塂ataSource Bean 灏变笉娉ㄥ叆榛樿鐨凥iKariDatasource
+    @ConfigurationProperties("spring.datasource")
+    @Bean
+    public DataSource dataSource() throws SQLException {
+        //1. 閰嶇疆浜� @ConfigurationProperties("spring.datasource")
+        //   灏卞彲浠ヨ鍙栧埌application.yml鐨勯厤缃�
+        //2. 鎴戜滑灏变笉闇�瑕佽皟鐢―ruidDataSource 瀵硅薄鐨剆etXxx, 浼氳嚜鍔ㄥ叧鑱�
+
+        DruidDataSource druidDataSource = new DruidDataSource();
+        return druidDataSource;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/springUtil/RestTemplateConfiguration.java
similarity index 68%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/springUtil/RestTemplateConfiguration.java
index d61098d..a167f77 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/aop/SsoRestTemplateConfiguration.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/springUtil/RestTemplateConfiguration.java
@@ -1,14 +1,14 @@
-package com.dy.common.aop;
+package com.dy.common.springUtil;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.client.RestTemplate;
 
 /**
- * 涓篠soAspect璁块棶鍗曠偣鐧诲綍绯荤粺鎻愪緵 RestTemplate
+ * 鎻愪緵 RestTemplate
  */
 @Configuration
-public class SsoRestTemplateConfiguration {
+public class RestTemplateConfiguration {
 
     @Bean
     public RestTemplate restTemplate(){
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtilUnsigned.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtilUnsigned.java
index eda37b9..f66c2ad 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtilUnsigned.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/ByteUtilUnsigned.java
@@ -1,6 +1,5 @@
 package com.dy.common.util;
 
-@SuppressWarnings("unuseed")
 public class ByteUtilUnsigned {
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
@@ -36,7 +35,7 @@
 			throw new Exception("int2Bytes鏃舵暟缁勮秺鐣�");
 		}
 	}
-	
+
 
 	/**
 	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
@@ -167,6 +166,90 @@
 			throw new Exception("byte2Int鏃舵暟缁勮秺鐣�");
 		}
 	}
+
+
+	/**
+	 * 灏忕妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍浣庡瓧鑺傘��
+	 * 涓庢柟娉昩ytes2Int绠楁硶涓�鏍凤紝鍙槸鎶婇『搴忓弽杩囨潵
+	 * @param bs
+	 * @return
+	 */
+	public static long bytes2Long_LE(byte[] bs, int startIndex, int endIndex) throws Exception {
+		boolean b = isOutOfArrLength(bs.length, endIndex);
+		if (!b) {
+			byte count = 0 ;
+			long s = 0;
+			long temp = 0 ;
+			for(int i = startIndex ; i <= endIndex; i++){
+				temp =  bs[i] & 0xFF ;// 鏁版嵁鐨勬渶浣庝綅鍦ㄤ綆瀛楄妭
+				if(temp < 0){
+					temp = Byte.MAX_VALUE * 2 + 1 + temp + 1 ;
+				}
+				if(count > 0){
+					temp <<= count * 8;
+				}
+				count++ ;
+				s = s | temp ;
+			}
+			return s;
+		} else {
+			throw new Exception("bytes2Long_LE鏃舵暟缁勮秺鐣�");
+		}
+	}
+	/**
+	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
+	 * 鏃犵鍙穝hort绫诲瀷杞崲鎴�2浣峛yte鏁扮粍
+	 * java娌℃湁鏃犵鍙风煭鏁村瀷鏁版嵁锛屽彧鏈夋湁绗﹀彿鐭暣鏁帮紝鍙栧�艰寖鍥存槸-32768~32767
+	 * 鑻ユā鎷熸棤绗﹀彿鐭暣鍨嬫暟鎹紝鍙栧�艰寖鍥存槸0鍒�65535 锛屽凡缁忚秴鍑轰簡java鐨勬湁绗﹀彿鏁存暟涓婇檺锛屾墍浠ュ彧鑳界敤java鐨処nt鍨嬭〃绀烘棤绗﹀彿鏁存暟
+	 * @value bs byte[]
+	 */
+	public static long bytes2Long_BE(byte[] bs, int startIndex, int endIndex) throws Exception {
+		boolean b = isOutOfArrLength(bs.length, endIndex);
+		if (!b) {
+			int count = endIndex - startIndex  ;
+			long s = 0;
+			long temp = 0 ;
+			for(int i = startIndex ; i <= endIndex ; i++){
+				temp =  bs[i] & 0xFF ;// 鏁版嵁鐨勬渶浣庝綅鍦ㄤ綆瀛楄妭
+				if(temp < 0){
+					temp = Byte.MAX_VALUE * 2 + 1 + temp + 1 ;
+				}
+				if(count > 0){
+					temp <<= count * 8;
+				}
+				count-- ;
+				s = s | temp ;
+			}
+			return s;
+		} else {
+			throw new Exception("bytes2Long_LE鏃舵暟缁勮秺鐣�");
+		}
+	}
+
+//	public static long bytes2Int_BE(byte[] bs, int from) throws Exception {
+//		boolean b = isOutOfArrLength(bs.length, (from - 1) + 4);
+//		if (!b) {
+//			long s = 0;
+//			long s0 = bs[from + 0] & 0xFF ;// 鏁版嵁鐨勬渶楂樹綅鍦ㄤ綆瀛楄妭
+//			long s1 = bs[from + 1] & 0xFF ;
+//			long s2 = bs[from + 2] & 0xFF ;
+//			long s3 = bs[from + 3] & 0xFF ;
+//
+//			// 鏈�浣庝綅S3涓嶅彉
+//			s0 <<= 24;
+//			s1 <<= 16;
+//			s2 <<= 8;
+//			s = s0 | s1 | s2 | s3;
+//			if(s < 0){
+//				//s = Integer.MAX_VALUE -s ;
+//				s = Integer.MAX_VALUE * 2 + 1 + s + 1 ;
+//			}
+//			return s;
+//		} else {
+//			throw new Exception("byte2Int鏃舵暟缁勮秺鐣�");
+//		}
+//	}
+
 	/**
 	 * 澶х妯″紡銆婃暟鎹綆浣嶅湪鏁扮粍楂樺瓧鑺傘��
 	 * 鏃犵鍙穝hort绫诲瀷杞崲鎴�2浣峛yte鏁扮粍
@@ -280,7 +363,7 @@
 			throw new Exception("bytes2Short鏃舵暟缁勮秺鐣�");
 		}
 	}
-	
+
 
 	/**
 	 * 1浣嶅瓧鑺傛暟缁勮浆鎹负鐭暣鍨�
@@ -292,7 +375,7 @@
 		if (bs.length - 1 < index) {
 			throw new Exception("byte2Short(byte[] bs, int index)鏃舵暟缁勮秺鐣�");
 		} else {
-			byte bv = (byte)(bs[index] & 0xff) ; 
+			byte bv = (byte)(bs[index] & 0xff) ;
 			short s = 0 ;
 			if(bv < 0){
 				s = (short)(Byte.MAX_VALUE * 2 + 1 + bv + 1) ;
@@ -322,7 +405,7 @@
 			bs[index] = Integer.valueOf(value & 0xff).byteValue() ;
 		}
 	}
-	
+
 	/**
 	 * 鍒ゆ柇鎵�鏈夊瓧鑺傛槸鍚︿负0xFF
 	 * @param bs  瀛楄妭鏁扮粍
@@ -343,7 +426,7 @@
 
 	/**
 	 * 鍒ゆ柇鏁扮粍涓嬫爣鏄惁瓒婄晫
-	 * 
+	 *
 	 * @value bsLength 鏁扮粍鎬婚暱搴�
 	 * @value toSite 鏁扮粍鍋忕Щ閲�
 	 * @return 缁撴灉
@@ -355,27 +438,34 @@
 			return true;
 		}
 	}
-
-	/*
 	public static void main(String[] args) throws Exception{
-//		int d = 123456; 
-//		byte[] bs = new byte[4] ;
-//		int2Bytes_BE(bs, d, 0) ;
-//		System.out.println(ByteUtil.bytes2Hex(bs, false));
-//		long dd = bytes2Int_BE(bs, 0) ;
-//		System.out.println(dd);
-//		
-//		byte[] bb = new byte[1] ;
-//		bb[0] = (byte)255 ;
-//		short s = byte2Byte(bb, 0);
-//		System.out.println(s);
-		
-		byte[] bs = new byte[]{(byte)0x00, (byte)0x00, (byte)0x3A, (byte)0x88} ;
-		//byte[] bs = new byte[]{(byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff} ;
-		boolean flag = ByteUtilUnsigned.bytesIsAll0xFF(bs, 0, 4) ;
-		System.out.println(flag);
-		Long s = ByteUtilUnsigned.bytes2Int_BE(bs, 0);
-		System.out.println(s);
+		byte[] bs = new byte[]{(byte)0x38,(byte)0x1d,(byte)0x00,(byte)0x00,(byte)0x00} ;
+		Long lg1 = ByteUtilUnsigned.bytes2Long_LE(bs, 0, 4) ;
+		Long lg2 = ByteUtilUnsigned.bytes2Long_BE(bs, 0, 4) ;
+		System.out.println(lg1);
+		System.out.println(lg2);
 	}
-	*/
+
+//	public static void main(String[] args) throws Exception{
+////		int d = 123456;
+////		byte[] bs = new byte[4] ;
+////		int2Bytes_BE(bs, d, 0) ;
+////		System.out.println(ByteUtil.bytes2Hex(bs, false));
+////		long dd = bytes2Int_BE(bs, 0) ;
+////		System.out.println(dd);
+////
+////		byte[] bb = new byte[1] ;
+////		bb[0] = (byte)255 ;
+////		short s = byte2Byte(bb, 0);
+////		System.out.println(s);
+//
+//		byte[] bs = new byte[]{(byte)0x00, (byte)0x00, (byte)0x3A, (byte)0x88} ;
+//		//byte[] bs = new byte[]{(byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff} ;
+//		boolean flag = ByteUtilUnsigned.bytesIsAll0xFF(bs, 0, 4) ;
+//		System.out.println(flag);
+//		Long s = ByteUtilUnsigned.bytes2Int_BE(bs, 0);
+//		System.out.println(s);
+//
+//
+//	}
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
new file mode 100644
index 0000000..f73a9f3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
@@ -0,0 +1,58 @@
+package com.dy.pipIrrGlobal.daoIr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/14  15:04
+ * @LastEditTime :2024/5/14  15:04
+ * @Description
+ */
+@Mapper
+public interface IrProjectMapper extends BaseMapper<IrProject> {
+//澧�
+    int insertSelective(IrProject record);
+//鍒�
+    int deleteLogicById(Long id);
+//鏀�
+    int updateByPrimaryKeySelective(IrProject record);
+//鏌ヤ竴涓�
+    IrProject selectById(Long id);
+
+    /**
+     * 淇敼椤圭洰鐘舵��
+     * @return
+     */
+    int updateProjectState(IrProject record);
+
+    /**
+     * 鏍规嵁涓嬬骇Id鑾峰彇涓婁竴绾у湴鍧�Id
+     * @param vaId 涓嬩竴绾d
+     * @return
+     */
+    Long getSupperByVillageId(long vaId);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�
+     * @param params
+     * @return
+     */
+    List<VoProject> getProjects(Map<?, ?> params);
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java
index 4d1b995..27cb1d3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerTrampMapper.java
@@ -6,6 +6,7 @@
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author liurunyu
@@ -77,4 +78,17 @@
      * @return
      */
     PrControllerTramp getTrampControllerInfo(@Param("controllerId") Long controllerId);
+
+    /**
+     * 鏉′欢鏌ヨ娴佹氮鎺у埗鍣ㄤ俊鎭�
+     * @param
+     * @return
+     */
+    List<PrControllerTramp> getTrampControllers(Map<?, ?> params);
+    /**
+     * 鏉′欢鏌ヨ娴佹氮鎺у埗鍣ㄦ暟閲�
+     * @param
+     * @return  recordCount
+     */
+    Long getTrampControllersCount(Map<?, ?> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java
index bf71fdc..09e26e5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java
@@ -52,4 +52,11 @@
      * @return 鍙栨按鍙d笌鎺у埗鍣ㄧ粦瀹氬垪琛�
      */
     List<Map<String, Object>> getBindsByControllerId(@Param("controllerId") Long controllerId);
+
+    /**
+     * 淇敼缁戝畾璁板綍閫氳繃鍙栨按鍙�
+     * @param record
+     * @return
+     */
+    int updateByIntakeSelective(PrIntakeController record);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrProject.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrProject.java
new file mode 100644
index 0000000..b6e9ae6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrProject.java
@@ -0,0 +1,111 @@
+package com.dy.pipIrrGlobal.pojoIr;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/14  13:53
+ * @LastEditTime :2024/5/14  13:53
+ * @Description
+ */
+
+/**
+ * 椤圭洰琛�
+ */
+
+@TableName(value="ir_project", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "椤圭洰瀹炰綋")
+public class IrProject implements BaseEntity {
+    public static final long serialVersionUID = 202405141427001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+     * 椤圭洰鍚嶇О
+     */
+    @Schema(description = "椤圭洰鍚嶇О", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "椤圭洰鍚嶇О涓嶈兘涓虹┖")
+    @Length(message = "椤圭洰鍚嶇О涓嶅ぇ浜巤max}瀛�",max = 50)
+    private String projectName;
+
+    /**
+     * 鐪両D
+     */
+    @Schema(description = "鐪両D", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long provinceId;
+    /**
+     * 甯侷D
+     */
+    @Schema(description = "甯侷D", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long cityId;
+    /**
+     * 鍘縄D
+     */
+    @Schema(description = "鍘縄D", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long countyId;
+    /**
+     * 闀嘔D
+     */
+    @Schema(description = "闀嘔D", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long townId;
+    /**
+     * 鏉慖D
+     */
+    @Schema(description = "鏉慖D", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Long villageId;
+
+
+
+    /**
+     * 椤圭洰鐘舵��;1-鍚姩锛�2-鍋滄
+     */
+    @Schema(description = "椤圭洰鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte projectState;
+
+    /**
+     * 鎿嶄綔浜篒D
+     */
+    @Schema(description = "鎿嶄綔浜篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operateDt;
+
+    /**
+     * 澶囨敞
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String remarks;
+
+    /**
+     * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎
+     */
+    @Schema(description = "鍒犻櫎鏍囪瘑", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte deleted;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
index 02e942e..b133303 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrControllerTramp.java
@@ -61,7 +61,7 @@
      * 鍙戠幇鏃堕棿
      */
     @Schema(description = "鍙戠幇鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "鍙戠幇鏃堕棿涓嶈兘涓虹┖")
+//    @NotNull(message = "鍙戠幇鏃堕棿涓嶈兘涓虹┖")
     public Date findDt;//鍙戠幇鏃堕棿锛� yyyy-mm-dd HH:MM:SS锛�
 
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
index c88ed99..1a63f59 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrDivide.java
@@ -61,7 +61,7 @@
      */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
+//    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
     private Long villageid;
 
     /**
@@ -84,7 +84,7 @@
      * 瑕嗙洊鏉�
      */
     @Schema(description = "瑕嗙洊鏉�", requiredMode = Schema.RequiredMode.REQUIRED)
-    @Length(message = "瑕嗙洊鏉戜笉澶т簬{max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 100)
+    @Length(message = "瑕嗙洊鏉戜笉澶т簬{max}瀛�", max = 100)
     private String villages;
 
     /**
@@ -104,7 +104,7 @@
      */
     @Schema(description = "鑱旂郴鐢佃瘽", requiredMode = Schema.RequiredMode.REQUIRED)
     //@NotBlank(message = "鑱旂郴鐢佃瘽涓嶈兘涓虹┖")
-    @Length(message = "鍐滆仈绯荤數璇濆繀椤粄max}浣嶆暟鎹�", min = 11, max = 11)
+    @Length(message = "鍐滆仈绯荤數璇濆繀椤粄max}浣嶆暟鎹�",  max = 11)
     private String phone;
 
     /**
@@ -125,7 +125,7 @@
      * 澶囨敞淇℃伅
      */
     @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛�", max = 200)
     private String remarks;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java
new file mode 100644
index 0000000..fad1580
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15  21:02
+ * @LastEditTime :2024/5/15  21:02
+ * @Description
+ */
+@Data
+@Schema(title = "椤圭洰瑙嗗浘瀵硅薄")
+public class VoProject  implements BaseEntity {
+    @Schema(title = "椤圭洰ID")
+    @ExcelProperty("椤圭洰ID")
+    @ColumnWidth(15)
+    private String projectId;
+
+
+    @Schema(title = "椤圭洰鍚嶇О")
+    @ExcelProperty("椤圭洰鍚嶇О")
+    @ColumnWidth(15)
+    private String projectName;
+
+
+    @Schema(title = "椤圭洰鐘舵��")
+    @ExcelProperty("椤圭洰鐘舵��")
+    @ColumnWidth(2)
+    private String projectState;
+
+
+    @Schema(title = "椤圭洰鍦板潃")
+    @ExcelProperty("椤圭洰鍦板潃")
+    @ColumnWidth(25)
+    private String address;
+
+
+    @Schema(title = "椤圭洰澶囨敞")
+    @ExcelProperty("椤圭洰澶囨敞")
+    @ColumnWidth(250)
+    private String remarks;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoIntake.java
index d6d1963..c8b7ece 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoIntake.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoIntake.java
@@ -88,4 +88,14 @@
     @ExcelProperty("澶囨敞")
     @ColumnWidth(250)
     private String remarks;
+
+    @Schema(title = "鎺у埗鍣↖D")
+    @ExcelProperty("鎺у埗鍣↖D")
+    @ColumnWidth(15)
+    private String controllerId;
+
+    @Schema(title = "鎺у埗鍣ㄥ湴鍧�")
+    @ExcelProperty("鎺у埗鍣ㄥ湴鍧�")
+    @ColumnWidth(15)
+    private String rtuAddr;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index f0ec3ac..5c588fd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -74,8 +74,7 @@
     global:
         dev: true   #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
-    accMw:
-        commandCallback:  http://127.0.0.1:8079/remote/rtu/comCallback
+    mw:
         webPort: 8070
         actutorPort: 9070
         idSuffix: 0
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
new file mode 100644
index 0000000..d451fd2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.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.dy.pipIrrGlobal.daoIr.IrProjectMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrProject">
+        <!--@mbg.generated-->
+        <!--@Table ir_project-->
+        <id column="id" jdbcType="BIGINT" property="id" />
+        <result column="project_name" jdbcType="VARCHAR" property="projectName" />
+        <result column="province_id" jdbcType="BIGINT" property="provinceId" />
+        <result column="city_id" jdbcType="BIGINT" property="cityId" />
+        <result column="county_id" jdbcType="BIGINT" property="countyId" />
+        <result column="town_id" jdbcType="BIGINT" property="townId" />
+        <result column="village_id" jdbcType="BIGINT" property="villageId" />
+        <result column="project_state" jdbcType="TINYINT" property="projectState" />
+        <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+        <result column="operator" jdbcType="BIGINT" property="operator" />
+        <result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" />
+        <result column="deleted" jdbcType="TINYINT" property="deleted" />
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, project_name, province_id, city_id, county_id, town_id, `village_id`, project_state, remarks, `operator`,
+        operate_time, deleted
+    </sql>
+    <!--娣诲姞-->
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
+        <!--@mbg.generated-->
+        insert into ir_project
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="projectName != null">
+                project_name,
+            </if>
+            <if test="provinceId != null">
+                province_id,
+            </if>
+            <if test="cityId != null">
+                city_id,
+            </if>
+            <if test="countyId != null">
+                county_id,
+            </if>
+            <if test="townId != null">
+                town_id,
+            </if>
+            <if test="villageId != null">
+                village_id,
+            </if>
+            <if test="projectState != null">
+                project_state,
+            </if>
+            <if test="remarks != null">
+                remarks,
+            </if>
+            <if test="operator != null">
+                `operator`,
+            </if>
+            <if test="operateDt != null">
+                operate_time,
+            </if>
+            <if test="deleted != null">
+                deleted,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="projectName != null">
+                #{projectName,jdbcType=VARCHAR},
+            </if>
+            <if test="provinceId != null">
+                #{provinceId,jdbcType=BIGINT},
+            </if>
+            <if test="cityId != null">
+                #{cityId,jdbcType=BIGINT},
+            </if>
+            <if test="countyId != null">
+                #{countyId,jdbcType=BIGINT},
+            </if>
+            <if test="townId != null">
+                #{townId,jdbcType=BIGINT},
+            </if>
+            <if test="villageId != null">
+                #{villageId,jdbcType=BIGINT},
+            </if>
+            <if test="projectState != null">
+                #{projectState,jdbcType=TINYINT},
+            </if>
+            <if test="remarks != null">
+                #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                #{deleted,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+
+    <!--鏍规嵁涓嬬骇鑾峰彇涓婁竴绾у湴鍧�-->
+    <select id="getSupperByVillageId" parameterType="_long" resultType="java.lang.Long">
+        select dis_tow.*
+        from ba_district dis_vil
+        inner join
+        ba_district dis_tow
+        on dis_vil.supperId = dis_tow.id
+        where dis_vil.id = #{vaId,jdbcType=BIGINT}
+    </select>
+    <!--閫昏緫鍒犻櫎-->
+    <delete id="deleteLogicById" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        update ir_project
+        set deleted = 1
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <!--淇敼淇℃伅-->
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
+        update ir_project
+        <set>
+            <if test="projectName != null">
+                project_name = #{projectName,jdbcType=VARCHAR},
+            </if>
+            <if test="provinceId != null">
+                province_id = #{provinceId,jdbcType=BIGINT},
+            </if>
+            <if test="cityId != null">
+                city_id = #{cityId,jdbcType=BIGINT},
+            </if>
+            <if test="countyId != null">
+                county_id = #{countyId,jdbcType=BIGINT},
+            </if>
+            <if test="townId != null">
+                town_id = #{townId,jdbcType=BIGINT},
+            </if>
+            <if test="villageId != null">
+                village_id = #{villageId,jdbcType=BIGINT},
+            </if>
+            <if test="projectState != null">
+                project_state = #{projectState,jdbcType=TINYINT},
+            </if>
+            <if test="remarks != null">
+                remarks = #{remarks,jdbcType=VARCHAR},
+            </if>
+            <if test="operator != null">
+                operator = #{operator,jdbcType=BIGINT},
+            </if>
+            <if test="operateDt != null">
+                operate_time = #{operateDt,jdbcType=TIMESTAMP},
+            </if>
+            <if test="deleted != null">
+                deleted = #{deleted,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <!--淇敼鐘舵��-->
+    <update id="updateProjectState">
+        update ir_project
+        set project_state = #{projectState,jdbcType=TINYINT},
+            operator = #{operator,jdbcType=BIGINT},
+            operate_time = #{operateDt,jdbcType=TIMESTAMP}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <!--鏌ヨ涓�涓俊鎭�-->
+    <select id="selectById" resultMap="BaseResultMap">
+        select     <include refid="Base_Column_List" /> from ir_project where id = #{id,jdbcType=BIGINT} and deleted = 0
+    </select>
+    <!--鍒嗛〉鏌ヨ鏁伴噺-->
+    <select id="getRecordCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM ir_project pro
+        <where>
+            pro.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+            <if test = "projectState != null and projectState != ''">
+                AND pro.project_state = #{projectState}
+            </if>
+        </where>
+    </select>
+    <!--鍒嗛〉鏌ヨ鏁版嵁-->
+    <select id="getProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProject">
+        SELECT
+        CAST(pro.id AS char)AS projectId,
+        pro.project_name  AS  projectName,
+        pro.project_state  AS  projectState,
+        CONCAT(province.`name`,city.`name`,country.`name`, town.`name`, village.`name`) AS address,
+        pro.remarks
+        FROM ir_project pro
+        LEFT JOIN ba_district province ON pro.province_id = province.id
+        LEFT JOIN ba_district city ON pro.city_id = city.id
+        LEFT JOIN ba_district country ON pro.county_id = country.id
+        LEFT JOIN ba_district town ON pro.town_id = town.id
+        LEFT JOIN ba_district village ON pro.village_id = village.id
+        <where>
+            pro.deleted = 0
+            <if test="projectName != null and projectName != ''">
+                AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+            </if>
+            <if test = "projectState != null and projectState != ''">
+                AND pro.project_state = #{projectState}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
index d9edbe5..1c5ffbd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -247,7 +247,7 @@
     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId}
   </select>
 
-  <!--鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栧凡缁戝畾璁板綍鏁�-->
+  <!--鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙疯幏鍙栧凡缁戝畾璁板綍鏁�-->
   <select id="getBindedCount" resultType="java.lang.Integer">
     SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL
   </select>
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml
index 3753a1b..877c01d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerTrampMapper.xml
@@ -15,7 +15,7 @@
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
-    select 
+    select
     <include refid="Base_Column_List" />
     from pr_controller_tramp
     where id = #{id,jdbcType=BIGINT}
@@ -36,7 +36,7 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrControllerTramp">
     <!--@mbg.generated-->
-    insert into pr_controller_tramp (id, rtuAddr, protocol, 
+    insert into pr_controller_tramp (id, rtuAddr, protocol,
       findDt)
     values (#{id,jdbcType=BIGINT}, #{rtuAddr,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR},
       #{findDt,jdbcType=TIMESTAMP})
@@ -107,4 +107,43 @@
   <select id="getTrampControllerInfo" resultMap="BaseResultMap">
     SELECT rtuAddr, protocol, findDt FROM pr_controller_tramp WHERE id = ${controllerId}
   </select>
+
+    <!--    鏍规嵁鏉′欢鑾峰彇娴佹氮鎺у埗鍣ㄤ俊鎭�-->
+    <select id="getTrampControllers" resultMap="BaseResultMap">
+        select CAST(id AS char)AS id,
+        rtuAddr,
+        protocol,
+        findDt
+        FROM pr_controller_tramp
+        <where>
+            <if test="id != null and id !=''">
+                id = #{id,jdbcType=VARCHAR}
+            </if>
+            <if test="rtuAddr != null and rtuAddr != ''">
+                AND   rtuAddr = #{rtuAddr,jdbcType=VARCHAR}
+            </if>
+            <if test="protocol != null and protocol != ''">
+                AND  protocol = #{protocol,jdbcType=VARCHAR}
+            </if>
+
+        </where>
+    </select>
+    <!--    鏍规嵁鏉′欢鑾峰彇娴佹氮鎺у埗鍣ㄦ暟閲�-->
+    <select id="getTrampControllersCount" resultType="java.lang.Long">
+        select
+        COUNT(*) AS recordCount
+        FROM pr_controller_tramp
+        <where>
+            <if test="id != null and id !=''">
+                  id = #{id,jdbcType=VARCHAR}
+            </if>
+            <if test="rtuAddr != null and rtuAddr != ''">
+                AND   rtuAddr = #{rtuAddr,jdbcType=VARCHAR}
+            </if>
+            <if test="protocol != null and protocol != ''">
+                AND  protocol = #{protocol,jdbcType=VARCHAR}
+            </if>
+
+        </where>
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
index f50103b..8f5ca51 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrDivideMapper.xml
@@ -239,9 +239,9 @@
         COUNT(*) AS recordCount
     FROM pr_divide divi
         INNER JOIN ba_block blo ON divi.blockId = blo.id
-        INNER JOIN ba_district country ON divi.countyId = country.id
-        INNER JOIN ba_district town ON divi.townId = town.id
-        INNER JOIN ba_district village ON divi.villageid = village.id
+        Left JOIN ba_district country ON divi.countyId = country.id
+        Left JOIN ba_district town ON divi.townId = town.id
+        Left JOIN ba_district village ON divi.villageid = village.id
         , (SELECT @i:=0) AS itable
     <where>
        divi. deleted = 0
@@ -275,16 +275,15 @@
       divi.operateDt
     FROM pr_divide divi
         INNER JOIN ba_block blo ON divi.blockId = blo.id
-        INNER JOIN ba_district country ON divi.countyId = country.id
-        INNER JOIN ba_district town ON divi.townId = town.id
-        INNER JOIN ba_district village ON divi.villageid = village.id
+        Left JOIN ba_district country ON divi.countyId = country.id
+        Left JOIN ba_district town ON divi.townId = town.id
+        Left JOIN ba_district village ON divi.villageid = village.id
         , (SELECT @i:=0) AS itable
     <where>
        divi. deleted = 0
       <if test = "divideName != null and divideName !=''">
         AND divi.name LIKE CONCAT('%',#{divideName},'%')
       </if>
-
 
       <if test = "blockId != null and blockId !=''">
         AND divi.blockId = #{blockId}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml
index 9e87a44..96d940c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml
@@ -186,4 +186,26 @@
     </if>
     ORDER BY ic.operateDt DESC
   </select>
+  <!--鏍规嵁鍙栨按鍙g紪鍙蜂慨鏀圭粦瀹氳褰曞垪琛�-->
+  <update id="updateByIntakeSelective">
+    update pr_intake_controller
+    <set>
+      <if test="controllerid != null">
+        controllerId = #{controllerid,jdbcType=BIGINT},
+      </if>
+      <if test="operatetype != null">
+        operateType = #{operatetype,jdbcType=TINYINT},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operatedt != null">
+        operateDt = #{operatedt,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where intakeId = #{intakeid,jdbcType=BIGINT}
+  </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 720841c..5a25cea 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -219,6 +219,7 @@
     LEFT JOIN ba_district country ON ge.countyId = country.id
     LEFT JOIN ba_district town ON ge.townId = town.id
     LEFT JOIN ba_district village ON ge.villageId = village.id
+    LEFT JOIN pr_controller cont ON ge.id = cont.intakeId
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
@@ -259,6 +260,8 @@
     divi.`name`                                         AS divideName,
     CAST(blo.id AS char)                                AS blockId,
     blo.`name`                                          AS blockName,
+    CAST(cont.id AS char)                               AS controllerId,
+    cont.rtuAddr                                        AS rtuAddr,
     ge.lng,
     ge.lat,
     ge.remarks,
@@ -275,6 +278,7 @@
     LEFT JOIN ba_district country ON ge.countyId = country.id
     LEFT JOIN ba_district town ON ge.townId = town.id
     LEFT JOIN ba_district village ON ge.villageId = village.id
+    LEFT JOIN pr_controller cont ON ge.id = cont.intakeId
     <where>
       ge.deleted = 0
       AND divi.deleted = 0
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitConfigVo.java
deleted file mode 100644
index 89b0ddd..0000000
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitConfigVo.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.dy.aceMw.server.rtuData;
-
-public class RtuDataUnitConfigVo {
-
-}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
deleted file mode 100644
index 6b3f98c..0000000
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE project>
-<project>
-	<!--
-	id:涓庡搴旂被涓殑闈欐�佹垚鍛樺彉閲弔askId涓�鑷�
-	enable:鏍囪瘑鏈妭鐐规槸鍚︽墽琛岋紝鑻ユ湰鑺傜偣涓嶆墽琛岋紝鍒欑洿鎺ヨ繘鍏ュ叾瀛愯妭鐐�
-	-->
-	<task id="TkReceive" name="鎺ユ敹鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkReceive">
-		<task id="TkRtuData" name="鎺ユ敹RTU鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkRtuData">
-			<task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindP206V1_0_0">
-				<task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞″苟璇嗗埆娴佹氮鎺у埗鍣�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkPreGenObjs">
-					<!-- 澶勭悊娴佹氮鎺у埗鍣� -->
-					<task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" />
-					<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 -->
-					<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
-						<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
-						<task id="TkFindReport" name="璇嗗埆鎺у埗鍣ㄤ笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindReport">
-							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
-							<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
-							<task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
-							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
-							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
-							<task id="TkDealLoss" name="鎺у埗鍣ㄦ紡鎹熺粺璁★紙寰呮柊鍗忚鍑烘潵鍚庝慨鏀瑰疄鐜帮級" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealLoss" />
-						</task>
-						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
-						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse">
-							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" >
-							</task>
-						</task>
-					</task>
-				</task>
-			</task>
-		</task>
-	</task>
-</project>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml
deleted file mode 100644
index f7d1000..0000000
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/Tree_.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE project>
-<project>
-<!--
-id:涓庡搴旂被涓殑闈欐�佹垚鍛樺彉閲弔askId涓�鑷�
-enable:鏍囪瘑鏈妭鐐规槸鍚︽墽琛岋紝鑻ユ湰鑺傜偣涓嶆墽琛岋紝鍒欑洿鎺ヨ繘鍏ュ叾瀛愯妭鐐�
--->
-<task id="TkReceive" name="鎺ユ敹鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkReceive">
-	<task id="TkRtuData" name="鎺ユ敹RTU鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.TkRtuData">
-		<task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindP206V1_0_0">
-			<task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkPreGenObjs">
-				<!-- 璇嗗埆娴佹氮鑰匯TU锛屾暟鎹簱涓病鏈夋垨鏁版嵁搴撳瓨鍦ㄤ絾鏈垎閰嶇疆渚涙按鏈烘瀯 -->
-				<task id="TkDealControllerTramp" name="璇嗗埆娴佹氮鑰匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" />
-				<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealRtuTramp鍚庨潰 -->
-				<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
-					<!-- 璇嗗埆涓诲姩涓婃姤鏁版嵁 -->
-					<task id="TkFindAutoReport" name="璇嗗埆涓诲姩涓婃姤鍙婅Е鍙戜笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindAutoReport">
-						<!-- 妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁 -->
-						<task id="TkCheckAutoReport" name="妫�鏌ユ椂闂寸瓑涓嶆纭殑涓婃姤鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkCheckAutoReport">
-							<!-- 妫�鏌ラ噸澶嶄笂鎶ユ暟鎹� -->
-							<task id="TkCheckRepeatReport" name="妫�鏌ラ噸澶嶄笂鎶ユ暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkCheckRepeatReport">
-								<!-- Mn杩愮淮绯荤粺 -->
-								<task id="TkMnRtuDealAutoReportLastAlarm" name="杩愮淮RTU涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkMnRtuDealAutoReportLastAlarm" />
-								<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkMnRtuDealAutoReportLastData" name="杩愮淮RTU涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkMnRtuDealAutoReportLastData" />
-								<!-- RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkMnRtuDealRealReportLastData" name="杩愮淮RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkMnRtuDealRealReportLastData" />
-								<!-- Org渚涙按鏈烘瀯绯荤粺 -->
-								<task id="TkOrgRtuDealAutoReportLastAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏈�鏂版姤璀�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealAutoReportLastAlarm">
-									<task id="TkOrgRtuDealAutoReportAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鎶ヨ" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealAutoReportAlarm" />
-									<task id="TkOrgRtuDealReportValveOpResult" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤寮�鍏抽榾缁撴灉" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealReportValveOpResult" />
-								</task>
-								<!-- RTU涓诲姩涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkOrgRtuDealDayAmountAlarm" name="渚涙按鏈烘瀯RTU鏃ョ粨绱娴侀噺鎶ヨ" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealDayAmountAlarm" >
-									<task id="TkOrgRtuDeal48HourNoAmount" name="渚涙按鏈烘瀯RTU48灏忔椂鏈敤姘�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDeal48HourNoAmount" >
-										<task id="TkOrgRtuDealAutoReportLastData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealAutoReportLastData">
-											<task id="TkOrgRtuDealAutoReportData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealAutoReportData" />
-											<task id="TkOrgRtuDealCycleData" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鍛ㄦ湡閲囬泦鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealCycleData">
-												<task id="TkOrgRtuDealCycleLongSmallAmountAlarm" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤鍛ㄦ湡閲囬泦鏁版嵁闀挎祦姘村垎鏋�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealCycleLongSmallAmountAlarm" />
-											</task>
-											<task id="TkOrgRtuDealAmountCost" name="渚涙按鏈烘瀯RTU涓诲姩涓婃姤璁$畻鏃ユ按閲忋�佹湀姘撮噺銆佸強姘磋垂" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealAmountCost" >
-												<task id="TkOrgRtuDealPayCost" name="渚涙按鏈烘瀯鐢ㄦ按鎴锋按琛ㄧ數瀛愰挶鍖呮敮浠樻按璐�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealPayCost" />
-											</task>
-										</task>
-									</task>
-								</task>
-								<!-- RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁蹇呴』鍦≧TU涓诲姩涓婃姤鎶ヨ浠诲姟鐨勪笅闈紝浠ュ涓诲姩涓婃姤鏁版嵁涓褰曟槸鍚︽湁鎶ヨ-->
-								<task id="TkOrgRtuDealRealReportLastData" name="渚涙按鏈烘瀯RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏈�鏂版暟鎹�" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealRealReportLastData">
-									<task id="TkOrgRtuDealRealReportData" name="渚涙按鏈烘瀯RTU瀹炴椂锛堣Е鍙戯級涓婃姤鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.autoReport.TkOrgRtuDealRealReportData" />
-								</task>
-							</task>
-						</task>
-					</task>
-					<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
-					<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.TkFindComResponse">
-						<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.comResponse.TkRtuDealCommandResponse" >
-							<task id="TkRtuDealSetParamComResponse" name="RTU鍝嶅簲璁剧疆鍙傛暟鍛戒护鏁版嵁" enable="true" class="com.dy.aceMw.server.rtuData.p206V1_0_0.comResponse.TkRtuDealSetParamComResponse" />
-						</task>
-					</task>
-				</task>
-			</task>
-		</task>
-
-	</task>
-</task>
-</project>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application-database.yml
deleted file mode 100644
index b4dbdab..0000000
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application-database.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-# 鏁版嵁婧愰厤缃�
-spring:
-    #澶氭暟鎹簮闇�瑕侀厤缃�
-    main:
-        allow-bean-definition-overriding: true #璁剧疆涓簍rue鏃讹紝鍚庡畾涔夌殑bean浼氳鐩栦箣鍓嶅畾涔夌殑鐩稿悓鍚嶇О鐨刡ean
-    datasource: #閰嶇疆鏁版嵁婧�
-        #澶氫釜鏁版嵁婧愬悕绉板湪姝ら厤缃紝瑕佹眰涓巗pring銆俤atasource銆俒ym][pj]涓殑涓�鑷�
-        names: ym
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application.yml
deleted file mode 100644
index 002e3ed..0000000
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/application.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-spring:
-    profiles:
-        include: global, database, database-ym
-
-#actutor鐨剋eb绔彛
-management:
-    server:
-        port: ${pipIrr.accMw.actutorPort}
-#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080
-server:
-    port: ${pipIrr.accMw.webPort}
-    servlet:
-        context-path: /accMw #web璁块棶涓婁笅鏂囪矾寰�
-        context-parameters:
-            #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99
-            idSuffix: ${pipIrr.accMw.idSuffix}
-            #ConfigListener涓簲鐢�
-            #configFileNames: config-global.xml,config-demo.xml
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.gitignore
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.gitignore
index 6d0dd52..cbb8325 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.gitignore
@@ -1,6 +1,6 @@
 HELP.md
 target/
-/pipIrr-mw-accept.iml
+/pipIrr-mw-rtu.iml
 !.mvn/wrapper/maven-wrapper.jar
 !**/src/main/**/target/
 !**/src/test/**/target/
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.jar b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.jar
similarity index 100%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.jar
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.properties
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/.mvn/wrapper/maven-wrapper.properties
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw
similarity index 100%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw.cmd b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw.cmd
similarity index 100%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw.cmd
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/mvnw.cmd
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
index acf0fa5..7fd838f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/pom.xml
@@ -10,9 +10,9 @@
     </parent>
 
     <packaging>jar</packaging>
-    <artifactId>pipIrr-mw-accept</artifactId>
+    <artifactId>pipIrr-mw-rtu</artifactId>
     <version>1.0.0</version>
-    <name>pipIrr-mw-accept</name>
+    <name>pipIrr-mw-rtu</name>
     <description>閫氫俊涓棿浠�</description>
 
     <dependencies>
@@ -195,7 +195,7 @@
                             <stripVersion>false</stripVersion>
                             <finalName>${project.artifactId}-${project.version}</finalName>
                             <layout>ZIP</layout>
-                            <mainClass>com.dy.aceMw.PipIrrMwAcceptApplication</mainClass>
+                            <mainClass>com.dy.rtuMw.PipIrrMwAcceptApplication</mainClass>
                             <includes>
                                 <include>
                                     <groupId>com.dy</groupId>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/PipIrrMwRtuApplication.java
similarity index 64%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/PipIrrMwRtuApplication.java
index ac5fdb3..7e89fd0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/PipIrrMwRtuApplication.java
@@ -1,6 +1,5 @@
-package com.dy.aceMw;
+package com.dy.rtuMw;
 
-import com.dy.common.multiDataSource.EnableMultiDataSource;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.CommandLineRunner;
@@ -12,18 +11,22 @@
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
-//@EnableAspectJAutoProxy(exposeProxy=true)//瑙乭ttps://blog.csdn.net/qq_32590703/article/details/109320381
-@EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.aceMw"},
-        excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
-                com.dy.common.apiDoc.SpringApiConfig.class
-        }) })
-//@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.aceMw"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.rtuMw"},
+    excludeFilters = {
+        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+            com.dy.common.apiDoc.SpringApiConfig.class
+        }),
+        @ComponentScan.Filter(type = FilterType.REGEX, pattern = {
+            //浠ヤ笅鍐欐鍒欒〃杈惧紡锛岄渶瑕佸鐩爣绫荤殑瀹屽叏闄愬畾鍚嶅畬鍏ㄥ尮閰嶏紝鍚﹀垯涓嶇敓鏁�
+            "com.dy.common.multiDataSource..*"
+        })
+    }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal"})
-public class PipIrrMwAcceptApplication implements CommandLineRunner {
+public class PipIrrMwRtuApplication implements CommandLineRunner {
 
     public static void main(String[] args) {
-        SpringApplication.run(PipIrrMwAcceptApplication.class, args);
+        SpringApplication.run(PipIrrMwRtuApplication.class, args);
     }
 
     /**
@@ -40,11 +43,11 @@
             e.printStackTrace();
         }
         finally {
-            this.startAceSv() ;
+            this.startMwSv() ;
         }
     }
 
-    private void startAceSv(){
+    private void startMwSv(){
         if(sv != null){
             sv.startServer();
         }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 7e5642a..4a7d391 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -1,13 +1,13 @@
-package com.dy.aceMw;
+package com.dy.rtuMw;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import com.dy.aceMw.server.*;
-import com.dy.aceMw.server.rtuData.RtuDataUnit;
-import com.dy.aceMw.server.rtuData.RtuDataUnitConfigVo;
-import com.dy.aceMw.server.tasks.FromRtuComResultConstantTask;
-import com.dy.aceMw.server.tasks.FromRtuDataConstantTask;
+import com.dy.rtuMw.server.*;
+import com.dy.rtuMw.server.rtuData.RtuDataUnit;
+import com.dy.rtuMw.server.rtuData.RtuDataUnitConfigVo;
+import com.dy.rtuMw.server.tasks.FromRtuComResultConstantTask;
+import com.dy.rtuMw.server.tasks.FromRtuDataConstantTask;
 import com.dy.common.mw.UnitInterface;
 import com.dy.common.mw.channel.rmi.RmiConfigVo;
 import com.dy.common.mw.channel.rmi.RmiUnit;
@@ -19,14 +19,15 @@
 import com.dy.common.mw.protocol.ProtocolUnit;
 import com.dy.common.mw.support.SupportUnit;
 import com.dy.common.mw.support.SupportUnitConfigVo;
-import com.dy.aceMw.server.tasks.ToRtuConstantTask;
-import com.dy.aceMw.resource.ResourceUnit;
-import com.dy.aceMw.resource.ResourceUnitConfigVo;
+import com.dy.rtuMw.server.tasks.ToRtuConstantTask;
+import com.dy.rtuMw.resource.ResourceUnit;
+import com.dy.rtuMw.resource.ResourceUnitConfigVo;
 import com.dy.common.springUtil.SpringContextUtil;
 import com.dy.common.util.ConfigXml;
 import com.dy.common.util.IDLongGenerator;
 
 import org.jdom2.Document;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -38,7 +39,11 @@
 	
 	private String RmiSvUrl ;
 	private String TcpSvUrl ;
-	
+	@Value("${server.port}")
+	private String HttpSvPort ;
+	@Value("${server.servlet.context-path}")
+	private String HttpSvPath ;
+
 	private List<UnitInterface> units = new ArrayList<UnitInterface>() ;
 
 	/*
@@ -52,7 +57,7 @@
  	 */
 	public void startServer(){
 //		try {
-//			URL url = Server.class.getResource("/config/sv.licence");
+//			URL url = Server.class.getResource("/config/this.licence");
 //			if(!new Lnp(null).parese(url.getPath())){
 //				System.out.println("zhzc licence error!") ;   
 //				return ;
@@ -61,22 +66,22 @@
 //			System.out.println("zhzc licence error!") ; 
 //			return ;
 //		}
-		Server sv = new Server();
+		//Server sv = new Server();
 		long start = System.currentTimeMillis() ;
 		try {
-			//ConfigProperties.init(sv.getClass().getResourceAsStream("/config/config.properties"), false);
+			//ConfigProperties.init(this.getClass().getResourceAsStream("/config/config.properties"), false);
 			
-			sv.conf = new ConfigXml() ;
-			sv.doc = sv.conf.createDom(sv.getClass(), "config.xml") ;
+			this.conf = new ConfigXml() ;
+			this.doc = this.conf.createDom(this.getClass(), "config.xml") ;
 			////////////////
 			//鏈嶅姟 閰嶇疆
-			sv.showStartInfo = sv.conf.getSetAttrBoolean(sv.doc, "config.server", "showStartInfo", null, null) ;
+			this.showStartInfo = this.conf.getSetAttrBoolean(this.doc, "config.server", "showStartInfo", null, null) ;
 
-			sv.startUnits() ;
+			this.startUnits() ;
 			
 			String svName ;
             try{
-            	svName = sv.conf.getSetAttrTxt(sv.doc, "config.server", "name", null, false, null) ;
+            	svName = this.conf.getSetAttrTxt(this.doc, "config.server", "name", null, false, null) ;
             }catch(Exception e){
             	svName = "" ;
             }
@@ -84,7 +89,7 @@
             
 			String company ;
             try{
-            	company = sv.conf.getSetAttrTxt(sv.doc, "config.server", "company", null, true, null) ;
+            	company = this.conf.getSetAttrTxt(this.doc, "config.server", "company", null, true, null) ;
             }catch(Exception e){
             	company = "" ;
             }
@@ -95,14 +100,19 @@
             System.out.println("@@@@@@@@@@@@@@@@@@@@@@@   &@@@@@@@@@@@@@@") ;           
             System.out.println("@@@@@@$      $@@@@@@@@@&   O@@@@@@@@@@@#") ;        
             System.out.println("@@@@@@$        @@@@@@@@@     @@@@@@@@@&      " + svName + "RtuMw 1.0.00" ) ;             
-            System.out.println("@@@@@@$        @@@@@@@@@     &@@@@@@@@") ;
-            if(sv.TcpSvUrl != null){
-                System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@       TcpSv " + sv.TcpSvUrl ) ;              
+			if(this.HttpSvPath != null && this.HttpSvPort != null){
+				System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@       HttpSv [ip]:" + this.HttpSvPort + this.HttpSvPath) ;
+			}else{
+				System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;
+			}
+
+			if(this.TcpSvUrl != null){
+                System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@       TcpSv " + this.TcpSvUrl ) ;
             }else{
                 System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;              
             }
-            if(sv.RmiSvUrl != null){
-                System.out.println("@@@@@@$      #@@@@@@@@@$     &@@@@@@@@       RmiSv " + sv.RmiSvUrl ) ;        
+            if(this.RmiSvUrl != null){
+                System.out.println("@@@@@@$      #@@@@@@@@@$     &@@@@@@@@       RmiSv " + this.RmiSvUrl ) ;        
             }else{
                 System.out.println("@@@@@@$      #@@@@@@@@@$     &@@@@@@@@" ) ;        
             }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnit.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnit.java
index 140fbf1..9f440af 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnit.java
@@ -1,10 +1,11 @@
-package com.dy.aceMw.resource;
+package com.dy.rtuMw.resource;
 
 import java.io.File;
 import java.text.DecimalFormat;
 import java.util.Date;
 import java.util.TreeMap;
 
+import com.dy.rtuMw.resource.rtuLog.RtuLogNode;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.context.ApplicationContext;
@@ -12,8 +13,7 @@
 import com.dy.common.mw.UnitAdapterInterface;
 import com.dy.common.mw.UnitInterface;
 import com.dy.common.mw.UnitStartedCallbackInterface;
-import com.dy.aceMw.resource.rtuLog.RtuLogManager;
-import com.dy.aceMw.resource.rtuLog.RtuLogNode;
+import com.dy.rtuMw.resource.rtuLog.RtuLogManager;
 import com.dy.common.util.DateTime;
 
 public class ResourceUnit implements UnitInterface {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitAdapter.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitAdapter.java
similarity index 83%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitAdapter.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitAdapter.java
index 4a7210f..22a07b6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitAdapter.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitAdapter.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.resource;
+package com.dy.rtuMw.resource;
 
 import com.dy.common.mw.UnitAdapterInterface;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitConfigVo.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitConfigVo.java
index 7337f2e..a597aa0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/ResourceUnitConfigVo.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.resource;
+package com.dy.rtuMw.resource;
 
 
 public class ResourceUnitConfigVo {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogManager.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogManager.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogManager.java
index 63287c0..313c8b7b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogManager.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.resource.rtuLog;
+package com.dy.rtuMw.resource.rtuLog;
 
 import java.io.BufferedWriter;
 import java.io.File;
@@ -7,7 +7,7 @@
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 
-import com.dy.aceMw.resource.ResourceUnit;
+import com.dy.rtuMw.resource.ResourceUnit;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogNode.java
similarity index 86%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogNode.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogNode.java
index c83541e..7d210e3 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/rtuLog/RtuLogNode.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/resource/rtuLog/RtuLogNode.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.resource.rtuLog;
+package com.dy.rtuMw.resource.rtuLog;
 
 import com.dy.common.queue.NodeObj;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_CoreUnit.java
similarity index 92%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_CoreUnit.java
index 5a86d56..f63ee7c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_CoreUnit.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 import com.dy.common.mw.core.CoreUnitAdapter;
 import com.dy.common.mw.core.CoreUnitConfigVo;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
similarity index 87%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
index 96caeb4..e31ef8e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ProtocolUnit.java
@@ -1,11 +1,11 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 import com.dy.common.mw.protocol.MidResultAction;
 import com.dy.common.mw.protocol.ProtocolConfigVo;
 import com.dy.common.mw.protocol.ProtocolUnitAdapter;
-import com.dy.aceMw.server.forTcp.MidResultActionError;
-import com.dy.aceMw.server.forTcp.MidResultActionFromRtu;
-import com.dy.aceMw.server.forTcp.MidResultActionToRtu;
+import com.dy.rtuMw.server.forTcp.MidResultActionError;
+import com.dy.rtuMw.server.forTcp.MidResultActionFromRtu;
+import com.dy.rtuMw.server.forTcp.MidResultActionToRtu;
 
 public class AdapterImp_ProtocolUnit implements ProtocolUnitAdapter {
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ResourceUnit.java
similarity index 69%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ResourceUnit.java
index 21b82a7..4ed5c98 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_ResourceUnit.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
-import com.dy.aceMw.resource.ResourceUnitAdapter;
-import com.dy.aceMw.resource.ResourceUnitConfigVo;
+import com.dy.rtuMw.resource.ResourceUnitAdapter;
+import com.dy.rtuMw.resource.ResourceUnitConfigVo;
 
 public class AdapterImp_ResourceUnit implements ResourceUnitAdapter {
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RmiUnit.java
similarity index 85%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RmiUnit.java
index 3fd4fd5..ef18655 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RmiUnit.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
-import com.dy.aceMw.server.forRmi.RmiRequestedCallback;
+import com.dy.rtuMw.server.forRmi.RmiRequestedCallback;
 import com.dy.common.mw.channel.rmi.RmiConfigVo;
 import com.dy.common.mw.channel.rmi.RmiRequestCallback;
 import com.dy.common.mw.channel.rmi.RmiUnitAdapter;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RtuDataUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RtuDataUnit.java
similarity index 65%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RtuDataUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RtuDataUnit.java
index ec4fe82..eb4bc89 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RtuDataUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_RtuDataUnit.java
@@ -1,8 +1,8 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 
-import com.dy.aceMw.server.rtuData.RtuDataUnitAdapter;
-import com.dy.aceMw.server.rtuData.RtuDataUnitConfigVo;
+import com.dy.rtuMw.server.rtuData.RtuDataUnitAdapter;
+import com.dy.rtuMw.server.rtuData.RtuDataUnitConfigVo;
 
 public class AdapterImp_RtuDataUnit implements RtuDataUnitAdapter {
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_SupportUnit.java
similarity index 92%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_SupportUnit.java
index b58ef61..95562ff 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_SupportUnit.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 import com.dy.common.mw.support.SupportUnitAdapter;
 import com.dy.common.mw.support.SupportUnitConfigVo;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_TcpUnit.java
similarity index 90%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_TcpUnit.java
index bffada1..06a8ff4 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/AdapterImp_TcpUnit.java
@@ -1,11 +1,11 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 import com.dy.common.mw.channel.tcp.PrefixedDataAvailableHandle;
 import com.dy.common.mw.channel.tcp.TcpConfigVo;
 import com.dy.common.mw.channel.tcp.TcpIoSessionEventCallback;
 import com.dy.common.mw.channel.tcp.TcpUnitAdapter;
 import com.dy.common.mw.protocol.PrefixedDataAvailableHandleImp;
-import com.dy.aceMw.server.forTcp.TcpIoSessionCallback;
+import com.dy.rtuMw.server.forTcp.TcpIoSessionCallback;
 
 public class AdapterImp_TcpUnit implements TcpUnitAdapter {
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
index 670ef33..83dc7e2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/ServerProperties.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server;
+package com.dy.rtuMw.server;
 
 public class ServerProperties {
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forRmi/RmiRequestedCallback.java
similarity index 93%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forRmi/RmiRequestedCallback.java
index a0eb763..aec3eb2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forRmi/RmiRequestedCallback.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forRmi;
+package com.dy.rtuMw.server.forRmi;
 
 import java.rmi.RemoteException;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionError.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionError.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionError.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionError.java
index a7e192d..99ddf3d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionError.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionError.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
similarity index 90%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
index b3ac066..d672bb7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java
@@ -1,9 +1,9 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
-import com.dy.aceMw.server.rtuData.RtuComResultCache;
-import com.dy.aceMw.server.rtuData.RtuComResultNode;
-import com.dy.aceMw.server.rtuData.RtuDataNode;
-import com.dy.aceMw.server.rtuData.RtuDataCache;
+import com.dy.rtuMw.server.rtuData.RtuComResultCache;
+import com.dy.rtuMw.server.rtuData.RtuComResultNode;
+import com.dy.rtuMw.server.rtuData.RtuDataNode;
+import com.dy.rtuMw.server.rtuData.RtuDataCache;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
index e8d0d3c..8d906fc 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionToRtu.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionToRtu.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.*;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuLogDealer.java
similarity index 85%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuLogDealer.java
index e9c8570..0284ef0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuLogDealer.java
@@ -1,9 +1,9 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.*;
 
-import com.dy.aceMw.resource.ResourceUnit;
-import com.dy.aceMw.resource.rtuLog.RtuLogNode;
+import com.dy.rtuMw.resource.ResourceUnit;
+import com.dy.rtuMw.resource.rtuLog.RtuLogNode;
 
 
 public class RtuLogDealer {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuSessionStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuSessionStatus.java
similarity index 82%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuSessionStatus.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuSessionStatus.java
index e41bde4..31512a0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuSessionStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuSessionStatus.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 public class RtuSessionStatus {
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
similarity index 99%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuStatusDealer.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
index a08b459..30d32b0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuStatusDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/RtuStatusDealer.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
index 7a0cf8b..54d5ecd 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandCache.java
@@ -1,11 +1,11 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 
 import com.dy.common.queue.Node;
 import com.dy.common.queue.Queue;
 import com.dy.common.mw.protocol.MidResultFromRtu;
 import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 
 /**
  * 闈炵嚎绋嬪畨鍏ㄧ殑锛屽彧鑳藉湪鍗曠嚎绋嬩腑杩愯
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandObj.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandObj.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
index 573b6c7..7cd1dc7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpDownCommandObj.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpDownCommandObj.java
@@ -1,11 +1,11 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 import com.dy.common.queue.NodeObj;
 import com.dy.common.mw.protocol.MidResultToRtu;
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 
 public class TcpDownCommandObj implements NodeObj{
 	
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpIoSessionCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpIoSessionCallback.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
index e120d56..5971315 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpIoSessionCallback.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpIoSessionCallback.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -7,7 +7,7 @@
 import com.dy.common.mw.channel.tcp.TcpIoSessionAttrIdIsRtuAddr;
 import com.dy.common.mw.channel.tcp.TcpIoSessionEventCallback;
 import com.dy.common.mw.core.CoreUnit;
-import com.dy.aceMw.server.tasks.RtuUpTask;
+import com.dy.rtuMw.server.tasks.RtuUpTask;
 
 public class TcpIoSessionCallback implements TcpIoSessionEventCallback{
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSession.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
similarity index 91%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSession.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
index 85ba2bb..be169b9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSession.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSession.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import org.apache.mina.core.session.IoSession;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCache.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
index e23c8fd..8d37adf 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCache.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
@@ -10,7 +10,7 @@
 
 import org.apache.mina.core.session.IoSession;
 
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 
 
 public class TcpSessionCache {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCacheBk.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCacheBk.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCacheBk.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCacheBk.java
index a9905a8..775b948 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/TcpSessionCacheBk.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/TcpSessionCacheBk.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.forTcp;
+package com.dy.rtuMw.server.forTcp;
 
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 import org.apache.mina.core.session.IoSession;
 
 import java.net.InetAddress;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/CommandInnerDeaLer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/CommandInnerDeaLer.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
index d39f45f..c6ee776 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/CommandInnerDeaLer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.local;
+package com.dy.rtuMw.server.local;
 
-import com.dy.aceMw.server.local.localProtocol.*;
+import com.dy.rtuMw.server.local.localProtocol.*;
 import com.dy.common.mw.protocol.Command;
 
 /**
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/ReturnCommand.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/ReturnCommand.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
index 59f8fe2..f07c999 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/ReturnCommand.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local;
+package com.dy.rtuMw.server.local;
 
 
 import com.dy.common.mw.protocol.Command;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockDeal.java
similarity index 91%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockDeal.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockDeal.java
index 1a58e04..f443413 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockDeal.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 import com.dy.common.util.DateTime;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockVo.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockVo.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockVo.java
index 872ca25..9d75895 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/ClockVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/ClockVo.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 import java.io.Serializable;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/CodeLocal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
similarity index 84%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/CodeLocal.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
index dd1d981..d3322bc 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 public class CodeLocal {
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
similarity index 64%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineDeal.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
index 3255741..15fe543 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineDeal.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
-import com.dy.aceMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
 
 public class RtuOnLineDeal {
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineVo.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineVo.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineVo.java
index 90728f8..b8ee880 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuOnLineVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuOnLineVo.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 import java.io.Serializable;
 import java.util.HashMap;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolVo.java
similarity index 93%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolVo.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolVo.java
index 482c006..e547ab4 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolVo.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 import java.io.Serializable;
 import java.util.ArrayList;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolsDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolsDeal.java
similarity index 82%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolsDeal.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolsDeal.java
index 54d7c22..67fb4bb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/local/localProtocol/RtuProtocolsDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/RtuProtocolsDeal.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.local.localProtocol;
+package com.dy.rtuMw.server.local.localProtocol;
 
 
 import com.dy.common.mw.protocol.ProtocolCache;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultCache.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultCache.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultCache.java
index 213b689..50e1ae4 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultCache.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 import com.dy.common.queue.Node;
 import com.dy.common.queue.Queue;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultNode.java
similarity index 91%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultNode.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultNode.java
index 1d5db33..be32d17 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuComResultNode.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuComResultNode.java
@@ -1,7 +1,6 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
-import com.dy.aceMw.server.rtuData.dbSv.RtuSv;
-import com.dy.aceMw.web.comResult.CommandResultDeal;
+import com.dy.rtuMw.web.comResult.CommandResultDeal;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.queue.NodeObj;
 import com.dy.common.springUtil.SpringContextUtil;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataCache.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataCache.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataCache.java
index a6de4e1..21b50d0 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataCache.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
-import com.dy.aceMw.server.ServerProperties;
+import com.dy.rtuMw.server.ServerProperties;
 import com.dy.common.queue.Node;
 import com.dy.common.queue.Queue;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataNode.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataNode.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataNode.java
index 09ee99e..bbb3e89 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataNode.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataNode.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import com.dy.common.queue.NodeObj;
 import com.dy.common.threadPool.ThreadPool;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnit.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnit.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnit.java
index 269b85c..068f35d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnit.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnit.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import com.dy.common.mw.UnitAdapterInterface;
 import com.dy.common.mw.UnitInterface;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitAdapter.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitAdapter.java
similarity index 81%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitAdapter.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitAdapter.java
index a9b756f..805d4ab 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/RtuDataUnitAdapter.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitAdapter.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 
 import com.dy.common.mw.UnitAdapterInterface;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitConfigVo.java
new file mode 100644
index 0000000..d015070
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/RtuDataUnitConfigVo.java
@@ -0,0 +1,5 @@
+package com.dy.rtuMw.server.rtuData;
+
+public class RtuDataUnitConfigVo {
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/Task.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/Task.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/Task.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/Task.java
index e460a61..dbae855 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/Task.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/Task.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import java.text.ParseException;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskConfig.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskConfig.java
similarity index 81%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskConfig.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskConfig.java
index b80df4f..6afccbe 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskConfig.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskConfig.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 
 public class TaskConfig {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskPool.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskPool.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
index 69b1dd7..bd4f5ed 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskPool.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskPool.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskSurpport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskSurpport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java
index 2b0a8c7..1cf17b2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskSurpport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TaskSurpport.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkReceive.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java
similarity index 91%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkReceive.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java
index 36a4077..a0d0608 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkReceive.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkReceive.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import com.dy.common.mw.protocol.Data;
 import org.apache.logging.log4j.LogManager;
@@ -21,7 +21,7 @@
 			log.error("涓ラ噸閿欒锛孯TU涓婅鏁版嵁涓虹┖锛�" );
 		}else{
 			if(data instanceof Data){
-				//this.toNextTasks(data);
+				this.toNextTasks(data);
 			}else{
 				log.error("涓ラ噸閿欒锛岃鏁版嵁绫诲瀷锛�" + data.getClass().getName() + "锛夛紝鎺ユ敹鏁版嵁浠诲姟杩樻湭瀹炵幇锛�" );
 			}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkRtuData.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkRtuData.java
index ca9c35c..97f3f12 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TkRtuData.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TkRtuData.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 import com.dy.common.mw.protocol.Data;
 import org.apache.logging.log4j.LogManager;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeConfig.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeConfig.java
similarity index 75%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeConfig.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeConfig.java
index 06bc2cc..a63d67a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeConfig.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeConfig.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 public class TreeConfig {
 	public TaskConfig taskConf ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeParse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeParse.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeParse.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeParse.java
index 1c15098..22017a8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TreeParse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/TreeParse.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.rtuData;
+package com.dy.rtuMw.server.rtuData;
 
 
 import java.net.URL;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
index 07ec929..362c70a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/DbSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/DbSv.java
@@ -1,15 +1,12 @@
-package com.dy.aceMw.server.rtuData.dbSv;
+package com.dy.rtuMw.server.rtuData.dbSv;
 
 import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
-import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
 import com.dy.pipIrrGlobal.daoRm.*;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
-import com.dy.pipIrrGlobal.pojoPr.PrIntake;
 import com.dy.pipIrrGlobal.pojoRm.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -90,6 +87,14 @@
     public void savePrConctrollerTramp(PrControllerTramp po){
         this.prControllerTrampMapperDao.insert(po) ;
     }
+   /**
+     * 淇濆瓨娴佹氮鎺у埗鍣�
+     * @param po
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updatePrConctrollerTramp(PrControllerTramp po){
+        this.prControllerTrampMapperDao.updateByPrimaryKeySelective(po) ;
+    }
 
 
     /////////////////////////////////////////////////
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/RtuSv.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/RtuSv.java
similarity index 91%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/RtuSv.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/RtuSv.java
index 66ee847..cc01684 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/RtuSv.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/RtuSv.java
@@ -1,16 +1,6 @@
-package com.dy.aceMw.server.rtuData.dbSv;
+package com.dy.rtuMw.server.rtuData.dbSv;
 
-import com.dy.common.multiDataSource.DataSourceSingle;
-import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Date;
-
-import com.dy.pipIrrGlobal.test.*;
 
 @Service()
 public class RtuSv {
diff --git "a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/\350\257\264\346\230\216.txt"
similarity index 100%
rename from "pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/dbSv/\350\257\264\346\230\216.txt"
rename to "pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/dbSv/\350\257\264\346\230\216.txt"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
index 9bae384..5d5c027 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAlarmStatus.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataAlarmVo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataStateVo;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
index 200e575..5f897e8 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealAutoReport.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCdC0Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
index 6c259f3..85569fe 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealCloseValveReport.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCd83CloseVo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
index 8457b42..3d324df 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
similarity index 86%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
index 30dfe01..1218314 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealControllerTramp.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
similarity index 97%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
index be21d86..9507f48 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealLoss.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealLoss.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCdC0Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
similarity index 98%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
index 077feb4..9fdeeeb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealOpenValveReport.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCd83OpenVo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
index 58807b9..01aac6f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataCd84Vo;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
index 04ce4fc..840352d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java
similarity index 81%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java
index 91fda1b..4ac1923 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindP206V1_0_0.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
 
@@ -18,7 +18,7 @@
 	public void execute(Object data) {
 		Data d = (Data)data ;
 		if(d.getProtocol() != null && d.getProtocol().equals(ProtocolConstantV206V1_0_0.protocolName)){
-			this.toNextTasks(data);
+			//this.toNextTasks(data);
 		}else{
 			//涓嶆槸鏈崗璁殑鏁版嵁
 		}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
index bd96177..391ebc9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkFindReport.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
similarity index 77%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
index 807efb2..b95b9ef 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkPreGenObjs.java
@@ -1,18 +1,15 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
-import com.dy.aceMw.server.rtuData.dbSv.DbSv;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.springUtil.SpringContextUtil;
-import com.dy.common.util.DateTime;
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
-import java.text.DateFormat;
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Date;
 
 public class TkPreGenObjs extends TaskSurpport {
@@ -35,13 +32,11 @@
 			PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ;
 			PrControllerTramp controllerTramp = null ;
 			if(controller == null){
-				//鏁版嵁搴撲腑鏈煡璇�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)鍒版帶鍒跺櫒锛圧TU瀹炰綋锛�
+				//鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)
 				//娴佹氮鑰呮帶鍒跺櫒
 				controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
 				if(controllerTramp == null){
 					controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
-					//this.taskResult = new Object[]{sv, null, rtuTramp} ;
-					//this.toNextOneTask(data, TkDealControllerTramp.taskId);
 				}
 			}
 			//涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
similarity index 93%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
index 8ae8b9e..8d2a570 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
@@ -1,6 +1,6 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V1_0_0;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
 import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
 import org.apache.logging.log4j.LogManager;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
new file mode 100644
index 0000000..bcf46fc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -0,0 +1,173 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.DataV202404 ;
+import com.dy.common.mw.protocol.p206V202404.upVos.*;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/5/8 14:18
+ */
+public class TkDealAlarmStatusV202404 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealAlarmStatusV202404.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealAlarmStatusV202404" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟锛氭姤璀﹀強鐘舵��
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data)data ;
+        Object protocolData = d.getSubData() ;
+        if(protocolData != null){
+            DataV202404 dV202404 = (DataV202404)protocolData ;
+            if(dV202404 != null){
+                Object cdObj = dV202404.subData ;
+                if(cdObj != null){
+                    try{
+                        Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
+                        DbSv sv = (DbSv)objs[0] ;
+                        PrController controller = (PrController)objs[1] ;
+                        if(cdObj instanceof DataCd81Vo){
+                            //璁惧缁堢闅忔満鑷姤
+                            DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, cdData, null, null) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, cdData, null, null) ;
+                        }else if(cdObj instanceof DataCd80_5BVo){
+                            //璁惧缁堢宸ヤ綔涓婃姤 + 鏌ヨ璁惧缁堢瀹炴椂鍊�
+                            DataCd80_5BVo cdData = (DataCd80_5BVo)(cdObj) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null, null, null) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, null, null, null, null) ;
+                        }else if(cdObj instanceof DataCd93_A3Vo){
+                            //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�   +  鍒峰崱鍏虫车/闃�涓婃姤
+                            DataCd93_A3Vo cdData = (DataCd93_A3Vo)(cdObj) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null, null, null) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), cdData.endDt, null, cdData, null, null, null) ;
+                        }else if(cdObj instanceof DataCd84Vo){
+                            //璁惧缁堢闅忔満鑷姤
+                            DataCd84Vo cdData = (DataCd84Vo)(cdObj) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, null, cdData, null) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, null, cdData, null) ;
+                        }else if(cdObj instanceof DataCdC2Vo){
+                            //璁惧缁堢闅忔満鑷姤
+                            DataCdC2Vo cdData = (DataCdC2Vo)(cdObj) ;
+                            this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), null, null, null, null, null, cdData) ;
+                            this.saveHistory(sv, controller, d.getRtuAddr(), null, null, null, null, null, cdData) ;
+                        }
+                    }catch (Exception e){
+                        log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
+                    }
+                }
+            }
+        }
+    }
+    /**
+     * 淇濆瓨鎶ヨ鐘舵�佹渶鏂版暟鎹�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param rtuDt 鎺у埗鍣ㄦ椂閽�
+     * @param vo80_5B
+     * @param vo93_A3_85
+     * @param vo81
+     */
+    private void saveOrUpdateLast(DbSv sv,
+                                  PrController controller,
+                                  String rtuAddr,
+                                  String rtuDt,
+                                  DataCd80_5BVo vo80_5B,
+                                  DataCd93_A3Vo vo93_A3_85,
+                                  DataCd81Vo vo81,
+                                  DataCd84Vo vo84,
+                                  DataCdC2Vo voC2) throws Exception {
+//        RmAlarmStateLast po = sv.getRmAlarmStateLast(rtuAddr) ;
+//        if(po == null){
+//            po = new RmAlarmStateLast(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+//                    rtuAddr,
+//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+//                    DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+//                    alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
+//                    stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
+//            sv.saveRmAlarmStateLast(po) ;
+//        }else{
+//            po = this.update(controller, po, rtuDt, dV1_0_1, alarmVo, stateVo) ;
+//            sv.updateRmAlarmStateLast(po);
+//        }
+    }
+
+    /**
+     * 淇濆瓨鎶ヨ鐘舵�佸巻鍙茶褰�
+     * @param sv 鏈嶅姟
+     * @param controller 鎺у埗鍣ㄥ璞�
+     * @param rtuAddr 鎺у埗鍣ㄥ湴鍧�
+     * @param rtuDt 鎺у埗鍣ㄦ椂閽�
+     * @param vo80_5B
+     * @param vo93_A3_85
+     * @param vo81
+     */
+    private void saveHistory(DbSv sv,
+                             PrController controller,
+                             String rtuAddr,
+                             String rtuDt,
+                             DataCd80_5BVo vo80_5B,
+                             DataCd93_A3Vo vo93_A3_85,
+                             DataCd81Vo vo81,
+                             DataCd84Vo vo84,
+                             DataCdC2Vo voC2) throws Exception {
+//        RmAlarmStateHistory po = new RmAlarmStateHistory(null, controller==null?null:controller.getId(), controller==null?null:controller.getIntakeId(),
+//                rtuAddr,
+//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt),
+//                DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt),
+//                alarmVo==null?null:alarmVo.batteryVolt, alarmVo==null?null:alarmVo.loss, alarmVo==null?null:alarmVo.meter, alarmVo==null?null:alarmVo.valve,
+//                stateVo==null?null:stateVo.icCard, stateVo==null?null:stateVo.working, stateVo==null?null:stateVo.valve) ;
+//        sv.saveRmAlarmStateHistory(po) ;
+    }
+
+
+    private RmAlarmStateLast update(PrController controller,
+                                    RmAlarmStateLast po,
+                                    String rtuDt,
+                                    DataCd80_5BVo vo80_5B,
+                                    DataCd93_A3Vo vo93_A3_85,
+                                    DataCd81Vo vo81,
+                                    DataCd84Vo vo84,
+                                    DataCdC2Vo voC2) throws Exception {
+//        po.controllerid = controller==null?null:controller.getId() ;
+//        po.intakeid = controller==null?null:controller.getIntakeId() ;
+//
+//        po.dt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(dV1_0_1.dt) ;
+//        po.rtudt = DateTime.dateFrom_yyyy_MM_dd_HH_mm_ss(rtuDt) ;
+//        if(alarmVo != null){
+//            po.bateryvolt = alarmVo.batteryVolt ;
+//            po.loss = alarmVo.loss ;
+//            po.meter = alarmVo.meter ;
+//            po.valve = alarmVo.valve ;
+//        }else{
+//            po.bateryvolt = null ;
+//            po.loss = null ;
+//            po.meter = null ;
+//            po.valve = null ;
+//        }
+//        if(stateVo != null){
+//           po.iccard = stateVo.icCard ;
+//           po.working = stateVo.working ;
+//           po.valvestate = stateVo.valve ;
+//        }else{
+//            po.iccard = null ;
+//            po.working = null ;
+//            po.valvestate = null ;
+//        }
+//        return po ;
+        return null ;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java
similarity index 71%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
copy to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java
index 8457b42..0a0723a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealControllerNoTramp.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerNoTrampV202404.java
@@ -1,22 +1,20 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V202404;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 /**
  * @Author liurunyu
- * @Date 2024/2/22 16:56
- * @LastEditTime 2024/2/22 16:56
- * @Description
+ * @Date 2024/5/8 14:18
  * 澶勭悊闈炴祦娴帶鍒跺櫒,姝や换鍔℃棤鍏蜂綋涓氬姟閫昏緫锛屽彧鏄湪浠诲姟xml閰嶇疆鏂囦欢涓紝妗嗕綇鍏跺瓙浠诲姟鑺傜偣
  */
-public class TkDealControllerNoTramp extends TaskSurpport {
+public class TkDealControllerNoTrampV202404 extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkDealControllerNoTramp.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkDealControllerNoTrampV202404.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkDealControllerNoTramp" ;
+    public static final String taskId = "TkDealControllerNoTrampV202404" ;
 
     /**
      * 鎵ц鑺傜偣浠诲姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java
new file mode 100644
index 0000000..9f6d275
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealControllerTrampV202404.java
@@ -0,0 +1,41 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.util.Date;
+
+/**
+ * @Author liurunyu
+ * @Date 2024/5/8 14:18
+ */
+public class TkDealControllerTrampV202404 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkDealControllerTrampV202404.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkDealControllerTrampV202404" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Object[] objs = this.getTaskResults(TkPreGenObjsV202404.taskId) ;
+        PrControllerTramp tramp = (PrControllerTramp)objs[2] ;
+        if(tramp != null){
+            DbSv sv = (DbSv)objs[0] ;
+            if(tramp.id == null){
+                sv.savePrConctrollerTramp(tramp);
+            }else{
+                tramp.findDt = new Date() ;
+                sv.updatePrConctrollerTramp(tramp) ;
+            }
+
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java
similarity index 67%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
copy to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java
index 04ce4fc..2c050c2 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindComResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindComResponseV202404.java
@@ -1,22 +1,21 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V202404;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 /**
  * @Author liurunyu
- * @Date 2024/4/2 13:44
- * @LastEditTime 2024/4/2 13:44
+ * @Date 2024/5/8 14:18
  * @Description  璇嗗埆鍛戒护鍝嶅簲涓婃姤
  */
-public class TkFindComResponse extends TaskSurpport {
+public class TkFindComResponseV202404 extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkFindComResponse.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkFindComResponseV202404.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkFindComResponse" ;
+    public static final String taskId = "TkFindComResponseV202404" ;
 
     /**
      * 鎵ц鑺傜偣浠诲姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java
new file mode 100644
index 0000000..30f7e28
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindP206V202404.java
@@ -0,0 +1,29 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404 ;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+/**
+ * @Author liurunyu
+ * @Date 2024/5/8 14:18
+ */
+public class TkFindP206V202404 extends TaskSurpport {
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkFindP206V202404" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) {
+        Data d = (Data)data ;
+        if(d.getProtocol() != null && d.getProtocol().equals(ProtocolConstantV206V202404.protocolName)){
+            this.toNextTasks(data);
+        }else{
+            //涓嶆槸鏈崗璁殑鏁版嵁
+        }
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
similarity index 67%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java
copy to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
index bd96177..1f48b01 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkFindReport.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkFindReportV202404.java
@@ -1,26 +1,23 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V202404;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 /**
  * @Author liurunyu
- * @Date 2024/1/15 17:15
- * @LastEditTime 2024/1/15 17:15
- * @Description
+ * @Date 2024/5/8 14:18
  */
-
 /**
  * 璇嗗埆闈炲懡浠ゅ簲绛�
  */
-public class TkFindReport extends TaskSurpport {
+public class TkFindReportV202404 extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkFindReport.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkFindReportV202404.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkFindReport" ;
+    public static final String taskId = "TkFindReportV202404" ;
 
     /**
      * 鎵ц鑺傜偣浠诲姟
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java
new file mode 100644
index 0000000..71869a8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkPreGenObjsV202404.java
@@ -0,0 +1,52 @@
+package com.dy.rtuMw.server.rtuData.p206V202404;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.pojoPr.PrController;
+import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
+import com.dy.rtuMw.server.rtuData.dbSv.DbSv;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import java.text.ParseException;
+import java.util.Date;
+/**
+ * @Author liurunyu
+ * @Date 2024/5/8 14:18
+ */
+public class TkPreGenObjsV202404 extends TaskSurpport {
+
+    private static final Logger log = LogManager.getLogger(TkPreGenObjsV202404.class.getName()) ;
+
+    //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
+    public static final String taskId = "TkPreGenObjsV202404" ;
+
+    /**
+     * 鎵ц鑺傜偣浠诲姟
+     * @param data 闇�瑕佸鐞嗙殑鏁版嵁
+     */
+    @Override
+    public void execute(Object data) throws ParseException {
+        Data d = (Data)data ;
+        String rtuAddr = d.getRtuAddr() ;//TkRtuData閲屽垽鏂簡rtuAddr涓虹┖
+        DbSv sv = (DbSv) SpringContextUtil.getBean(DbSv.class) ;
+        if(sv != null){
+            PrController controller = sv.getControllersByRtuAddrAndIntakeNotNull(rtuAddr) ;
+            PrControllerTramp controllerTramp = null ;
+            if(controller == null){
+                //鏁版嵁搴撲腑鏈煡璇㈠埌鎺у埗鍣紙RTU瀹炰綋锛�(宸茬粡缁戝畾涓旀帶鍒跺櫒鍦板潃鐩哥)
+                //娴佹氮鑰呮帶鍒跺櫒
+                controllerTramp = sv.getPrControllerTrampByRtuAddr(rtuAddr);
+                if(controllerTramp == null){
+                    controllerTramp = new PrControllerTramp(null, rtuAddr, d.getProtocol(), new Date()) ;
+                }
+            }
+            //涓嶈鏄惁涓烘祦娴帶鍒跺櫒锛圧TU瀹炰綋锛夛紝閮借杩涜涓嬫宸ヤ綔锛岃褰曞叾涓婃姤鐨勪竴浜涙暟鎹紝褰撶粦瀹氭帶鍒跺櫒鍚庯紝鏁版嵁鑷姩鏈変簡褰掑睘
+            this.taskResult = new Object[]{sv, controller, controllerTramp} ;
+            this.toNextTasks(data);
+        }else{
+            log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒癉bSv瀵硅薄");
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
similarity index 69%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
copy to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
index 8ae8b9e..10b704d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkRtuDealCommandResponse.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkRtuDealCommandResponseV202404.java
@@ -1,23 +1,22 @@
-package com.dy.aceMw.server.rtuData.p206V1_0_0;
+package com.dy.rtuMw.server.rtuData.p206V202404;
 
-import com.dy.aceMw.server.rtuData.TaskSurpport;
 import com.dy.common.mw.protocol.Data;
-import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
+import com.dy.common.mw.protocol.p206V202404.DataV202404;
+import com.dy.rtuMw.server.rtuData.TaskSurpport;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 /**
  * @Author liurunyu
- * @Date 2024/4/2 13:45
- * @LastEditTime 2024/4/2 13:45
+ * @Date 2024/5/8 14:18
  * @Description 澶勭悊鍛戒护鍝嶅簲涓婃姤
  */
-public class TkRtuDealCommandResponse  extends TaskSurpport {
+public class TkRtuDealCommandResponseV202404 extends TaskSurpport {
 
-    private static final Logger log = LogManager.getLogger(TkRtuDealCommandResponse.class.getName()) ;
+    private static final Logger log = LogManager.getLogger(TkRtuDealCommandResponseV202404.class.getName()) ;
 
     //绫籌D锛屼竴瀹氫笌Tree.xml閰嶇疆鏂囦欢涓厤缃竴鑷�
-    public static final String taskId = "TkRtuDealCommandResponse" ;
+    public static final String taskId = "TkRtuDealCommandResponseV202404" ;
 
     /**
      * 鎵ц鑺傜偣浠诲姟锛氬鐞嗗懡浠ゅ搷搴斾笂鎶�
@@ -25,10 +24,11 @@
      */
     @Override
     public void execute(Object data) {
-        Data d = (Data) data;
-        Object subD = d.getSubData();
-        if (subD != null) {
-            DataV1_0_1 dV1_0_1 = (DataV1_0_1) subD;
+        Data d = (Data)data ;
+        Object protocolData = d.getSubData() ;
+        if(protocolData != null){
+            DataV202404 dV202404 = (DataV202404)protocolData ;
+            if(dV202404 != null) {
 //            if (dV1_0_1 != null && dV1_0_1.dataCdC0Vo != null) {
 //                Object[] objs = this.getTaskResults(TkPreGenObjs.taskId) ;
 //                DbSv sv = (DbSv)objs[0] ;
@@ -40,6 +40,7 @@
 //                    log.error("淇濆瓨鎺у埗鍣ㄨ嚜鎶ユ暟鎹椂鍙戠敓寮傚父", e);
 //                }
 //            }
+            }
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuComResultConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuComResultConstantTask.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
index 9c056ca..bc1c97a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuComResultConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuComResultConstantTask.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.tasks;
+package com.dy.rtuMw.server.tasks;
 
-import com.dy.aceMw.server.rtuData.RtuComResultNode;
-import com.dy.aceMw.server.rtuData.RtuComResultCache;
+import com.dy.rtuMw.server.rtuData.RtuComResultNode;
+import com.dy.rtuMw.server.rtuData.RtuComResultCache;
 import com.dy.common.mw.core.CoreTask;
 import com.dy.common.queue.Node;
 import org.apache.logging.log4j.LogManager;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuDataConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuDataConstantTask.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java
index 9943b46..8be0c64 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/FromRtuDataConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/FromRtuDataConstantTask.java
@@ -1,7 +1,7 @@
-package com.dy.aceMw.server.tasks;
+package com.dy.rtuMw.server.tasks;
 
-import com.dy.aceMw.server.rtuData.RtuDataNode;
-import com.dy.aceMw.server.rtuData.RtuDataCache;
+import com.dy.rtuMw.server.rtuData.RtuDataNode;
+import com.dy.rtuMw.server.rtuData.RtuDataCache;
 import com.dy.common.mw.core.CoreTask;
 import com.dy.common.queue.Node;
 import org.apache.logging.log4j.LogManager;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuDownTask.java
similarity index 92%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuDownTask.java
index 16a4852..e33905f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuDownTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuDownTask.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.tasks;
+package com.dy.rtuMw.server.tasks;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -8,8 +8,8 @@
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.Driver;
 import com.dy.common.mw.protocol.ProtocolCache;
-import com.dy.aceMw.server.ServerProperties;
-import com.dy.aceMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
 
 /**
  * 浠巜eb涓氬姟绯荤粺鍙戝悜RTU鐨勫懡浠や换鍔�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
similarity index 96%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
index 7415685..167f7d7 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/RtuUpTask.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.server.tasks;
+package com.dy.rtuMw.server.tasks;
 
 import java.net.InetSocketAddress;
 
@@ -15,10 +15,10 @@
 import com.dy.common.mw.protocol.OnLine;
 import com.dy.common.mw.protocol.OnLineHandle;
 import com.dy.common.mw.protocol.ProtocolCache;
-import com.dy.aceMw.server.ServerProperties;
-import com.dy.aceMw.server.forTcp.RtuLogDealer;
-import com.dy.aceMw.server.forTcp.RtuStatusDealer;
-import com.dy.aceMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.forTcp.RtuLogDealer;
+import com.dy.rtuMw.server.forTcp.RtuStatusDealer;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
 import com.dy.common.util.ByteUtil;
 
 public class RtuUpTask extends CoreTask {
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
similarity index 95%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
index 3de49a2..d788773 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/tasks/ToRtuConstantTask.java
@@ -1,13 +1,13 @@
-package com.dy.aceMw.server.tasks;
+package com.dy.rtuMw.server.tasks;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 import com.dy.common.queue.Node;
 import com.dy.common.mw.core.CoreTask;
-import com.dy.aceMw.server.forTcp.TcpDownCommandCache;
-import com.dy.aceMw.server.forTcp.TcpDownCommandObj;
-import com.dy.aceMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.forTcp.TcpDownCommandCache;
+import com.dy.rtuMw.server.forTcp.TcpDownCommandObj;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
 
 /**
  * 澶勭悊RTU涓嬭鍛戒护鏁版嵁鐨勬亽涔呬换鍔�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
similarity index 94%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/com/CommandCtrl.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index 9e7ba68..9abfa02 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -1,10 +1,10 @@
-package com.dy.aceMw.web.com;
+package com.dy.rtuMw.web.com;
 
-import com.dy.aceMw.server.ServerProperties;
-import com.dy.aceMw.server.forTcp.TcpSessionCache;
-import com.dy.aceMw.server.local.CommandInnerDeaLer;
-import com.dy.aceMw.server.local.ReturnCommand;
-import com.dy.aceMw.server.tasks.RtuDownTask;
+import com.dy.rtuMw.server.ServerProperties;
+import com.dy.rtuMw.server.forTcp.TcpSessionCache;
+import com.dy.rtuMw.server.local.CommandInnerDeaLer;
+import com.dy.rtuMw.server.local.ReturnCommand;
+import com.dy.rtuMw.server.tasks.RtuDownTask;
 import com.dy.common.mw.core.CoreUnit;
 import com.dy.common.mw.protocol.Command;
 import com.dy.common.mw.protocol.CommandType;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/CommandResultDeal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
similarity index 90%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/CommandResultDeal.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
index a162640..116bdf5 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/CommandResultDeal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/CommandResultDeal.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.web.comResult;
+package com.dy.rtuMw.web.comResult;
 
 import com.dy.common.mw.protocol.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -29,7 +29,7 @@
     }
 
     public void deal(Data data) {
-        if (data.rtuResultSendWebUrl != null && data.rtuResultSendWebUrl.trim().equals("")) {
+        if (data.rtuResultSendWebUrl != null && !data.rtuResultSendWebUrl.trim().equals("")) {
             String url = UriComponentsBuilder.fromUriString(data.rtuResultSendWebUrl)
                     .build()
                     .toUriString();
@@ -42,7 +42,7 @@
             } catch (Exception e) {
                 e.printStackTrace();
             }
-            assert response != null;
+            //assert response != null;
         } else {
             log.error("涓ラ噸閿欒锛屽湪com.dy.aceMw.web.comResult.CommandResultDeal閲岋紝澶勭悊鐨勬槸RTU鍛戒护缁撴灉Node锛屼絾鏁版嵁涓璻tuResultSendWebUrl涓虹┖");
         }
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/WebResponseVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/WebResponseVo.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/WebResponseVo.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/WebResponseVo.java
index d45f243..5b74268 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/web/comResult/WebResponseVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/comResult/WebResponseVo.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw.web.comResult;
+package com.dy.rtuMw.web.comResult;
 
 /**
  * @Author liurunyu
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
new file mode 100644
index 0000000..5218409
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/RtuDataDealTree.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project>
+<project>
+	<!--
+	id:涓庡搴旂被涓殑闈欐�佹垚鍛樺彉閲弔askId涓�鑷�
+	enable:鏍囪瘑鏈妭鐐规槸鍚︽墽琛岋紝鑻ユ湰鑺傜偣涓嶆墽琛岋紝鍒欑洿鎺ヨ繘鍏ュ叾瀛愯妭鐐�
+	-->
+	<task id="TkReceive" name="鎺ユ敹鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.TkReceive">
+		<task id="TkRtuData" name="鎺ユ敹RTU鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.TkRtuData">
+			<task id="TkFindP206V1_0_0" name="璇嗗埆P206V1_0_0鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindP206V1_0_0">
+				<task id="TkPreGenObjs" name="棰勫厛鍑嗗鍚勫璞″苟璇嗗埆娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkPreGenObjs">
+					<!-- 澶勭悊娴佹氮鎺у埗鍣� -->
+					<task id="TkDealControllerTramp" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerTramp" />
+					<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 -->
+					<task id="TkDealControllerNoTramp" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealControllerNoTramp">
+						<!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� -->
+						<task id="TkFindReport" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindReport">
+							<task id="TkDealAlarmStatus" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAlarmStatus" />
+							<task id="TkDealAutoReport" name="鎺у埗鍣ㄨ嚜鎶ユ暟鎹紙鏁寸偣鎶ワ級" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealAutoReport" />
+							<task id="TkDealWorkReport" name="鎺у埗鍣ㄩ榾寮�宸ヤ綔涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealWorkReport" />
+							<task id="TkDealOpenValveReport" name="鎺у埗鍣ㄥ紑闃�涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealOpenValveReport" />
+							<task id="TkDealCloseValveReport" name="鎺у埗鍣ㄥ叧闃�涓婃姤" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealCloseValveReport" />
+							<task id="TkDealLoss" name="鎺у埗鍣ㄦ紡鎹熺粺璁★紙寰呮柊鍗忚鍑烘潵鍚庝慨鏀瑰疄鐜帮級" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkDealLoss" />
+						</task>
+						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
+						<task id="TkFindComResponse" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkFindComResponse">
+							<task id="TkRtuDealCommandResponse" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V1_0_0.TkRtuDealCommandResponse" >
+							</task>
+						</task>
+					</task>
+				</task>
+			</task>
+			<task id="TkFindP206V202404" name="璇嗗埆P206V202404鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindP206V202404">
+				<task id="TkPreGenObjsV202404" name="棰勫厛鍑嗗鍚勫璞″苟璇嗗埆娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkPreGenObjsV202404">
+					<!-- 澶勭悊娴佹氮鎺у埗鍣� -->
+					<task id="TkDealControllerTrampV202404" name="澶勭悊娴佹氮鎺у埗鍣�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealControllerTrampV202404" />
+					<!-- 闈炴祦娴�匯TU锛屽繀椤绘斁鍦═kDealControllerTramp鍚庨潰 -->
+					<task id="TkDealControllerNoTrampV202404" name="闈炴祦娴�匯TU" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealControllerNoTrampV202404">
+						<!-- 璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹� -->
+						<task id="TkFindReportV202404" name="璇嗗埆闈炲懡浠ゅ簲绛斾笂琛屾暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindReportV202404">
+							<task id="TkDealAlarmStatusV202404" name="鎺у埗鍣ㄦ姤璀︿笌鐘舵�佹暟鎹�" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkDealAlarmStatusV202404" />
+						</task>
+						<!-- 璇嗗埆鍛戒护鍝嶅簲鏁版嵁 -->
+						<task id="TkFindComResponseV202404" name="璇嗗埆鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkFindComResponseV202404">
+							<task id="TkRtuDealCommandResponseV202404" name="RTU鍝嶅簲鍛戒护鏁版嵁" enable="true" class="com.dy.rtuMw.server.rtuData.p206V202404.TkRtuDealCommandResponseV202404" >
+							</task>
+						</task>
+					</task>
+				</task>
+			</task>
+		</task>
+	</task>
+</project>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
new file mode 100644
index 0000000..9a35e83
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -0,0 +1,10 @@
+# 鏁版嵁婧愰厤缃�
+spring:
+    datasource: #閰嶇疆鏁版嵁婧�
+        type: com.alibaba.druid.pool.DruidDataSource
+        driver-class-name: com.mysql.cj.jdbc.Driver
+        url: jdbc:mysql://192.168.91.73:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+        username: root
+        password: dysql,;.abc!@#
+        druid:
+        # 璇存槑: 濡傛灉浣犳病鏈夋寚瀹歶seSSL=true ,鍚姩椤圭洰浼氭姤绾㈣鍛�, 鐜鐨勯棶棰橈紝瑕佺伒娲诲鐞�
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application.yml
new file mode 100644
index 0000000..5741442
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application.yml
@@ -0,0 +1,18 @@
+spring:
+    profiles:
+        include: global, database
+
+#actutor鐨剋eb绔彛
+management:
+    server:
+        port: ${pipIrr.mw.actutorPort}
+#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080
+server:
+    port: ${pipIrr.mw.webPort}
+    servlet:
+        context-path: /rtuMw #web璁块棶涓婁笅鏂囪矾寰�
+        context-parameters:
+            #GenerateIdSetSuffixListener涓簲鐢紝鍙栧�艰寖鍥存槸0-99
+            idSuffix: ${pipIrr.mw.idSuffix}
+            #ConfigListener涓簲鐢�
+            #configFileNames: config-global.xml,config-demo.xml
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
similarity index 99%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index b4b2330..ba27e78 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -20,7 +20,7 @@
 		<base 
 			isLowPower="false"
 			onlyOneProtocol="true"
-			downComandMaxResendTimes="3"
+			downComandMaxResendTimes="1"
 			commandSendInterval="3"
 			cachWaitResultTimeout="60"
 			offLineCachTimeout="86400"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/log4j2.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml
similarity index 100%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/log4j2.yml
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/log4j2.yml
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/test/java/com/dy/rtuMw/PipIrrMwAcceptApplicationTests.java
similarity index 89%
rename from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java
rename to pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/test/java/com/dy/rtuMw/PipIrrMwAcceptApplicationTests.java
index 5e86982..a80c42e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/test/java/com/dy/rtuMw/PipIrrMwAcceptApplicationTests.java
@@ -1,4 +1,4 @@
-package com.dy.aceMw;
+package com.dy.rtuMw;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
diff --git a/pipIrr-platform/pipIrr-mw/pom.xml b/pipIrr-platform/pipIrr-mw/pom.xml
index 90a65d1..2d08fea 100644
--- a/pipIrr-platform/pipIrr-mw/pom.xml
+++ b/pipIrr-platform/pipIrr-mw/pom.xml
@@ -15,7 +15,7 @@
     <description>姝ゆā鍧椾负鍏朵粬涓棿浠舵ā鍧楃殑鐖剁骇妯″潡锛屽彧瀹氫箟渚濊禆</description>
 
     <modules>
-        <module>pipIrr-mw-accept</module>
+        <module>pipIrr-mw-rtu</module>
         <module>pipIrr-mwTest-server</module>
         <module>pipIrr-mwTest-client</module>
     </modules>
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.gitignore
similarity index 94%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore
copy to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.gitignore
index 6d0dd52..549e00a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.gitignore
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.gitignore
@@ -1,6 +1,5 @@
 HELP.md
 target/
-/pipIrr-mw-accept.iml
 !.mvn/wrapper/maven-wrapper.jar
 !**/src/main/**/target/
 !**/src/test/**/target/
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.jar b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.jar
similarity index 100%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/.mvn/wrapper/maven-wrapper.jar
copy to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.properties b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..e70e7bc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw
similarity index 100%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw
copy to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw.cmd b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw.cmd
similarity index 100%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/mvnw.cmd
copy to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/mvnw.cmd
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/pom.xml b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/pom.xml
new file mode 100644
index 0000000..be397d1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/pom.xml
@@ -0,0 +1,141 @@
+<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>pipIrr-web</artifactId>
+        <groupId>com.dy</groupId>
+        <version>1.0.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <packaging>jar</packaging>
+    <artifactId>pipIrr-mwTest-web</artifactId>
+    <version>1.0.0</version>
+    <name>pipIrr-mw-rtu</name>
+    <description>閫氫俊涓棿浠朵腑蹇冩湇鍔$涓嬪彂鍛戒护娴嬭瘯</description>
+
+    <dependencies>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <!-- 鐢熸垚涓嶅寘鍚緷璧杍ar鐨勫彲鎵цjar鍖�
+            <plugin>
+                !- spring boot鎻愪緵鐨刴aven鎵撳寘鎻掍欢 -
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        !-
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                        -
+                        <configuration>
+                            !- 涓嶅姞鐨勮瘽鏈�缁堝寘鍚嶄负: ${artifactId}-${version}.jar, 鍔犱簡鐨勮瘽鏈�缁堝寘鍚�: ${artifactId}-${version}-${classifier}.jar  -
+                            <classifier>execute</classifier>
+                            !- 涓嶆寚瀹氱敓鎴愯矾寰勭殑璇�, 榛樿淇濆瓨鍦� ${build.directory} 涓� -
+                            <outputDirectory>${project.build.directory}/execute</outputDirectory>
+                            <finalName>${artifactId}-${version}</finalName>
+                            <layout>ZIP</layout>
+                            <mainClass>com.dy.pipIrrBase.PipIrrBaseApplication</mainClass>
+                            <includes>
+                                <include>
+                                    <groupId>com.dy</groupId>
+                                    <artifactId>pipIrr-common</artifactId>
+                                </include>
+                                <include>
+                                    <groupId>com.dy</groupId>
+                                    <artifactId>pipIrr-global</artifactId>
+                                </include>
+                            </includes>
+                            <excludes>
+                                <exclude>
+                                    <groupId>org.projectlombok</groupId>
+                                    <artifactId>lombok</artifactId>
+                                </exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+
+            </plugin>
+            -->
+            <!-- 鎷疯礉渚濊禆鐨刯ar鍖呭埌lib鐩綍-->
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <configuration>
+                            <!-- 涓嶅姞鐨勮瘽鏈�缁堝寘鍚嶄负: ${artifactId}-${version}.jar, 鍔犱簡鐨勮瘽鏈�缁堝寘鍚�: ${artifactId}-${version}-${classifier}.jar
+                            <classifier>execute</classifier>
+                            -->
+                            <!-- ${project.build.directory}鏄痬aven鍙橀噺锛屽唴缃殑锛岃〃绀簍arget鐩綍,濡傛灉涓嶅啓锛屽皢鍦ㄦ牴鐩綍涓嬪垱寤�/lib -->
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                            <!-- excludeTransitive:鏄惁涓嶅寘鍚棿鎺ヤ緷璧栧寘锛屾瘮濡傛垜浠緷璧朅锛屼絾鏄疉鍙堜緷璧栦簡B锛屾垜浠槸鍚︿篃瑕佹妸B鎵撹繘鍘� 榛樿涓嶆墦-->
+                            <excludeTransitive>false</excludeTransitive>
+                            <!-- 澶嶅埗鐨刯ar鏂囦欢鍘绘帀鐗堟湰淇℃伅 -->
+                            <stripVersion>false</stripVersion>
+                            <finalName>${project.artifactId}-${project.version}</finalName>
+                            <layout>ZIP</layout>
+                            <mainClass>com.dy.rtuMw.PipIrrMwAcceptApplication</mainClass>
+                            <includes>
+                                <include>
+                                    <groupId>com.dy</groupId>
+                                    <artifactId>pipIrr-common</artifactId>
+                                </include>
+                                <include>
+                                    <groupId>com.dy</groupId>
+                                    <artifactId>pipIrr-global</artifactId>
+                                </include>
+                            </includes>
+                            <excludes>
+                                <exclude>
+                                    <groupId>org.projectlombok</groupId>
+                                    <artifactId>lombok</artifactId>
+                                </exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <!-- 璁剧疆java缂栬瘧鐗堟湰锛岃繍琛岀幆澧冪増鏈� -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <!-- source锛� 婧愪唬鐮佺紪璇戠増鏈紱target锛� 鐩爣骞冲彴缂栬瘧鐗堟湰锛沞ncoding锛� 瀛楃闆嗙紪鐮併�� -->
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>${encoding}</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- 瑙e喅璧勬簮鏂囦欢鐨勭紪鐮侀棶棰� -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>${encoding}</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- maven閲屾墽琛屾祴璇曠敤渚嬬殑鎻掍欢 -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skipTests>true</skipTests>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- 涓嬮潰瑙e喅锛氬綋杩涜Maven Lifecycle package鏃舵姤閿欙細Could not find artifact org.apache.mina:mina-core:bundle:2.2.1 in maven (https://repo1.maven.org/maven2/)-->
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
new file mode 100644
index 0000000..699ac63
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplication.java
@@ -0,0 +1,49 @@
+package com.dy.pipIrrMwTestWeb;
+
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.pipIrrMwTestWeb.test.Command;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.FilterType;
+
+@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) //绂佹鍚姩鏁版嵁搴撹繛鎺ユ睜
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrMwTestWeb"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.apiDoc.SpringApiConfig.class //涓�绉嶆帓闄ょ被鐨勬柟寮�
+                }),
+                @ComponentScan.Filter(type = FilterType.REGEX, pattern = {
+                        //浜岀鎺掗櫎绫荤殑鏂瑰紡锛屽啓姝e垯琛ㄨ揪寮忥紝闇�瑕佸鐩爣绫荤殑瀹屽叏闄愬畾鍚嶅畬鍏ㄥ尮閰嶏紝鍚﹀垯涓嶇敓鏁�
+                        "com.dy.common.aop..*",
+                        "com.dy.common.apiDoc..*",
+                        "com.dy.common.multiDataSource..*",
+                        "com.dy.common.mybatis..*",
+                        "com.dy.common.singleDataSource..*",
+                        "com.dy.common.webFilter..*",
+                        "com.dy.common.webListener..*"
+                })
+        }
+)
+public class PipIrrMwTestWebApplication implements CommandLineRunner {
+
+    @Autowired
+    private Command test ;
+
+    public static void main(String[] args) {
+        SpringApplication.run(PipIrrMwTestWebApplication.class, args);
+    }
+    /**
+     * Spring瀹瑰櫒鍚姩瀹屾垚鍚庯紝鎵ц涓嬮潰鏂规硶
+     * @param args 鍙傛暟
+     * @throws Exception 寮傚父
+     */
+    @Override
+    public void run(String... args) throws Exception {
+        BaseResponse res = test.test() ;
+        System.out.println(res.toString());
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupport.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupport.java
new file mode 100644
index 0000000..e470013
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/ComSupport.java
@@ -0,0 +1,101 @@
+package com.dy.pipIrrMwTestWeb.test;
+
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandType;
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo;
+import com.dy.common.webUtil.BaseResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/14 17:32
+ * @Description
+ */
+public class ComSupport {
+    protected static String mwUrlTest = "http://127.0.0.1:8070/rtuMw/com/test" ;
+    protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send" ;
+
+    protected static String rtuAddr = "37142501020100215" ;
+    protected static String rtuResultSendWebUrl = "http://127.0.0.1:65535/test/comRes/receive" ;
+
+    protected static String controllerType = "57" ;//鎺у埗鍣ㄧ被鍨�
+    protected static Integer projectNo = 10 ;//椤圭洰缂栫爜
+
+    protected static String icCardAddr = "04BEA5BB" ;//IC鍗″湴鍧�
+    protected static String icCardNo = "37142501020500001" ;//IC鍗$紪鍙凤紙鐢ㄦ埛鍗″簭鍒楀彿锛�
+
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+
+    protected ComCdXyVo comCdXyVo(){
+        ComCdXyVo comVo = new ComCdXyVo() ;
+        comVo.controllerType = controllerType ;
+        comVo.projectNo = projectNo  ;
+        return comVo ;
+    }
+
+    protected Command command(String code, Object param, String comId){
+        Command com = new Command() ;
+        com.id = comId==null?Command.defaultId:(comId.trim().equals("")?Command.defaultId:comId) ;//瀹為檯搴旂敤涓紝鏇挎崲鎴愭暟鎹簱璁板綍id
+        com.protocol = ProtocolConstantV206V202404.protocolName ;
+        com.code = code ;
+        com.rtuAddr = rtuAddr ;
+        com.type = CommandType.outerCommand ;
+        com.rtuResultSendWebUrl = rtuResultSendWebUrl ;
+
+        com.param = param ;
+
+        return com ;
+    }
+
+    /**
+     * 杩炴帴閫氫俊涓棿浠舵祴璇�
+     * @return
+     */
+    protected BaseResponse sendTest(){
+        String url = UriComponentsBuilder.fromUriString(mwUrlTest)
+                .build()
+                .toUriString();
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<?> httpEntity = new HttpEntity<>(headers);
+        ResponseEntity<BaseResponse> response = null;
+        try {
+            // 閫氳繃Get鏂瑰紡璋冪敤鎺ュ彛
+            response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, BaseResponse.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return response.getBody();
+    }
+
+    /**
+     * 鍙戦�佸懡浠�
+     * @return
+     */
+    protected BaseResponse sendCom2Mw(Command com){
+        String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+                .build()
+                .toUriString();
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
+        ResponseEntity<BaseResponse> response = null;
+        try {
+            // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return response.getBody();
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/Command.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/Command.java
new file mode 100644
index 0000000..1584ce0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/Command.java
@@ -0,0 +1,217 @@
+package com.dy.pipIrrMwTestWeb.test;
+
+import com.dy.common.mw.protocol.p206V202404.CodeV202404;
+import com.dy.common.mw.protocol.p206V202404.downVos.*;
+import com.dy.common.webUtil.BaseResponse;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/14 14:20
+ * @Description
+ */
+@Component
+public class Command extends ComSupport {
+
+    /**
+     * 杩炴帴閫氫俊涓棿浠舵祴璇�
+     * @return
+     */
+    public BaseResponse test(){
+        //return this.connect() ;//杩炴帴閫氫俊涓棿浠舵祴璇�
+        //return this.cdXY(CodeV202404.cd_97) ;//鍙戦�佸浐瀹氬弬鏁扮殑鍛戒护
+        //return this.cd65(1) ;
+        return this.cd15() ;
+    }
+
+    /**
+     * 娴嬭瘯杩為�氭��
+     * @return
+     */
+    private BaseResponse connect(){
+        return this.sendTest() ;
+    }
+
+    //鍙戦�佸浐瀹氬弬鏁扮殑鍛戒护
+    private BaseResponse cdXY(String code){
+        return this.sendCom2Mw(this.command(code, this.comCdXyVo(), null)) ;
+    }
+
+    //璁剧疆缁堢鍦板潃(AFN=0x10H)
+    private BaseResponse cd10(){
+        ComCd10Vo comVo = new ComCd10Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.rtuNewAddr = Command.rtuAddr ;
+        return this.sendCom2Mw(this.command(CodeV202404.cd_10, comVo, null)) ;
+    }
+     //杩滅▼鐢ㄦ埛鍏呭�� (AFN=0x15H)
+    private BaseResponse cd15(){
+        ComCd15Vo comVo = new ComCd15Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.icCardAddr = Command.icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
+        comVo.icCardNo = Command.icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+        comVo.chargeMoney = 12.34 ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.chargeWater = 43.21 ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.flowNo = "123456789012" ;//娴佹按鍙凤紙12浣嶆暟瀛楋級
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_15, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢鍓╀綑姘撮噺鍜屽墿浣欓噾棰濇姤璀﹀�� (AFN=0x16H)
+    private BaseResponse cd16(){
+        ComCd16Vo comVo = new ComCd16Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.waterAlarm = 10 ;//鍓╀綑姘撮噺鎶ヨ鍊�,鍗曚綅:m3銆傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
+        comVo.moneyAlarm = 11 ;//鍓╀綑閲戦鎶ヨ鍊�,鍗曚綅:鍏冦�傛暣鏁帮紝鍙栧�艰寖鍥�0~9999
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_16, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢IP鍦板潃 (AFN=0x21H)
+    private BaseResponse cd21(){
+        ComCd21Vo comVo = new ComCd21Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+        comVo.ip = "111.222.123.321" ;//IP锛堜緥濡� 125.235.35.89锛�
+        comVo.port = 60000 ;///绔彛鍙凤紙0~65536锛�
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_21, comVo, null)) ;
+    }
+    //璁剧疆鏈轰簳骞存渶澶у紑閲囬噺鍜屾按浣嶄笅闄� (AFN=0x22H)
+    private BaseResponse cd22(){
+        ComCd22Vo comVo = new ComCd22Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.maxAmountYear = 12345 ;//鏈轰簳骞存渶澶х敤姘撮噺鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+        comVo.limitLevel = 123.4; //姘翠綅涓嬮檺 鍗曚綅锛歮 鍙栧�艰寖鍥�:0~9999.99
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_22, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢鍩熷悕(AFN=0x23H)
+    private BaseResponse cd23(){
+        ComCd23Vo comVo = new ComCd23Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+        comVo.domain = "www.baidu.com" ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
+        comVo.port = 60000 ;///绔彛鍙凤紙0~65536锛�
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_23, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢娉ㄥ唽鍙�(AFN=0x24H)
+    private BaseResponse cd24(){
+        ComCd24Vo comVo = new ComCd24Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.registerNo = "102030405060708090" ;//鍩熷悕锛堜緥濡� dayuyanjiuyuan.to锛夛紝鏈�澶ч暱搴�42瀛楃
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_24, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢骞寸敤姘撮噺(AFN=0x24H)
+    private BaseResponse cd26(){
+        ComCd26Vo comVo = new ComCd26Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.ipChannel = 1  ;//IP閫氶亾鍙� 0x01:1閫氶亾 0x02:2閫氶亾.
+        comVo.maxAmountYear = 123456  ;//璁惧缁堢骞寸敤姘撮噺 鍗曚綅锛歮3 鏁存暟锛屽彇鍊艰寖鍥�0~99999999
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_26, comVo, null)) ;
+    }
+    //璁剧疆璁惧缁堢鐢ㄦ按鏈夋晥(AFN=0x31H)
+    private BaseResponse cd31(){
+        ComCd31Vo comVo = new ComCd31Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.valid = false ;//鏈夋晥鎬�
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_31, comVo, null)) ;
+    }
+    //鏌ヨ閬ユ祴缁堢鍏呭�艰褰� (AFN=0x55H)
+    private BaseResponse cd55(int page){
+        ComCd55Vo comVo = new ComCd55Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.page = page ;//鍒嗛〉锛堝彇鍊艰寖鍥�1銆�2銆�3銆�4銆�5銆�6銆�7銆�8銆�9锛�
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_55, comVo, null)) ;
+    }
+    //鏌ヨ璁惧缁堢鐢ㄦ埛鐢ㄦ按璁板綍(AFN=0x65H)
+    private BaseResponse cd65(int page){
+        ComCd65Vo comVo = new ComCd65Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.page = page ;
+        return this.sendCom2Mw(this.command(CodeV202404.cd_65, comVo, null)) ;
+    }
+    //鏌ヨ鎺у埗鍣↖P鍦板潃(AFN=0x86H)
+    private BaseResponse cd86(){
+        ComCd86Vo comVo = new ComCd86Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+        return this.sendCom2Mw(this.command(CodeV202404.cd_86, comVo, null)) ;
+    }
+    //鏌ヨ鎺у埗鍣ㄥ煙鍚�(AFN=0x87H)
+    private BaseResponse cd87(){
+        ComCd87Vo comVo = new ComCd87Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.channel = 1 ;//IP閫氶亾鍙�(鍙栧�艰寖鍥� 1銆�2).
+        return this.sendCom2Mw(this.command(CodeV202404.cd_87, comVo, null)) ;
+    }
+    //骞冲彴/APP杩滅▼寮�鍚按娉�/闃�闂�(AFN=0x92H/AFN=0xA2H)
+    private BaseResponse cd92(){
+        ComCd92_A2Vo comVo = new ComCd92_A2Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        //comVo.icCardAddr = Test.icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
+        comVo.icCardNo = Command.icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+        comVo.waterRemain = 123.45 ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.moneyRemain = 234.56 ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.waterPrice = 0.8 ;//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+        comVo.elePrice = 1.2 ;//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+        comVo.orderNo = "1234567890123456" ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_92, comVo, null)) ;
+    }
+    //骞冲彴/APP杩滅▼寮�鍚按娉�/闃�闂�(AFN=0x92H/AFN=0xA2H)
+    private BaseResponse cdA2(){
+        ComCd92_A2Vo comVo = new ComCd92_A2Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        //comVo.icCardAddr = Test.icCardAddr ;//IC鍗″湴鍧�(8浣嶆暟瀛楁垨瀛楁瘝)
+        comVo.icCardNo = Command.icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+        comVo.waterRemain = 123.45 ;//鍗曚綅:鍏�  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.moneyRemain = 234.56 ;//鍗曚綅:m3  2浣嶅皬鏁扮偣(鏈�澶у�� 99999999.99)
+        comVo.waterPrice = 0.8 ;//姘撮噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+        comVo.elePrice = 1.2 ;//鐢甸噺鍗曚环 鍗曚綅:鍏�, 2涓皬鏁扮偣
+        comVo.orderNo = "1234567890123456" ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_A2, comVo, null)) ;
+    }
+
+   //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�(AFN=0x93H/AFN=0xA3H)
+    private BaseResponse cd93(){
+        ComCd93_A3Vo comVo = new ComCd93_A3Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.icCardNo = Command.icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+        comVo.orderNo = "1234567890123456" ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_93, comVo, null)) ;
+    }
+    //骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂�(AFN=0x93H/AFN=0xA3H)
+    private BaseResponse cdA3(){
+        ComCd93_A3Vo comVo = new ComCd93_A3Vo() ;
+        comVo.controllerType = Command.controllerType ;
+        comVo.projectNo = Command.projectNo  ;
+        comVo.icCardNo = Command.icCardNo ;//鐢ㄦ埛鍗″簭鍒楀彿锛�17浣嶆暟瀛楋級锛�6瀛楄妭BCD锛�2瀛楄妭HEX锛�
+        comVo.orderNo = "1234567890123456" ;//璁㈠崟鍙凤紙16浣嶆暟瀛楋級
+
+        return this.sendCom2Mw(this.command(CodeV202404.cd_A3, comVo, null)) ;
+    }
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java
new file mode 100644
index 0000000..11047f9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/java/com/dy/pipIrrMwTestWeb/test/CommandResultCtrl.java
@@ -0,0 +1,29 @@
+package com.dy.pipIrrMwTestWeb.test;
+
+import com.dy.common.mw.protocol.Data;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/5/18 11:04
+ * @Description
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="comRes")
+@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
+public class CommandResultCtrl {
+
+    @PostMapping(path = "receive", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public BaseResponse<String> receive(@RequestBody Data data) {
+        log.info(data.toString()) ;
+        return BaseResponseUtils.buildSuccess("ok");
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/resources/application.yml b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/resources/application.yml
new file mode 100644
index 0000000..b0aee39
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/main/resources/application.yml
@@ -0,0 +1,29 @@
+logging:
+    charset:
+        console: UTF-8
+    config:
+        classpath: log4j2.yml
+
+#web鏈嶅姟绔彛锛宼omcat榛樿鏄�8080
+server:
+    error:
+        whitelabel:
+            enabled: false
+    port: 65535
+    servlet:
+        context-path: /test #web璁块棶涓婁笅鏂囪矾寰�
+        encoding:
+            #鍙栨秷榛樿鐨勫瓧绗﹂泦缂栫爜
+            enabled: true
+            #璁剧疆寮哄埗浣跨敤鎸囧畾瀛楃缂栫爜闆�
+            force: true
+            #浣跨敤鐨勫瓧绗︾紪鐮�
+            charset: utf-8
+
+#绂佹鍚姩鏁版嵁搴撹繛鎺ユ睜
+spring:
+    #autoconfigure:
+    #    exclude:
+    #        - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
+    #        - org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration
+    #        - org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/test/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplicationTests.java
similarity index 68%
copy from pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java
copy to pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/test/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplicationTests.java
index 5e86982..c65ce87 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/test/java/com/dy/aceMw/PipIrrMwAcceptApplicationTests.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-web/src/test/java/com/dy/pipIrrMwTestWeb/PipIrrMwTestWebApplicationTests.java
@@ -1,10 +1,10 @@
-package com.dy.aceMw;
+package com.dy.pipIrrMwTestWeb;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
-class PipIrrMwAcceptApplicationTests {
+class PipIrrMwTestWebApplicationTests {
 
     @Test
     void contextLoads() {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
index ad605ba..1089355 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
@@ -6,11 +6,18 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrBase"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrBase"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrBaseApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/PipIrrDemoApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/PipIrrDemoApplication.java
index e5b0bd1..06eeafc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/PipIrrDemoApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/PipIrrDemoApplication.java
@@ -6,11 +6,18 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrDemo"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrDemo"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoDemo"})
 public class PipIrrDemoApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/java/com/dy/pipIrrGis/PipIrrGisApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/java/com/dy/pipIrrGis/PipIrrGisApplication.java
index a7d14f6..0ce7e2a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/java/com/dy/pipIrrGis/PipIrrGisApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-gis/src/main/java/com/dy/pipIrrGis/PipIrrGisApplication.java
@@ -6,12 +6,19 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrGis"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrGis"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrGisApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java
index 443df6d..262614c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/PipIrrIrrigateApplication.java
@@ -6,11 +6,18 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrIrrigate"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrIrrigate"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan({"com.dy.pipIrrGlobal.daoIr", "com.dy.pipIrrGlobal.daoIr"})
 public class PipIrrIrrigateApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
new file mode 100644
index 0000000..ee36545
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
@@ -0,0 +1,261 @@
+package com.dy.pipIrrIrrigate.project;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
+import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.lang.reflect.Array;
+import java.util.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/14  13:53
+ * @LastEditTime :2024/5/14  13:53
+ * @Description
+ */
+@Slf4j
+@Tag(name = "椤圭洰绠$悊", description = "椤圭洰鎿嶄綔")
+@RestController
+@RequestMapping(path = "project")
+@RequiredArgsConstructor
+public class ProjectCtrl {
+    private final ProjectSv projectSv;
+
+    /**
+     * 娣诲姞椤圭洰
+     *
+     * @param po            椤圭洰瀹炰綋瀵硅薄
+     * @param bindingResult
+     * @return 娣诲姞鏄惁鎴愬姛
+     */
+    @Operation(summary = "娣诲姞椤圭洰璁板綍", description = "娣诲姞椤圭洰璁板綍")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add(@RequestBody @Valid IrProject po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(projectSv.addProject(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.ADD_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("娣诲姞椤圭洰寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎椤圭洰
+     * @param map
+     * @return
+     */
+    @Operation(summary = "閫昏緫鍒犻櫎椤圭洰", description = "閫昏緫鍒犻櫎椤圭洰")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "delete", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete(@RequestBody Map map) {
+        if (map == null || map.size() <= 0) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+        Long projectId = Long.parseLong(map.get("id").toString());
+        try {
+            Integer rows = projectSv.deleteProject(projectId);
+            if (rows == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("鍒犻櫎椤圭洰寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎
+     * @param projectIds
+     * @return
+     */
+    @PostMapping(path = "delete_batch", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> delete_batch(@RequestBody Map<String,List> projectIds) {
+        if (projectIds == null || projectIds.size() <= 0) {
+            BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
+        }
+        List ids = projectIds.get("projectIds");
+        for (int i = 0; i < ids.size(); i++) {
+            long projectId = Long.parseLong(ids.get(i).toString());
+            try {
+                Integer rows = projectSv.deleteProject(projectId);
+                if (rows == 0) {
+                    return BaseResponseUtils.buildFail(IrrigateResultCode.DELETE_PROJECT_FAIL.getMessage());
+                }
+            } catch (Exception e) {
+                log.error("鍒犻櫎椤圭洰寮傚父", e);
+                return BaseResponseUtils.buildException(e.getMessage());
+            }
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 淇敼椤圭洰淇℃伅
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "淇敼椤圭洰淇℃伅", description = "淇敼椤圭洰淇℃伅")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Valid IrProject po, BindingResult bindingResult){
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            Integer rec = Optional.ofNullable(projectSv.updateProject(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.UPDATE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("淇敼椤圭洰寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 淇敼椤圭洰鐘舵��
+     * @param po
+     * @param
+     * @return
+     */
+    @Operation(summary = "淇敼椤圭洰鐘舵��", description = "淇敼椤圭洰鐘舵��")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "update_state", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update_state(@RequestBody IrProject po){
+        try {
+            Integer rec = Optional.ofNullable(projectSv.updateProjectState(po)).orElse(0);
+            if (rec == 0) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.UPDATE_PROJECT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            log.error("淇敼椤圭洰寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鑾峰彇涓�涓」鐩暟鎹�
+     *
+     * @return 鑾峰彇涓�涓」鐩暟鎹�
+     */
+    @Operation(summary = "鑾峰彇涓�涓」鐩暟鎹�", description = "鑾峰彇涓�涓」鐩暟鎹�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰彇涓�涓」鐩暟鎹紙BaseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = IrProject.class))}
+            )
+    })
+    @GetMapping(path = "one")
+    @SsoAop()
+    public BaseResponse<IrProject> one(@RequestParam Long id) {
+        IrProject irProject = this.projectSv.selectById(id);
+        if (irProject == null) {
+            return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
+        } else {
+            return BaseResponseUtils.buildSuccess(irProject);
+        }
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param vo
+     * @return
+     */
+    @Operation(summary = "鑾峰緱涓�椤甸」鐩褰�", description = "鑾峰緱涓�椤甸」鐩褰�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鑾峰緱涓�椤甸」鐩褰曪紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = VoActiveCard.class))}
+            )
+    })
+    @GetMapping(path = "some")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoProject>>> getIntakes(QueryVo vo) {
+        try {
+            QueryResultVo<List<VoProject>> res = projectSv.getProjects(vo);
+            if (res == null) {
+                return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
+            }
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇椤圭洰璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
new file mode 100644
index 0000000..8b4d90a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
@@ -0,0 +1,149 @@
+package com.dy.pipIrrIrrigate.project;
+
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoIr.IrProjectMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/14  13:56
+ * @LastEditTime :2024/5/14  13:56
+ * @Description
+ */
+@Slf4j
+@Service
+public class ProjectSv {
+    @Autowired
+    private IrProjectMapper irProjectMapper;
+
+    /**
+     * 娣诲姞椤圭洰
+     *
+     * @param po
+     * @return
+     */
+    public Integer addProject(IrProject po) {
+        po.setOperateDt(new Date());
+        po.setDeleted((byte) 0);
+        if (po.getVillageId() != null) {
+            po.setTownId(irProjectMapper.getSupperByVillageId(po.getVillageId()));
+            po.setCountyId(irProjectMapper.getSupperByVillageId(po.getTownId()));
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getTownId() != null) {
+            po.setCountyId(irProjectMapper.getSupperByVillageId(po.getTownId()));
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getCountyId() != null) {
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getCityId() != null) {
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        int rows = irProjectMapper.insertSelective(po);
+        if (rows == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鍒犻櫎椤圭洰
+     *
+     * @param id
+     */
+    public Integer deleteProject(Long id) {
+        int rows = irProjectMapper.deleteLogicById(id);
+        if (rows == 0) {
+            return 0;
+        }
+            return 1;
+    }
+
+    /**
+     * 淇敼椤圭洰淇℃伅
+     * @param po
+     * @return
+     */
+    public Integer updateProject(IrProject po){
+        po.setOperateDt(new Date());
+        if (po.getVillageId() != null) {
+            po.setTownId(irProjectMapper.getSupperByVillageId(po.getVillageId()));
+            po.setCountyId(irProjectMapper.getSupperByVillageId(po.getTownId()));
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getTownId() != null) {
+            po.setCountyId(irProjectMapper.getSupperByVillageId(po.getTownId()));
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getCountyId() != null) {
+            po.setCityId(irProjectMapper.getSupperByVillageId(po.getCountyId()));
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        if (po.getCityId() != null) {
+            po.setProvinceId(irProjectMapper.getSupperByVillageId(po.getCityId()));
+        }
+        int rows = irProjectMapper.updateByPrimaryKeySelective(po);
+        if (rows == 0){
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 淇敼椤圭洰鐘舵��
+     * @param po
+     * @return
+     */
+    public Integer updateProjectState(IrProject po){
+        po.setOperateDt(new Date());
+        int rows = irProjectMapper.updateProjectState(po);
+        if (rows == 0){
+            return 0;
+        }
+        return 1;
+    }
+
+    /**
+     * 鑾峰彇涓�涓」鐩暟鎹�
+     * @param id
+     * @return
+     */
+    public IrProject selectById(Long id){
+        IrProject irProject = irProjectMapper.selectById(id);
+        return irProject;
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ椤圭洰
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoProject>> getProjects(QueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+        Long itemTotal = irProjectMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoProject>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = irProjectMapper.getProjects(params);
+        return rsVo;
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java
new file mode 100644
index 0000000..a8985ea
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrIrrigate.project;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15  21:11
+ * @LastEditTime :2024/5/15  21:11
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "椤圭洰鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+    @Schema(description = "椤圭洰鍚嶇О")
+    public String projectName;
+
+    @Schema(description = "椤圭洰鐘舵��")
+    public String projectState;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
index 8c3ec6c..8d4670b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
@@ -14,11 +14,13 @@
 @AllArgsConstructor
 public enum IrrigateResultCode {
     /**
-     * 鐢伴棿鐏屾簤椤圭洰
+     * 椤圭洰
      */
-    DIVIDE_FAIL(10001, "鍒嗘按鎴挎坊鍔犲け璐�"),
-    DELETE_DIVIDE_FAIL(10001, "鍒嗘按鎴垮垹闄ゅけ璐�"),
-    NO_DIVIDES(10001, "鏃犵鍚堟潯浠剁殑鍒嗘按鎴胯褰�");
+    ADD_PROJECT_FAIL(10001, "椤圭洰娣诲姞澶辫触"),
+    PLEASE_INPUT_PROJECT_ID(10002, "璇疯緭鍏ラ」鐩甀D"),
+    DELETE_PROJECT_FAIL(10003, "椤圭洰鍒犻櫎澶辫触"),
+    UPDATE_PROJECT_FAIL(10004, "椤圭洰淇敼澶辫触"),
+    NO_PROJECT(10005, "鏃犵鍚堟潯浠剁殑椤圭洰璁板綍");
 
 
     private final Integer code;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/PipIrrProjectApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/PipIrrProjectApplication.java
index f73cd42..88c5951 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/PipIrrProjectApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/PipIrrProjectApplication.java
@@ -6,6 +6,7 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 /**
  * @author ZhuBaoMin
@@ -17,7 +18,13 @@
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrProject"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrProject"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan({"com.dy.pipIrrGlobal.daoPr", "com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrProjectApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index e0d70d1..090d07f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -4,6 +4,8 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.mw.protocol.Command;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
@@ -11,6 +13,7 @@
 import com.dy.pipIrrGlobal.pojoPr.PrController;
 import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
 import com.dy.pipIrrGlobal.voPr.VoController;
+import com.dy.pipIrrProject.result.ProjectResultCode;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,7 +83,10 @@
      * @return
      */
     public Integer addController(PrController po) {
-        prControllerMapper.insert(po);
+        int rows = prControllerMapper.insert(po);
+        if(rows == 0) {
+            return 0;
+        }
         PrIntakeController addPrIntakeController = new PrIntakeController();
         addPrIntakeController.setIntakeid(po.getIntakeId());
         addPrIntakeController.setControllerid(po.getId());
@@ -88,8 +94,11 @@
         addPrIntakeController.setOperator(po.getOperator());
         addPrIntakeController.setOperatedt(po.getOperateDt());
         addPrIntakeController.setRemarks("缁戝畾");
-        prIntakeControllerMapper.insert(addPrIntakeController);
-        return 1;
+        int rec = prIntakeControllerMapper.insert(addPrIntakeController);
+        if(rec == 0) {
+            return 0;
+        }
+        return 1 ;
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
index d89f165..167cecd 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -134,20 +134,21 @@
         // 鎺ユ敹鏉戠紪鍙凤紙涓婚敭锛�
         Long villageId = po.getVillageId();
 
-        /**
-         * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
-         */
-        Map map_districts = Optional.ofNullable(divideSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
-        if(map_districts.size() <= 0) {
-            return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
-        }
-
         PrDivide prDivide = DtoToDividePojo.INSTANCT.po2vo(po);
 
-        Long countryId = Long.parseLong(map_districts.get("countryId").toString());
-        Long townId = Long.parseLong(map_districts.get("townId").toString());
-        prDivide.setCountyid(countryId);
-        prDivide.setTownid(townId);
+        if (villageId!=null){
+            /**
+             * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
+             */
+            Map map_districts = Optional.ofNullable(divideSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
+            if(map_districts.size() <= 0) {
+                return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+            }
+            Long countryId = Long.parseLong(map_districts.get("countryId").toString());
+            Long townId = Long.parseLong(map_districts.get("townId").toString());
+            prDivide.setCountyid(countryId);
+            prDivide.setTownid(townId);
+        }
 
         Date operateTime = new Date();
         prDivide.setOperatedt(operateTime);
@@ -220,19 +221,19 @@
         // 鎺ユ敹鏉戠紪鍙凤紙涓婚敭锛�
         Long villageId = po.getVillageid();
 
-        /**
-         * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
-         */
-        Map map_districts = Optional.ofNullable(divideSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
-        if(map_districts.size() <= 0) {
-            return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+        if (villageId!=null){
+            /**
+             * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
+             */
+            Map map_districts = Optional.ofNullable(divideSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
+            if(map_districts.size() <= 0) {
+                return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+            }
+            Long countryId = Long.parseLong(map_districts.get("countryId").toString());
+            Long townId = Long.parseLong(map_districts.get("townId").toString());
+            po.setCountyid(countryId);
+            po.setTownid(townId);
         }
-
-        Long countryId = Long.parseLong(map_districts.get("countryId").toString());
-        Long townId = Long.parseLong(map_districts.get("townId").toString());
-
-        po.setCountyid(countryId);
-        po.setTownid(townId);
 
         Date operateTime = new Date();
         po.setOperatedt(operateTime);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
index ee84f0c..996457b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
@@ -22,7 +22,7 @@
      * 鎵�鍦ㄦ潙
      */
     @Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
+//    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
     private Long villageId;
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
index 05e545b..c49197c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
@@ -26,10 +26,10 @@
     private Long intakeId;
 
     /**
-     * 鎺у埗鍣↖D
+     * 锛堟祦娴級鎺у埗鍣↖D
      */
-    @Schema(description = "鎺у埗鍣↖D", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "鎺у埗鍣↖D涓嶈兘涓虹┖")
+    @Schema(description = "缁戝畾鏃朵负娴佹氮鎺у埗鍣↖D/瑙g粦鏃朵负鎺у埗鍣↖D", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "锛堟祦娴級鎺у埗鍣↖D涓嶈兘涓虹┖")
     private Long controllerId;
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
index d1324ff..252376c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -1,5 +1,7 @@
 package com.dy.pipIrrProject.intakeController;
 
+
+import cn.hutool.core.date.DateTime;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
@@ -40,7 +42,7 @@
 @Slf4j
 @Tag(name = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旂鐞�", description = "鍙栨按鍙�/鎺у埗鍣ㄥ叧鑱旀搷浣�")
 @RestController
-@RequestMapping(path="intake_controller")
+@RequestMapping(path = "intake_controller")
 @RequiredArgsConstructor
 public class IntakeControllerCtrl {
     private final IntakeControllerSv intakeControllerSv;
@@ -51,9 +53,10 @@
      * 鍙栨按鍙g粦瀹氭帶鍒跺櫒
      * 1. 鎺ユ敹鍙栨按鍙D鍙婃祦娴帶鍒跺櫒ID锛屽苟楠岃瘉鍙栨按鍙e拰鎺у埗鍣ㄦ槸鍚﹀瓨鍦�
      * 2. 鍒ゆ柇璇ユ帶鍒跺櫒鏄惁瀛樺湪鏈В缁戣褰曪紝濡傛灉瀛樺湪鎻愮ず鐢ㄦ埛璇ユ帶鍒跺櫒瀛樺湪鏈В缁戣褰�
-     * 3. 缁勮鎺у埗鍣ㄥ璞℃彃鍏ユ帶鍒跺櫒琛ㄤ腑
-     * 4. 娣诲姞缁戝畾璁板綍
+     * 3. 缁勮鎺у埗鍣ㄥ璞℃彃鍏ユ帶鍒跺櫒琛ㄤ腑锛堝強娣诲姞缁戝畾璁板綍锛�
+     * 4. 淇敼缁戝畾璁板綍璁剧疆澶囨敞
      * 5. 鍒犻櫎娴佹氮鎺у埗鍣紙鐗╃悊鍒犻櫎锛�
+     *
      * @param po
      * @param bindingResult
      * @return
@@ -72,26 +75,26 @@
     @SsoAop()
     public BaseResponse<Boolean> bind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult) throws ParseException {
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        if(bindingResult != null && bindingResult.hasErrors()){
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
         // 鎺ユ敹鍙傛暟
         Long intakeId = po.getIntakeId();
-        Long controllerId = po.getControllerId();
+        Long trampControllerId = po.getControllerId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
 
         // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙h褰曟暟銆佹祦娴帶鍒跺櫒淇℃伅锛屽垽鏂彇姘村彛鍙婃帶鍒跺櫒鏄惁瀛樺湪
         Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(intakeId)).orElse(0);
-        PrControllerTramp prControllerTramp = intakeControllerSv.getTrampControllerInfo(controllerId);
+        PrControllerTramp prControllerTramp = intakeControllerSv.getTrampControllerInfo(trampControllerId);
         //Map map_TrampController = Optional.ofNullable(intakeControllerSv.getTrampControllerInfo(controllerId)).orElse(new HashMap());
-        if(recIntke == 0 || prControllerTramp == null) {
+        if (recIntke == 0 || prControllerTramp == null) {
             return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
         }
 
         // 鏍规嵁鎺у埗鍣ㄧ紪鍙峰垽鏂鎺у埗鍣ㄦ槸鍚﹀瓨鍦ㄦ湭瑙g粦璁板綍
-        Integer recBinded = Optional.ofNullable(controllerSv.getBindedCount(controllerId)).orElse(0);
-        if(recBinded > 0) {
+        Integer recBinded = Optional.ofNullable(controllerSv.getBindedCount(trampControllerId)).orElse(0);
+        if (recBinded > 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_BINDED.getMessage());
         }
 
@@ -101,29 +104,31 @@
         prController.setRtuAddr(prControllerTramp.getRtuAddr());
         prController.setProtocol(prControllerTramp.getProtocol());
         prController.setFindDt(prControllerTramp.getFindDt());
-        prController.setAddWays((byte)1);
+        prController.setAddWays((byte) 1);
         prController.setOperator(operator);
         Date operateTime = new Date();
         prController.setOperateDt(operateTime);
-        prController.setDeleted((byte)0);
+        prController.setDeleted((byte) 0);
         Integer rec_addController = Optional.ofNullable(controllerSv.addController(prController)).orElse(0);
-        if(rec_addController == 0) {
+        if (rec_addController == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
         }
 
-        // 娣诲姞缁戝畾璁板綍
-        PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po);
-        prIntakeController.setOperatedt(operateTime);
-        prIntakeController.setOperatetype((byte)1);
-        Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0);
-        if(rec == 0) {
+
+        // 淇敼缁戝畾璁板綍
+        PrIntakeController prIntakeController = new PrIntakeController();
+        prIntakeController.setRemarks(remarks);
+        prIntakeController.setIntakeid(intakeId);
+
+        Integer rec = Optional.ofNullable(intakeControllerSv.updateBindRecord(prIntakeController)).orElse(0);
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
         }
 
         // 鏍规嵁娴佹氮鎺у埗鍣ㄧ紪鍙峰垹闄ゆ祦娴帶鍒跺櫒璁板綍
-        intakeControllerSv.deleteTrampController(controllerId);
+        intakeControllerSv.deleteTrampController(trampControllerId);
 
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     /**
@@ -131,6 +136,7 @@
      * 1. 鎺ユ敹鍙栨按鍙D鍙婃祦娴帶鍒跺櫒ID锛屽苟楠岃瘉鍙栨按鍙e拰鎺у埗鍣ㄦ槸鍚﹀瓨鍦�
      * 2. 娣诲姞瑙g粦璁板綍
      * 3. 鍒犻櫎鎺у埗鍣ㄥ閿�
+     *
      * @param po
      * @param bindingResult
      * @return
@@ -147,15 +153,15 @@
     @PostMapping(path = "unbind", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> unbind(@RequestBody @Valid DtoIntakeController po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         // 鏍规嵁缂栧彿鍒嗗埆鑾峰彇鍙栨按鍙c�佹帶鍒跺櫒鏈垹闄よ褰曟暟
         Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(po.getIntakeId())).orElse(0);
         Integer recController = Optional.ofNullable(controllerSv.getRecordCountOfController(po.getControllerId())).orElse(0);
-        if(recIntke == 0 || recController == 0) {
+        if (recIntke == 0 || recController == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage());
         }
 
@@ -169,23 +175,24 @@
         PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po);
         Date operateTime = new Date();
         prIntakeController.setOperatedt(operateTime);
-        prIntakeController.setOperatetype((byte)2);
+        prIntakeController.setOperatetype((byte) 2);
         Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0);
-        if(rec == 0) {
+        if (rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
         }
 
         // 鍒犻櫎鎺у埗鍣ㄥ閿�
         Integer rec_deleteIntakeId = Optional.ofNullable(controllerSv.deleteIntakeId(po.getControllerId())).orElse(0);
-        if(rec_deleteIntakeId == 0) {
+        if (rec_deleteIntakeId == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage());
         }
 
-        return BaseResponseUtils.buildSuccess(true) ;
+        return BaseResponseUtils.buildSuccess(true);
     }
 
     /**
      * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�
+     *
      * @param intakeId 鍙栨按鍙g紪鍙�
      * @return 鍙栨按鍙d笅鎺у埗鍣ㄧ殑缁戝畾銆佽В缁戣褰�
      */
@@ -200,21 +207,23 @@
     })
     @GetMapping(path = "intake_binds")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByIntakeId(Long intakeId){
+    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByIntakeId(Long intakeId) {
         try {
             List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByIntakeId(intakeId)).orElse(new ArrayList<>());
-            if(list.size() <= 0) {
-                return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_NO_RECORDS.getMessage());
-            }
+            if (list.size() <= 0) {
+                //鏃犵粦瀹氳褰曚篃杩斿洖鎴愬姛 浣嗘暟鎹负绌�
+                return BaseResponseUtils.buildSuccess(list);
+            }//鎴愬姛杩斿洖缁戝畾璁板綍鏁版嵁
             return BaseResponseUtils.buildSuccess(list);
         } catch (Exception e) {
-            log.error("鏌ヨ鍐滄埛寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            log.error("鏌ヨ寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 鏍规嵁鎺у埗鍣ㄧ紪鍙疯幏鍙栫粦瀹氳褰曞垪琛�
+     *
      * @param controllerId 鎺у埗鍣ㄧ紪鍙�
      * @return 涓庤鎺у埗鍣ㄧ浉鍏崇殑缁戝畾銆佽В缁戣褰�
      */
@@ -229,16 +238,92 @@
     })
     @GetMapping(path = "controller_binds")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByControllerId(Long controllerId){
+    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getBindsByControllerId(Long controllerId) {
         try {
             List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByControllerId(controllerId)).orElse(new ArrayList<>());
-            if(list.size() <= 0) {
-                return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_NO_RECORDS.getMessage());
+            if (list.size() <= 0) {
+                //鏃犵粦瀹氳褰曚篃杩斿洖鎴愬姛 浣嗘暟鎹负绌�
+                return BaseResponseUtils.buildSuccess(list);
             }
             return BaseResponseUtils.buildSuccess(list);
         } catch (Exception e) {
-            log.error("鏌ヨ鍐滄埛寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            log.error("鏌ヨ寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
+
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇娴佹氮鎺у埗鍣ㄥ垪琛�
+     *
+     * @param vo 鏌ヨ鏉′欢
+     * @return 绗﹀悎鏉′欢鐨勬帶鍒跺櫒鍒楄〃
+     */
+    @Operation(summary = "鑾峰緱涓�椤垫祦娴帶鍒跺櫒璁板綍", description = "杩斿洖涓�椤垫祦娴帶鍒跺櫒鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤垫祦娴帶鍒跺櫒鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = PrControllerTramp.class))}
+            )
+    })
+    @GetMapping(path = "/getTrampControllers")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<PrControllerTramp>>> getTrampControllers(TrampControllerQueryVo vo) {
+
+        try {
+            QueryResultVo<List<PrControllerTramp>> res = intakeControllerSv.getTrampControllers(vo);
+            if (res.itemTotal != null && res.itemTotal > 0) {
+                return BaseResponseUtils.buildSuccess(res);
+            } else {
+                //璇锋眰鎴愬姛浣嗘暟鎹负绌�
+                return BaseResponseUtils.buildSuccess(res);
+            }
+            //return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇娴佹氮鎺у埗鍣ㄨ褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 娣诲姞娴佹氮鎺у埗鍣�
+     *
+     * @param pct
+     * @return
+     */
+    @PostMapping("addTrampController")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addTrampController(@RequestBody PrControllerTramp pct) {
+        pct.setFindDt(new Date());
+        Integer rows = intakeControllerSv.addTrampController(pct);
+        if (rows == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.ADD_TRAMP_CONTROLLER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鍒犻櫎娴佹氮鎺у埗鍣�
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("deleteTrampController")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteTrampController(Long id) {
+        PrControllerTramp controllerInfo = intakeControllerSv.getTrampControllerInfo(id);
+        if (controllerInfo == null) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.NO_EXIST_TRAMP_CONTROLLER.getMessage());
+        }
+
+        Integer rows = intakeControllerSv.deleteTrampController(id);
+        if (rows == 0) {
+            return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_TRAMP_CONTROLLER_FAIL.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java
index 11928ca..043a59c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java
@@ -1,13 +1,19 @@
 package com.dy.pipIrrProject.intakeController;
 
+import cn.hutool.core.date.DateTime;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoPr.PrControllerTrampMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
 import com.dy.pipIrrGlobal.pojoPr.PrControllerTramp;
 import com.dy.pipIrrGlobal.pojoPr.PrIntakeController;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -91,4 +97,34 @@
     public Integer deleteTrampController(Long controllerId) {
         return prControllerTrampMapper.deleteByPrimaryKey(controllerId);
     }
+
+    //娴佹氮鎺у埗鍣ㄥ
+    public Integer addTrampController(PrControllerTramp record){
+        return prControllerTrampMapper.insertSelective(record);
+    }
+
+
+/*娴佹氮鎺у埗鍣ㄦ煡*/
+    public QueryResultVo<List<PrControllerTramp>> getTrampControllers(TrampControllerQueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = prControllerTrampMapper.getTrampControllersCount(params);
+
+        QueryResultVo<List<PrControllerTramp>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = prControllerTrampMapper.getTrampControllers(params);
+
+        return rsVo;
+    }
+    /**
+     * 淇敼缁戝畾璁板綍閫氳繃鍙栨按鍙�
+     * @param record
+     * @return
+     */
+    public Integer updateBindRecord(PrIntakeController record){
+        return prIntakeControllerMapper.updateByIntakeSelective(record);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/TrampControllerQueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/TrampControllerQueryVo.java
new file mode 100644
index 0000000..b3be90f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/TrampControllerQueryVo.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrProject.intakeController;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/8  14:16
+ * @LastEditTime :2024/5/8  14:16
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "娴佹氮鎺у埗鍣ㄦ煡璇㈡潯浠�")
+public class TrampControllerQueryVo extends QueryConditionVo {
+
+    @Schema(description = "娴佹氮鎺у埗鍣↖D")
+    private String id;
+
+    @Schema(description = "鎺у埗鍣ㄥ湴鍧�")
+    private String rtuAddr;
+
+    @Schema(description = "閫氳鍗忚")
+    public String protocol;
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
index 2df9954..e2f42c4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
@@ -37,7 +37,12 @@
     NO_RECORDS(30002, "娌℃湁绗﹀悎鏉′欢鐨勬帶鍒跺櫒鏁版嵁"),
     PLEASE_INPUT_CONTROLLER_ID(30003, "璇疯緭鍏ユ帶鍒跺櫒缂栧彿"),
     DELETE_CONTROLLER_FAIL(30004, "鎺у埗鍣ㄥ垹闄ゅけ璐�"),
-
+    /**
+     * 娴佹氮鎺у埗鍣�
+     */
+    ADD_TRAMP_CONTROLLER_FAIL(80001, "娴佹氮鎺у埗鍣ㄦ坊鍔犲け璐�"),
+    DELETE_TRAMP_CONTROLLER_FAIL(80002, "娴佹氮鎺у埗鍣ㄥ垹闄ゅけ璐�"),
+    NO_EXIST_TRAMP_CONTROLLER(80003, "璇ユ祦娴帶鍒跺櫒涓嶅瓨鍦�"),
     /**
      * 鍙栨按鍙c�佹帶鍒跺櫒鍏宠仈
      */
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
index 4b2849f..e5bb6de 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/PipIrrRemoteApplication.java
@@ -6,11 +6,18 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrRemote"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrRemote"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrRemoteApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
index 5f7f0a7..ab6a5cc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
@@ -7,6 +7,7 @@
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 /**
  * @author ZhuBaoMin
@@ -19,7 +20,13 @@
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
 @EnableConfigurationProperties
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrSell"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrSell"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrSellApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java
index e7795b6..ff55333 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/PipIrrSsoApplication.java
@@ -8,12 +8,19 @@
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
 @EnableCaching//寮�鍚娇鐢ㄧ紦瀛�
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.sso"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.sso"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
 @Slf4j
 public class PipIrrSsoApplication {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
index 3e592a0..bd2ef1d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/PipIrrStatisticsApplication.java
@@ -6,11 +6,18 @@
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.context.annotation.FilterType;
 
 @SpringBootApplication
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
-@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrStatistics"})
+@ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrStatistics"},
+        excludeFilters = {
+                @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
+                        com.dy.common.singleDataSource.DruidDataSourceConfig.class //鎺掗櫎鍗曟暟鎹簮
+                })
+        }
+)
 @MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrStatisticsApplication {
 
diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml
index 59af32a..905817f 100644
--- a/pipIrr-platform/pipIrr-web/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pom.xml
@@ -18,6 +18,7 @@
     <description>姝ゆā鍧椾负鍏朵粬web妯″潡鐨勫眬閮ㄥ叏灞�妯″潡锛屽彧瀹氫箟渚濊禆</description>
 
     <modules>
+        <module>pipIrr-mwTest-web</module>
         <module>pipIrr-web-demo</module>
         <module>pipIrr-web-sso</module>
         <module>pipIrr-web-base</module>

--
Gitblit v1.8.0