Administrator
2024-04-09 40c1615ec1be69038859fce41fcd9f78d5d043cb
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
22个文件已修改
1个文件已添加
726 ■■■■ 已修改文件
pipIrr-platform/pipIrr-common/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-webchat/pipIrr-web-webchat.iml 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/pom.xml
@@ -139,6 +139,11 @@
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.17.2</version>
        </dependency>
    </dependencies>
    <build>
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrFlowmeterMapper.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrGlobal.daoPr;
import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
import com.dy.pipIrrGlobal.pojoPr.PrIntake;
import com.dy.pipIrrGlobal.voPr.VoFlowMeter;
import com.dy.pipIrrGlobal.voPr.VoFlowMonitoring;
import org.apache.ibatis.annotations.Param;
@@ -56,4 +57,16 @@
     * @return 实体集合
     */
    List<VoFlowMeter> getFlowMeters(Map<?, ?> params);
    /**
     * 得到全部实体
     * @return 全部实体
     * */
    List<PrFlowmeter> selectAll();
    /**
     * 给流量计表加监测站ID外键
     * @param
     * @return
     */
    int flowmeterAddMonId(PrFlowmeter record);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrMonitoringFlowmeterMapper.java
@@ -39,5 +39,5 @@
     * @param monitoringId 监测站编号
     * @return 绑定记录
     */
    List<Map<String, Object>> getBingRecordsByMonitoringId(Long monitoringId);
    List<Map<String, Object>> getBingRecordsByMonitoringId(String monitoringId);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmIntakeAmountHistoryMapper.java
@@ -18,38 +18,38 @@
     */
    int deleteByPrimaryKey(Long id);
    /**
     * insert record to table
     * @param record the record
     * @return insert count
     */
    int insert(RmIntakeAmountHistory record);
    /**
     * insert record to table selective
     * @param record the record
     * @return insert count
     */
    int insertSelective(RmIntakeAmountHistory record);
    /**
     * select by primary key
     * @param id primary key
     * @return object by primary key
     */
    RmIntakeAmountHistory selectByPrimaryKey(Long id);
    /**
     * update record selective
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKeySelective(RmIntakeAmountHistory record);
    /**
     * update record
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKey(RmIntakeAmountHistory record);
//    /**
//     * insert record to table
//     * @param record the record
//     * @return insert count
//     */
//    int insert(RmIntakeAmountHistory record);
//
//    /**
//     * insert record to table selective
//     * @param record the record
//     * @return insert count
//     */
//    int insertSelective(RmIntakeAmountHistory record);
//
//    /**
//     * select by primary key
//     * @param id primary key
//     * @return object by primary key
//     */
//    RmIntakeAmountHistory selectByPrimaryKey(Long id);
//
//    /**
//     * update record selective
//     * @param record the updated record
//     * @return update count
//     */
//    int updateByPrimaryKeySelective(RmIntakeAmountHistory record);
//
//    /**
//     * update record
//     * @param record the updated record
//     * @return update count
//     */
//    int updateByPrimaryKey(RmIntakeAmountHistory record);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowMonitoring.java
@@ -58,43 +58,36 @@
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @Schema(description = "所在村ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "所在村不能为空")
    private Long villageid;
    /**
    * 监测站名称
    */
    @Schema(description = "监测站名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "监测站名称不能为空")
    @Length(message = "监测站名称不大于{max}字,不小于{min}字", min = 1, max = 25)
    private String name;
    /**
    * 经度
    */
    @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "经度不能为空")
    private Double lng;
    /**
    * 纬度
    */
    @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "经度不能为空")
    private Double lat;
    /**
    * 备注信息
    */
    @Schema(description = "备注", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @Length(message = "备注不大于{max}字,不小于{min}字", min = 1, max = 200)
    private String remarks;
    /**
    * 操作人ID
    */
    @Schema(description = "操作人ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @NotNull(message = "操作人ID不能为空")
    private Long operator;
    /**
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrFlowmeter.java
@@ -16,7 +16,7 @@
/**
 * @author ZhuBaoMin
 * @date 2024-01-05 9:04
 * @LastEditTime 2024-01-05 9:04
 * @LastEditTime 2024-04-01 9:04 wuzeyu
 * @Description
 */
@@ -39,6 +39,13 @@
    private Long id;
    /**
     * 外键 监测站ID
     */
    @Schema(description = "监测站ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    @Length(message = "监测站ID不大于{max}字,不小于{min}字", min = 1, max = 25)
    private String monitoringId;
    /**
    * 流量计编号
    */
    @Schema(description = "流量计编号", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -58,19 +65,19 @@
    * 在线状态;1-在线,2-离线
    */
    @Schema(description = "在线状态", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Byte onlinestate;
    private Byte onlineState;
    /**
    * 最近上报时间
    */
    @Schema(description = "最近上报时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Date reporttime;
    private Date reportTime;
    /**
    * 添加方式;1-系统自动,2-手动
    */
    @Schema(description = "添加方式", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Byte addways;
    private Byte addWays;
    /**
    * 操作人ID
@@ -82,7 +89,7 @@
    * 操作时间
    */
    @Schema(description = "操作时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private Date operatedt;
    private Date operateDt;
    /**
    * 备注信息
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMeter.java
@@ -24,7 +24,7 @@
    @Schema(title = "ID")
    @ExcelProperty("ID")
    @ColumnWidth(10)
    private Long id;
    private String id;
    @Schema(title = "管网流量计编号")
    @ExcelProperty("管网流量计编号")
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoFlowMonitoring.java
@@ -31,7 +31,7 @@
    @Schema(title = "绑定状态")
    @ExcelProperty("绑定状态")
    @ColumnWidth(15)
    private Integer bindState;
    private String bindState;
    @Schema(title = "地址")
    @ExcelProperty("地址")
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowMonitoringMapper.xml
@@ -211,42 +211,52 @@
    <select id="getRecordCountOfFlowMonitoring" resultType="java.lang.Integer">
        SELECT COUNT(*) AS recordCountOfFlowMonitoring
        from    pr_flow_monitoring pfm
        INNER JOIN ba_district country ON pfm.countyId = country.id
        INNER JOIN ba_district town ON pfm.townId = town.id
        INNER JOIN ba_district village ON pfm.villageId = village.id
        LEFT JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
        LEFT JOIN pr_flowmeter pf ON pf.monitoringId = pfm.id
        LEFT JOIN ba_district country ON pfm.countyId = country.id
        LEFT JOIN ba_district town ON pfm.townId = town.id
        LEFT JOIN ba_district village ON pfm.villageId = village.id
        <where>
            pfm.deleted = 0
            <if test = "name != null and name !=''">
                AND pfm.`name` like CONCAT('%',#{name},'%')
            </if>
            <if test = "bindState != null and bindState > 0">
                AND pmofl.operateType = ${bindState}
            <if test = "bindState ==1 ">
                AND pf.monitoringId IS NOT NULL
            </if>
            <if test = "bindState ==2 or bindState =='' ">
                AND pf.monitoringId IS  NULL
            </if>
        </where>
    </select>
    <!--根据指定条件获取流量监测站实体记录-->
    <select id="getPrFlowMonitoring" parameterType="map" resultType="com.dy.pipIrrGlobal.voPr.VoFlowMonitoring">
        select  CAST(pfm.id AS char)                                 AS id,
        select  CAST(pfm.id AS char)                                AS id,
                CONCAT(country.`name`, town.`name`, village.`name`) AS address,
                pfm.`name`                                          AS `name`,
                pmofl.operateType                                   AS bindState
                (CASE
                 WHEN pf.monitoringId IS NOT NULL THEN "已绑定"
                 WHEN pf.monitoringId IS  NULL  THEN "未绑定"
                 END)                                               AS bindState
        from    pr_flow_monitoring pfm
        INNER JOIN ba_district country ON pfm.countyId = country.id
        INNER JOIN ba_district town ON pfm.townId = town.id
        INNER JOIN ba_district village ON pfm.villageId = village.id
        LEFT JOIN pr_monitoring_flowmeter pmofl ON pmofl.monitoringId = pfm.id
        LEFT JOIN pr_flowmeter pf ON pf.monitoringId = pfm.id
        LEFT JOIN ba_district country ON pfm.countyId = country.id
        LEFT JOIN ba_district town ON pfm.townId = town.id
        LEFT JOIN ba_district village ON pfm.villageId = village.id
        <where>
            pfm.deleted = 0
            <if test = "name != null and name !=''">
                AND pfm.`name` like CONCAT('%',#{name},'%')
            </if>
            <if test = "bindState != null and bindState > 0">
                AND pmofl.operateType = ${bindState}
            <if test = "bindState ==1 ">
                AND pf.monitoringId IS NOT NULL
            </if>
            <if test = "bindState ==2 or bindState =='' ">
                AND pf.monitoringId IS  NULL
            </if>
        </where>
        ORDER BY pmofl.operateDt DESC
        ORDER BY pfm.operateDt DESC
        <trim prefix="limit " >
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrFlowmeterMapper.xml
@@ -5,19 +5,20 @@
    <!--@mbg.generated-->
    <!--@Table pr_flowmeter-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="monitoringId" jdbcType="BIGINT" property="monitoringId" />
    <result column="code" jdbcType="VARCHAR" property="code" />
    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
    <result column="onlineState" jdbcType="TINYINT" property="onlinestate" />
    <result column="reportTime" jdbcType="TIMESTAMP" property="reporttime" />
    <result column="addWays" jdbcType="TINYINT" property="addways" />
    <result column="onlineState" jdbcType="TINYINT" property="onlineState" />
    <result column="reportTime" jdbcType="TIMESTAMP" property="reportTime" />
    <result column="addWays" jdbcType="TINYINT" property="addWays" />
    <result column="operator" jdbcType="BIGINT" property="operator" />
    <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" />
    <result column="operateDt" jdbcType="TIMESTAMP" property="operateDt" />
    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
    <result column="deleted" jdbcType="TINYINT" property="deleted" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, remarks,
    id, monitoringId, code, protocol, onlineState, reportTime, addWays, `operator`, operateDt, remarks,
    deleted
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -40,8 +41,8 @@
      `operator`, operateDt, remarks, 
      deleted)
    values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{protocol,jdbcType=VARCHAR}, 
      #{onlinestate,jdbcType=TINYINT}, #{reporttime,jdbcType=TIMESTAMP}, #{addways,jdbcType=TINYINT},
      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR},
      #{onlineState,jdbcType=TINYINT}, #{reportTime,jdbcType=TIMESTAMP}, #{addWays,jdbcType=TINYINT},
      #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR},
      #{deleted,jdbcType=TINYINT})
  </insert>
@@ -58,19 +59,19 @@
      <if test="protocol != null">
        protocol,
      </if>
      <if test="onlinestate != null">
      <if test="onlineState != null">
        onlineState,
      </if>
      <if test="reporttime != null">
      <if test="reportTime != null">
        reportTime,
      </if>
      <if test="addways != null">
      <if test="addWays != null">
        addWays,
      </if>
      <if test="operator != null">
        `operator`,
      </if>
      <if test="operatedt != null">
      <if test="operateDt != null">
        operateDt,
      </if>
      <if test="remarks != null">
@@ -90,20 +91,20 @@
      <if test="protocol != null">
        #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="onlinestate != null">
        #{onlinestate,jdbcType=TINYINT},
      <if test="onlineState != null">
        #{onlineState,jdbcType=TINYINT},
      </if>
      <if test="reporttime != null">
        #{reporttime,jdbcType=TIMESTAMP},
      <if test="reportTime != null">
        #{reportTime,jdbcType=TIMESTAMP},
      </if>
      <if test="addways != null">
        #{addways,jdbcType=TINYINT},
      <if test="addWays != null">
        #{addWays,jdbcType=TINYINT},
      </if>
      <if test="operator != null">
        #{operator,jdbcType=BIGINT},
      </if>
      <if test="operatedt != null">
        #{operatedt,jdbcType=TIMESTAMP},
      <if test="operateDt != null">
        #{operateDt,jdbcType=TIMESTAMP},
      </if>
      <if test="remarks != null">
        #{remarks,jdbcType=VARCHAR},
@@ -123,20 +124,20 @@
      <if test="protocol != null">
        protocol = #{protocol,jdbcType=VARCHAR},
      </if>
      <if test="onlinestate != null">
        onlineState = #{onlinestate,jdbcType=TINYINT},
      <if test="onlineState != null">
        onlineState = #{onlineState,jdbcType=TINYINT},
      </if>
      <if test="reporttime != null">
        reportTime = #{reporttime,jdbcType=TIMESTAMP},
      <if test="reportTime != null">
        reportTime = #{reportTime,jdbcType=TIMESTAMP},
      </if>
      <if test="addways != null">
        addWays = #{addways,jdbcType=TINYINT},
      <if test="addWays != null">
        addWays = #{addWays,jdbcType=TINYINT},
      </if>
      <if test="operator != null">
        `operator` = #{operator,jdbcType=BIGINT},
      </if>
      <if test="operatedt != null">
        operateDt = #{operatedt,jdbcType=TIMESTAMP},
      <if test="operateDt != null">
        operateDt = #{operateDt,jdbcType=TIMESTAMP},
      </if>
      <if test="remarks != null">
        remarks = #{remarks,jdbcType=VARCHAR},
@@ -152,11 +153,11 @@
    update pr_flowmeter
    set code = #{code,jdbcType=VARCHAR},
      protocol = #{protocol,jdbcType=VARCHAR},
      onlineState = #{onlinestate,jdbcType=TINYINT},
      reportTime = #{reporttime,jdbcType=TIMESTAMP},
      addWays = #{addways,jdbcType=TINYINT},
      onlineState = #{onlineState,jdbcType=TINYINT},
      reportTime = #{reportTime,jdbcType=TIMESTAMP},
      addWays = #{addWays,jdbcType=TINYINT},
      `operator` = #{operator,jdbcType=BIGINT},
      operateDt = #{operatedt,jdbcType=TIMESTAMP},
      operateDt = #{operateDt,jdbcType=TIMESTAMP},
      remarks = #{remarks,jdbcType=VARCHAR},
      deleted = #{deleted,jdbcType=TINYINT}
    where id = #{id,jdbcType=BIGINT}
@@ -172,38 +173,38 @@
    SELECT COUNT(*) AS recordCountOfFlowmeter FROM pr_flowmeter WHERE deleted = 0 AND id = ${flowmeterId}
  </select>
  <!--根据流量计编号 或者 在线状态 获取未删除的流量计数量 -->
  <!--根据流量计编号 或者 在线状态 获取未删除的绑定的流量计数量 -->
  <select id="getRecordCountOfFlowMeterByOthers" resultType="_integer">
    SELECT COUNT(*) AS recordCountOfFlowmeter FROM pr_flowmeter
    SELECT COUNT(*) AS recordCountOfFlowmeter
    from pr_flowmeter pfm
    Left join pr_flow_monitoring pfmt on pfmt.id = pfm.monitoringId
    <where>
    deleted = 0 AND
      <if test="code != null">
        code = #{code,jdbcType=VARCHAR},
      pfm.deleted = 0 AND pfmt.deleted = 0
      <if test = "code != null and code !=''">
        AND pfm.code like CONCAT('%',#{code},'%')
      </if>
      <if test="onlineState != null ">
        onlineState = #{onlineState,jdbcType=TINYINT}
        AND pfm.onlineState = #{onlineState}
      </if>
  </where>
    </where>
  </select>
  <!--根据流量计编号 或者 在线状态 获取未删除的流量计记录 -->
  <!--根据流量计编号 或者 在线状态 获取未删除的绑定的流量计记录 -->
  <select id="getFlowMeters" resultType="com.dy.pipIrrGlobal.voPr.VoFlowMeter">
    select (@i:=@i+1)                                           AS id,
    select CAST(pfm.id AS char)                                 AS id,
      pfm.code                                                  AS code,
      pfm.onlineState                                           AS onlineState,
      pfmt.`name`                                               AS `name`,
      pfm.operateDt                                             AS operateDt
    from pr_flowmeter pfm
    inner join pr_monitoring_flowmeter pmofl on pmofl.flowmeterId = pfm.id
    inner join pr_flow_monitoring pfmt on pfmt.id = pmofl.monitoringId,
    (SELECT @i:=0) AS itable
    Left join pr_flow_monitoring pfmt on pfmt.id = pfm.monitoringId
    <where>
      pfm.deleted = 0 AND pfmt.deleted = 0 AND pmofl.operateType = 1
      <if test="code != null">
        AND code = #{code,jdbcType=VARCHAR}
      pfm.deleted = 0 AND pfmt.deleted = 0
      <if test = "code != null and code !=''">
        AND pfm.code like CONCAT('%',#{code},'%')
      </if>
      <if test="onlineState != null ">
        AND onlineState = #{onlineState,jdbcType=TINYINT}
        AND pfm.onlineState = #{onlineState}
      </if>
    </where>
    ORDER BY pfm.operateDt DESC
@@ -213,4 +214,19 @@
      </if>
    </trim>
  </select>
  <select id="selectAll" resultMap="BaseResultMap">
    <!--@mbg.generated-->
    select
    <include refid="Base_Column_List"/>
    from pr_flowmeter pfm
    where deleted != 1
  </select>
  <update id="flowmeterAddMonId">
    update pr_flowmeter
    set monitoringId = #{monitoringId,jdbcType=BIGINT},
    `operator` = #{operator,jdbcType=BIGINT},
    operateDt = #{operateDt,jdbcType=TIMESTAMP}
    where id = #{id,jdbcType=BIGINT}
  </update>
</mapper>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrMonitoringFlowmeterMapper.xml
@@ -149,11 +149,15 @@
  </select>
  <!--根据 流量监测站编号 获取 绑定记录 按操作时间降序-->
  <select id="getBingRecordsByMonitoringId" parameterType="_long" resultType="java.util.Map">
    select  (@i:=@i+1)                                           AS id,
    <include refid="Base_Column_List_NoId" />
    from pr_monitoring_flowmeter
    ,(SELECT @i:=0) AS itable
  <select id="getBingRecordsByMonitoringId" parameterType="string" resultType="java.util.Map">
    select  CAST(id AS char) as id,
    CAST(monitoringId AS char)as monitoringId,
    CAST(flowmeterId AS char)as flowmeterId,
    operateType,
    remarks,
    `operator`,
    operateDt
    from pr_monitoring_flowmeter pmf
    where
    monitoringId=#{monitoringId,jdbcType=BIGINT}
    order by operateDt desc
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java
@@ -97,7 +97,7 @@
     * @return 文件列表(文件名称,文件大小,文件最后修改时间)
     */
    @SuppressWarnings("unused")
    public TreeMap<String, String[]> listLogFiles(String rtuAddr){
    public TreeMap<String, String[]> listLogFilesName(String rtuAddr){
        File f = new File(ResourceUnit.confVo.rtuLogDir) ;
        TreeMap<String, String[]> map = new TreeMap<>() ;
        if(f.isDirectory()){
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/p206V1_0_0/TkDealWorkReport.java
@@ -7,7 +7,6 @@
import com.dy.common.mw.protocol.p206V1_0_0.DataV1_0_1;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoRm.RmAlarmStateLast;
import com.dy.pipIrrGlobal.pojoRm.RmWorkReportHistory;
import com.dy.pipIrrGlobal.pojoRm.RmWorkReportLast;
import org.apache.logging.log4j.LogManager;
@@ -17,7 +16,7 @@
 * @Author liurunyu
 * @Date 2024/2/27 14:20
 * @LastEditTime 2024/2/27 14:20
 * @Description 开阀工作报
 * @Description 阀开工作报
 */
public class TkDealWorkReport extends TaskSurpport {
@@ -43,13 +42,13 @@
                try{
                    this.doDeal(sv, controller, d.getRtuAddr(), dV1_0_1, dV1_0_1.dataCd84Vo) ;
                }catch (Exception e){
                    log.error("保存控制器开阀工作报时发生异常", e);
                    log.error("保存控制器阀开工作报时发生异常", e);
                }
            }
        }
    }
    /**
     * 处理开阀工作报数据
     * 处理阀开工作报数据
     * @param sv 服务
     * @param controller 控制器对象
     * @param rtuAddr 控制器地址
@@ -61,7 +60,7 @@
    }
    /**
     * 保存开阀工作报最新数据
     * 保存阀开工作报最新数据
     * @param sv
     * @param controller
     * @param rtuAddr
@@ -94,7 +93,7 @@
        }
    }
    /**
     * 保存开阀工作报历史数据
     * 保存阀开工作报历史数据
     * @param sv
     * @param controller
     * @param rtuAddr
pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/RtuDataDealTree.xml
@@ -17,7 +17,7 @@
                        <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="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" />
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -2,6 +2,8 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoPr.PrControllerMapper;
import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
@@ -12,12 +14,20 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
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.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static com.dy.common.mw.protocol.CommandType.innerCommand;
/**
 * @author ZhuBaoMin
@@ -38,8 +48,13 @@
    @Autowired
    private PrIntakeControllerMapper prIntakeControllerMapper;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * 根据指定获取控制器记录
     *
     * @param queryVo
     * @return
     */
@@ -48,17 +63,19 @@
        Long itemTotal = prControllerMapper.getRecordCount(params);
        QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>();
        rsVo.pageSize = queryVo.pageSize;
        rsVo.pageCurr = queryVo.pageCurr;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = prControllerMapper.getControllers(params);
        return rsVo ;
        return rsVo;
    }
    /**
     * 添加控制器
     *
     * @param po
     * @return
     */
@@ -77,6 +94,7 @@
    /**
     * 根据控制器地址获取控制器列表
     *
     * @param rtuAddr
     * @return
     */
@@ -86,6 +104,7 @@
    /**
     * 根据控制器编号逻辑删除控制
     *
     * @param controllerId
     * @return
     */
@@ -95,6 +114,7 @@
    /**
     * 根据指定条件导出控制器列表
     *
     * @param queryVo
     * @return
     */
@@ -102,19 +122,22 @@
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        List<VoController> rsVo = new ArrayList<>();
        rsVo = prControllerMapper.getControllers(params);
        return rsVo ;
        return rsVo;
    }
    /**
     * 根据控制器编号获取未删除的控制器数量
     *
     * @param controllerId
     * @return
     */
    public Integer getRecordCountOfController(Long controllerId) {
        return prControllerMapper.getRecordCountOfController(controllerId);
    }
    /**
     * 根据控制器编号获取已绑定记录数
     *
     * @param controllerId
     * @return
     */
@@ -124,6 +147,7 @@
    /**
     * 根据主键删除外键
     *
     * @param controllerId
     * @return
     */
@@ -133,13 +157,14 @@
    /**
     * 获取未绑控制器的取水口列表
     *
     * @return
     */
    public JSONArray getNoBindingIntakes() {
        List<Map<String, Object>> list = Optional.ofNullable(prIntakeMapper.getNoBindingIntakes()).orElse(new ArrayList<>());
        JSONArray array= null;
        if(list.size() > 0) {
            array= JSONArray.parseArray(JSON.toJSONString(list));
        JSONArray array = null;
        if (list.size() > 0) {
            array = JSONArray.parseArray(JSON.toJSONString(list));
        }
        return array;
    }
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/DtoToFlowmeterPojo.java
@@ -15,11 +15,11 @@
@Mapper
public interface DtoToFlowmeterPojo {
    DtoToFlowmeterPojo INSTANCT = Mappers.getMapper(DtoToFlowmeterPojo.class);
    @Mapping(target = "code", source = "code")
    @Mapping(target = "protocol", source = "protocol")
    @Mapping(target = "onlinestate", source = "onlineState")
    @Mapping(target = "addways", source = "addWays")
    @Mapping(target = "operator", source = "operator")
    @Mapping(target = "remarks", source = "remarks")
//    @Mapping(target = "code", source = "code")
//    @Mapping(target = "protocol", source = "protocol")
//    @Mapping(target = "onlineState", source = "onlineState")
//    @Mapping(target = "addWays", source = "addWays")
//    @Mapping(target = "operator", source = "operator")
//    @Mapping(target = "remarks", source = "remarks")
    PrFlowmeter po2vo(DtoFlowmeter po);
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowMonitoringCtrl.java
@@ -36,13 +36,14 @@
@Slf4j
@Tag(name = "流量监测站管理", description = "流量监测站操作")
@RestController
@RequestMapping(path="flow_monitoring")
@RequestMapping(path = "flow_monitoring")
@RequiredArgsConstructor
public class FlowMonitoringCtrl {
    private final FlowMonitoringSv flowMonitoringSv;
    /**
     * 添加管网流量监测站
     *
     * @param po
     * @param bindingResult
     * @return
@@ -58,38 +59,45 @@
    })
    @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
    @SsoAop()
    public BaseResponse<Boolean> add(@RequestBody @Valid PrFlowMonitoring po, BindingResult bindingResult){
        if(bindingResult != null && bindingResult.hasErrors()){
    public BaseResponse<Boolean> add(@RequestBody @Valid PrFlowMonitoring po, BindingResult bindingResult) {
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        // 接收村编号(主键)
        Long villageId = po.getVillageid();
        /**
         * 获取5级行政区划信息
         */
        Map map_districts = Optional.ofNullable(flowMonitoringSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
        if(map_districts.size() <= 0) {
            return BaseResponseUtils.buildFail("区划信息有误");
        if (villageId != null) {
            /**
             * 获取5级行政区划信息
             */
            Map map_districts = Optional.ofNullable(flowMonitoringSv.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);
        if (po.getName() == null){
            return BaseResponseUtils.buildFail("监测站名称不能为空");}
        if (po.getName().length()>25||po.getName().length()<1){
            return BaseResponseUtils.buildFail("25>监测站名称>1");}
        if (po.getLat()== null||po.getLng()== null){
            return BaseResponseUtils.buildFail("经纬度不能为空");}
        Date operateTime = new Date();
        po.setOperatedt(operateTime);
        po.setDeleted((byte)0);
        po.setDeleted((byte) 0);
        Integer rec = Optional.ofNullable(flowMonitoringSv.addFlowMonitoring(po)).orElse(0);
        if(rec == 0) {
        if (rec == 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.FLOW_MONITORING_FAIL.getMessage());
        }
        return BaseResponseUtils.buildSuccess(true) ;
        return BaseResponseUtils.buildSuccess(true);
    }
    /**
     * 删除流量监测站
     *
     * @param map
     * @return
     */
@@ -104,21 +112,22 @@
    })
    @PostMapping(path = "delete")
    @SsoAop()
    public BaseResponse<Boolean> delete(@RequestBody Map map){
        if(map == null || map.size() <=0) {
    public BaseResponse<Boolean> delete(@RequestBody Map map) {
        if (map == null || map.size() <= 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.PLEASE_INPUT_FLOW_MONITORING_ID.getMessage());
        }
        Long flowMonitoringId = Long.parseLong(map.get("flowMonitoringId").toString());
        Integer recordCount = Optional.ofNullable(flowMonitoringSv.deleteFlowMonitoring(flowMonitoringId)).orElse(0);
        if(recordCount == 0) {
        if (recordCount == 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_FLOW_MONITORING_FAIL.getMessage());
        }
        return BaseResponseUtils.buildSuccess(true) ;
        return BaseResponseUtils.buildSuccess(true);
    }
    /**
     * 编辑修改监测站
     *
     * @param po 保存监测站form表单对象
     * @return 是否成功
     */
@@ -133,42 +142,46 @@
    })
    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
    @SsoAop()
    public BaseResponse<Boolean> update(@RequestBody @Parameter(description = "form表单json数据", required = true) @Valid PrFlowMonitoring po, @Parameter(hidden = true) BindingResult bindingResult){
        if(bindingResult != null && bindingResult.hasErrors()){
    public BaseResponse<Boolean> update(@RequestBody @Parameter(description = "form表单json数据", required = true) @Valid PrFlowMonitoring po, @Parameter(hidden = true) BindingResult bindingResult) {
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        // 接收村编号(主键)
        Long villageId = po.getVillageid();
        /**
         * 获取5级行政区划信息
         */
        Map map_districts = Optional.ofNullable(flowMonitoringSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
        if(map_districts.size() <= 0) {
            return BaseResponseUtils.buildFail("区划信息有误");
        if (villageId != null) {
            /**
             * 获取5级行政区划信息
             */
            Map map_districts = Optional.ofNullable(flowMonitoringSv.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);
        int count;
        Date operateTime = new Date();
        po.setOperatedt(operateTime);
        po.setDeleted((byte)0);
        po.setDeleted((byte) 0);
        try {
            count = this.flowMonitoringSv.update(po);
        } catch (Exception e) {
            log.error("保存监测站异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
            return BaseResponseUtils.buildException(e.getMessage());
        }
        if(count <= 0){
            return BaseResponseUtils.buildFail(ProjectResultCode.UPDATE_FLOW_MONITORING_FAIL.getMessage()) ;
        }else{
            return BaseResponseUtils.buildSuccess(true) ;
        if (count <= 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.UPDATE_FLOW_MONITORING_FAIL.getMessage());
        } else {
            return BaseResponseUtils.buildSuccess(true);
        }
    }
    /**
     * 客户端请求得到所有监测站名字
     *
     * @return 所有监测站名字
     */
    @Operation(summary = "获得全部监测站", description = "返回全部监测站数据")
@@ -182,22 +195,23 @@
    })
    @GetMapping(path = "all")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<PrFlowMonitoring>>> all(){
    public BaseResponse<QueryResultVo<List<PrFlowMonitoring>>> all() {
        try {
            QueryResultVo<List<PrFlowMonitoring>> res = this.flowMonitoringSv.selectAll();
            if(res == null) {
            if (res == null) {
                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
            }else {
            } else {
                return BaseResponseUtils.buildSuccess(res);
            }
        } catch (Exception e) {
            log.error("查询监测站异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 得到一个监测站数据
     *
     * @return 一个监测站数据
     */
    @Operation(summary = "一个监测站", description = "得到一个监测站数据")
@@ -211,10 +225,10 @@
    })
    @GetMapping(path = "one/{id}")
    @SsoAop()
    public BaseResponse<PrFlowMonitoring> one(@PathVariable("id") Long id){
        if(this.flowMonitoringSv.selectById(id) == null) {
    public BaseResponse<PrFlowMonitoring> one(@PathVariable("id") Long id) {
        if (this.flowMonitoringSv.selectById(id) == null) {
            return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
        }else {
        } else {
            return BaseResponseUtils.buildSuccess(this.flowMonitoringSv.selectById(id));
        }
    }
@@ -230,19 +244,18 @@
    })
    @GetMapping(path = "getFlowMonitoring")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoFlowMonitoring>>> getFlowMonitoring(QueryVo vo){
    public BaseResponse<QueryResultVo<List<VoFlowMonitoring>>> getFlowMonitoring(QueryVo vo) {
        try {
            QueryResultVo<List<VoFlowMonitoring>> res = flowMonitoringSv.getPrFlowMonitorings(vo);
            if(res == null) {
            if (res == null) {
                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOW_MONITORINGS.getMessage());
            }
            return BaseResponseUtils.buildSuccess(res);
        } catch (Exception e) {
            log.error("获取监测站记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterCtrl.java
@@ -59,9 +59,9 @@
        PrFlowmeter prFlowmeter = DtoToFlowmeterPojo.INSTANCT.po2vo(po);
        Date operateTime = new Date();
        prFlowmeter.setOperatedt(operateTime);
        prFlowmeter.setOperateDt(operateTime);
        prFlowmeter.setDeleted((byte) 0);
        prFlowmeter.setReporttime(operateTime);
        prFlowmeter.setReportTime(operateTime);
        Integer rec = Optional.ofNullable(flowmeterSv.addFlowmeter(prFlowmeter)).orElse(0);
        if (rec == 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.ADD_FLOWMETER_FAIL.getMessage());
@@ -108,18 +108,41 @@
                            schema = @Schema(implementation = PrFlowmeter.class))}
            )
    })
    @GetMapping(path = "getFlowMeters", consumes = MediaType.APPLICATION_JSON_VALUE)
    @GetMapping(path = "getFlowMeters")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoFlowMeter>>> getFlowMeters(@RequestBody @Parameter(description = "查询form表单json数据", required = true) QueryVoFlowMeter vo) {
    public BaseResponse<QueryResultVo<List<VoFlowMeter>>> getFlowMeters(QueryVoFlowMeter vo) {
        try {
            QueryResultVo<List<VoFlowMeter>> res = flowmeterSv.getFlowMeters(vo);
            if (res == null) {
                return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOWMETERS.getMessage());
            if (res.itemTotal != null && res.itemTotal > 0) {
                return BaseResponseUtils.buildSuccess(res);
            }
            return BaseResponseUtils.buildSuccess(res);
            return BaseResponseUtils.buildFail(ProjectResultCode.NO_FLOWMETERS.getMessage());
        } catch (Exception e) {
            log.error("获取流量计记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    @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 = PrFlowmeter.class))}
            )
    })
    @GetMapping(path = "all")
    @SsoAop()
    public BaseResponse<List<PrFlowmeter>> getFlowMeterAll() {
        try {
            List<PrFlowmeter> res = flowmeterSv.getFlowMeterAll();
            if (res != null && res.size() > 0) {
                return BaseResponseUtils.buildSuccess(res);
            }
            return BaseResponseUtils.buildFail(ProjectResultCode.NO_DATA.getMessage());
        } catch (Exception e) {
            log.error("获取流量计数据异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/FlowmeterSv.java
@@ -60,16 +60,33 @@
     */
    public QueryResultVo<List<VoFlowMeter>> getFlowMeters(QueryVoFlowMeter queryVo){
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
        Integer itemTotal = prFlowmeterMapper.getRecordCountOfFlowMeterByOthers(params);
        QueryResultVo<List<VoFlowMeter>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = queryVo.pageSize ;
        rsVo.pageCurr = queryVo.pageCurr ;
        // 计算符合条件的记录数
        Integer itemTotal = prFlowmeterMapper.getRecordCountOfFlowMeterByOthers(params);
        rsVo.calculateAndSet(itemTotal.longValue(), params);
        rsVo.obj = prFlowmeterMapper.getFlowMeters(params);
        return rsVo ;
    }
    /**
     * 得到全部流量计
     * @return
     */
    public List<PrFlowmeter> getFlowMeterAll(){
        List<PrFlowmeter> all = prFlowmeterMapper.selectAll();
        return all;
    }
    /**
     * 给流量计表加监测站ID外键
     * @param
     * @return
     */
    public Integer flowmeterAddMonId(PrFlowmeter record){
        return prFlowmeterMapper.flowmeterAddMonId(record);
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowCtrl.java
@@ -5,6 +5,7 @@
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.ResultCodeMsg;
import com.dy.pipIrrGlobal.pojoPr.PrFlowMonitoring;
import com.dy.pipIrrGlobal.pojoPr.PrFlowmeter;
import com.dy.pipIrrGlobal.pojoPr.PrMonitoringFlowmeter;
import com.dy.pipIrrProject.result.ProjectResultCode;
import io.swagger.v3.oas.annotations.Operation;
@@ -85,8 +86,15 @@
        prMonitoringFlowmeter.setOperatedt(operateTime);
        prMonitoringFlowmeter.setOperatetype((byte) 1);
        PrFlowmeter flowmeter = new PrFlowmeter();
        flowmeter.setMonitoringId(po.getMonitoringId().toString());
        flowmeter.setId(po.getFlowmeterId());
        flowmeter.setOperator(po.getOperator());
        flowmeter.setOperateDt(operateTime);
        Integer shu = flowmeterSv.flowmeterAddMonId(flowmeter);
        Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
        if (rec == 0) {
        if (rec == 0 || shu == 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
        }
        return BaseResponseUtils.buildSuccess(true);
@@ -125,10 +133,17 @@
        PrMonitoringFlowmeter prMonitoringFlowmeter = DtoToMoniFlowPojo.INSTANCT.po2vo(po);
        Date operateTime = new Date();
        prMonitoringFlowmeter.setOperatedt(operateTime);
        prMonitoringFlowmeter.setOperatetype((byte) 1);
        prMonitoringFlowmeter.setOperatetype((byte) 2);
        PrFlowmeter flowmeter = new PrFlowmeter();
        flowmeter.setMonitoringId(null);
        flowmeter.setId(po.getFlowmeterId());
        flowmeter.setOperator(po.getOperator());
        flowmeter.setOperateDt(operateTime);
        Integer shu = flowmeterSv.flowmeterAddMonId(flowmeter);
        Integer rec = Optional.ofNullable(moniFlowSv.addRecord(prMonitoringFlowmeter)).orElse(0);
        if (rec == 0) {
        if (rec == 0 || shu == 0) {
            return BaseResponseUtils.buildFail(ProjectResultCode.MONITORING_FLOWMETER_BIND_FAIL.getMessage());
        }
        return BaseResponseUtils.buildSuccess(true);
@@ -151,7 +166,7 @@
    })
    @GetMapping(path = "bingRecords/{monitoringId}")
    @SsoAop()
    public BaseResponse<List<Map<String, Object>>> getBingRecordsByMonitoringId(@PathVariable("monitoringId") Long monitoringId) {
    public BaseResponse<List<Map<String, Object>>> getBingRecordsByMonitoringId(@PathVariable("monitoringId") String monitoringId) {
        try {
            List<Map<String, Object>> list = Optional.ofNullable(moniFlowSv.getBingRecordsByMonitoringId(monitoringId)).orElse(new ArrayList<>());
            if (list.size() <= 0) {
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/flowMonitoring/MoniFlowSv.java
@@ -47,7 +47,7 @@
     * @param monitoringId
     * @return  PrMonitoringFlowmeter
     * */
    public List<Map<String, Object>> getBingRecordsByMonitoringId(Long monitoringId){
    public List<Map<String, Object>> getBingRecordsByMonitoringId(String monitoringId){
        return prMonitoringFlowmeterMapper.getBingRecordsByMonitoringId(monitoringId);
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
@@ -63,6 +63,7 @@
    ADD_FLOWMETER_FAIL(60001, "流量计添加失败"),
    DELETE_FLOWMETER_FAIL(60002, "流量计删除失败"),
    NO_FLOWMETERS(60003, "没有符合条件流量计数据"),
    NO_DATA(60004, "没有找到流量计数据"),
    /**
     * 流量监测站、流量计关联
pipIrr-platform/pipIrr-web/pipIrr-web-webchat/pipIrr-web-webchat.iml
New file
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="web" name="Web">
      <configuration>
        <webroots />
        <sourceRoots>
          <root url="file://$MODULE_DIR$/src/main/java" />
          <root url="file://$MODULE_DIR$/src/main/resources" />
        </sourceRoots>
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java:0.2.12" level="project" />
    <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java-core:0.2.12" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.gson:gson:2.10.1" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.9.2" level="project" />
    <orderEntry type="library" name="Maven: com.squareup.okio:okio:2.8.0" level="project" />
    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22" level="project" />
    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.8.22" level="project" />
    <orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.16" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.httpcomponents.client5:httpclient5-fluent:5.1.3" level="project" />
    <orderEntry type="module" module-name="pipIrr-common" />
    <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.2" level="project" />
    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
    <orderEntry type="module" module-name="pipIrr-global" />
    <orderEntry type="library" name="Maven: com.alibaba:easyexcel:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:easyexcel-core:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:easyexcel-support:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
    <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
    <orderEntry type="library" name="Maven: org.ehcache:ehcache:3.2.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.33" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" />
    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.28" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.20" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-log4j2:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.20.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.20.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-jul:2.20.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.15.2" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.15.2" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.15.2" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" />
    <orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.11.2" level="project" />
    <orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.11.2" level="project" />
    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.11.2" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" />
    <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" />
    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" />
    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" />
    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-security:1.7.0" level="project" />
    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-common:1.7.0" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core:2.2.9" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.9" level="project" />
    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models:2.2.9" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:6.1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.1.2" level="project" />
    <orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.0.33" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.20" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.20" level="project" />
    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.3" level="project" />
    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.3" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:4.0.3" level="project" />
    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:4.1.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.3.2" level="project" />
    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.6" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.13" level="project" />
    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.1.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.1.3" level="project" />
    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: cglib:cglib:3.3.0" level="project" />
    <orderEntry type="library" name="Maven: org.ow2.asm:asm:7.1" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.40" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.40" level="project" />
    <orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.40" level="project" />
    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.5.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" />
    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" />
    <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" />
    <orderEntry type="library" name="Maven: org.apache.dubbo:dubbo:3.2.7" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.8.0" level="project" />
    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" />
    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.11" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:2.4.11" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.24.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.14.6" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.9.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:5.3.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.14.6" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:5.3.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:6.0.11" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:6.0.11" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.9.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
  </component>
</module>