浏览代码

计量结算模块

hym 3 年之前
父节点
当前提交
3a8dc2cedc
共有 14 个文件被更改,包括 1162 次插入0 次删除
  1. 4 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementRecordDto.java
  2. 6 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementRecordPageDto.java
  3. 4 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementSettlementDto.java
  4. 91 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementSettlementPageDto.java
  5. 4 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/WaterConsumptionUpdateDto.java
  6. 91 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeasurementRecordMapper.java
  7. 92 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeasurementSettlementMapper.java
  8. 87 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/MeasurementRecord.java
  9. 105 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/MeasurementSettlement.java
  10. 178 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeasurementRecordMapper.xml
  11. 205 0
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeasurementSettlementMapper.xml
  12. 91 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/MeasurementSettlementController.java
  13. 98 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/MeasurementSettlementService.java
  14. 106 0
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/MeasurementSettlementServiceImpl.java

+ 4 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementRecordDto.java

@@ -0,0 +1,4 @@
+package com.zcxk.rmcp.api.dto.measurementSettlement;
+
+public class MeasurementRecordDto {
+}

+ 6 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementRecordPageDto.java

@@ -0,0 +1,6 @@
+package com.zcxk.rmcp.api.dto.measurementSettlement;
+
+import com.zcxk.rmcp.api.dto.BasePageDto;
+
+public class MeasurementRecordPageDto extends BasePageDto {
+}

+ 4 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementSettlementDto.java

@@ -0,0 +1,4 @@
+package com.zcxk.rmcp.api.dto.measurementSettlement;
+
+public class MeasurementSettlementDto {
+}

+ 91 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/MeasurementSettlementPageDto.java

@@ -0,0 +1,91 @@
+package com.zcxk.rmcp.api.dto.measurementSettlement;
+
+import com.zcxk.rmcp.api.dto.BasePageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class MeasurementSettlementPageDto extends BasePageDto {
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    /**
+     * 计划名称
+     */
+    @ApiModelProperty(value = "计划名称")
+    private String planName;
+    /**
+     * 结算时间
+     */
+    @ApiModelProperty(value = "结算时间")
+    private Date settlementTime;
+    /**
+     * 公司id
+     */
+    @ApiModelProperty(value = "公司id")
+    private Integer companyOrgId;
+    /**
+     * 部门id
+     */
+    @ApiModelProperty(value = "部门id")
+    private Integer deptOrgId;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Integer communityId;
+    /**
+     * 结算表总数
+     */
+    @ApiModelProperty(value = "结算表总数")
+    private Integer totalWaterMeters;
+    /**
+     * 已审核水表数
+     */
+    @ApiModelProperty(value = "已审核水表数")
+    private Integer numberOfWaterMetersReviewed;
+    /**
+     * 账期
+     */
+    @ApiModelProperty(value = "账期")
+    private Date billingPeriod;
+    /**
+     * 结算周期
+     */
+    @ApiModelProperty(value = "结算周期")
+    private Integer billingCycle;
+    /**
+     * 计划状态 0 未生成计划,1已生成计划
+     */
+    @ApiModelProperty(value = "计划状态 0 未生成计划,1已生成计划")
+    private Integer planStatus;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateDate;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+}

+ 4 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/measurementSettlement/WaterConsumptionUpdateDto.java

@@ -0,0 +1,4 @@
+package com.zcxk.rmcp.api.dto.measurementSettlement;
+
+public class WaterConsumptionUpdateDto {
+}

+ 91 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeasurementRecordMapper.java

@@ -0,0 +1,91 @@
+package com.zcxk.rmcp.core.dao;
+
+
+import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementRecordDto;
+import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto;
+import com.zcxk.rmcp.api.dto.measurementSettlement.WaterConsumptionUpdateDto;
+import com.zcxk.rmcp.core.entity.MeasurementRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (MeasurementRecord)表数据库访问层
+ *
+ * @author hym
+ * @since 2021-07-22 14:27:45
+ */
+@Mapper
+public interface MeasurementRecordMapper {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    MeasurementRecord selectById(Long id);
+
+
+    /**
+     * 查询全部
+     *
+     * @return 对象列表
+     */
+    List<MeasurementRecord> selectAll();
+
+    /**
+     * 通过实体作为筛选条件查询
+     *
+     * @param measurementRecord 实例对象
+     * @return 对象列表
+     */
+    List<MeasurementRecordDto> selectList(MeasurementRecord measurementRecord);
+
+    /**
+     * 新增数据
+     *
+     * @param measurementRecord 实例对象
+     * @return 影响行数
+     */
+    int insert(MeasurementRecord measurementRecord);
+
+    /**
+     * 批量新增
+     *
+     * @param measurementRecords 实例对象的集合
+     * @return 影响行数
+     */
+    int batchInsert(@Param("measurementRecords") List<MeasurementRecord> measurementRecords);
+
+    /**
+     * 修改数据
+     *
+     * @param measurementRecord 实例对象
+     * @return 影响行数
+     */
+    int update(MeasurementRecord measurementRecord);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Long id);
+
+    /**
+     * 查询总数据数
+     *
+     * @return 数据总数
+     */
+    int count();
+
+
+    void auditWater(List<Integer> ids);
+
+    void auditAllWater(Integer companyId, Integer departmentId);
+
+    void modifyTheAmountOfWater(WaterConsumptionUpdateDto waterConsumptionUpdateDto);
+}

+ 92 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/MeasurementSettlementMapper.java

@@ -0,0 +1,92 @@
+package com.zcxk.rmcp.core.dao;
+
+
+import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto;
+import com.zcxk.rmcp.core.entity.MeasurementRecord;
+import com.zcxk.rmcp.core.entity.MeasurementSettlement;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (MeasurementSettlement)表数据库访问层
+ *
+ * @author hym
+ * @since 2021-07-22 14:14:51
+ */
+@Mapper
+public interface MeasurementSettlementMapper {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    MeasurementSettlement selectById(Integer id);
+
+
+    /**
+     * 查询全部
+     *
+     * @return 对象列表
+     */
+    List<MeasurementSettlement> selectAll();
+
+    /**
+     * 通过实体作为筛选条件查询
+     *
+     * @param measurementSettlement 实例对象
+     * @return 对象列表
+     */
+    List<MeasurementSettlementDto> selectList(MeasurementSettlement measurementSettlement);
+
+    /**
+     * 新增数据
+     *
+     * @param measurementSettlement 实例对象
+     * @return 影响行数
+     */
+    int insert(MeasurementSettlement measurementSettlement);
+
+    /**
+     * 批量新增
+     *
+     * @param measurementSettlements 实例对象的集合
+     * @return 影响行数
+     */
+    int batchInsert(@Param("measurementSettlements") List<MeasurementSettlement> measurementSettlements);
+
+    /**
+     * 修改数据
+     *
+     * @param measurementSettlement 实例对象
+     * @return 影响行数
+     */
+    int update(MeasurementSettlement measurementSettlement);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Integer id);
+
+    /**
+     * 查询总数据数
+     *
+     * @return 数据总数
+     */
+    int count();
+
+
+    List<MeasurementSettlementDto> selectRecordList(MeasurementRecord measurementRecord);
+
+    void deletePlan(List<Integer> ids);
+
+    void deleteAll(Integer companyId, Integer departmentId);
+
+    void setBillingPeriod(MeasurementSettlementDto measurementSettlementDto);
+}

+ 87 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/MeasurementRecord.java

@@ -0,0 +1,87 @@
+package com.zcxk.rmcp.core.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (MeasurementRecord)实体类
+ *
+ * @author hym
+ * @since 2021-07-22 14:27:45
+ */
+@Data
+@ApiModel
+public class MeasurementRecord implements Serializable {
+    private static final long serialVersionUID = 393713997278429274L;
+    @ApiModelProperty(value = "")
+    private Long id;
+    /**
+     * 水表电子号
+     */
+    @ApiModelProperty(value = "水表电子号")
+    private String meterNo;
+    /**
+     * 水表档案号
+     */
+    @ApiModelProperty(value = "水表档案号")
+    private String fileMeterNo;
+    /**
+     * 审核状态 0:未审核,1已审核
+     */
+    @ApiModelProperty(value = "审核状态 0:未审核,1已审核")
+    private String approvalStatus;
+    /**
+     * 上期读数
+     */
+    @ApiModelProperty(value = "上期读数")
+    private String lastReading;
+    /**
+     * 本期读数
+     */
+    @ApiModelProperty(value = "本期读数")
+    private String currentReading;
+    /**
+     * 位置
+     */
+    @ApiModelProperty(value = "位置")
+    private String location;
+    /**
+     * 计划id
+     */
+    @ApiModelProperty(value = "计划id")
+    private Integer planId;
+    /**
+     * 用水量
+     */
+    @ApiModelProperty(value = "用水量")
+    private Double waterConsumption;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateDate;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+    /**
+     * 删除标识
+     */
+    @ApiModelProperty(value = "删除标识")
+    private Integer status;
+}

+ 105 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/entity/MeasurementSettlement.java

@@ -0,0 +1,105 @@
+package com.zcxk.rmcp.core.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (MeasurementSettlement)实体类
+ *
+ * @author hym
+ * @since 2021-07-22 14:14:51
+ */
+@Data
+@ApiModel
+public class MeasurementSettlement implements Serializable {
+    private static final long serialVersionUID = 124297258110426220L;
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    /**
+     * 计划名称
+     */
+    @ApiModelProperty(value = "计划名称")
+    private String planName;
+    /**
+     * 结算时间
+     */
+    @ApiModelProperty(value = "结算时间")
+    private Date settlementTime;
+    /**
+     * 公司id
+     */
+    @ApiModelProperty(value = "公司id")
+    private Integer companyOrgId;
+    /**
+     * 部门id
+     */
+    @ApiModelProperty(value = "部门id")
+    private Integer deptOrgId;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Integer communityId;
+    /**
+     * 结算表总数
+     */
+    @ApiModelProperty(value = "结算表总数")
+    private Integer totalWaterMeters;
+    /**
+     * 已审核水表数
+     */
+    @ApiModelProperty(value = "已审核水表数")
+    private Integer numberOfWaterMetersReviewed;
+    /**
+     * 账期
+     */
+    @ApiModelProperty(value = "账期")
+    private Date billingPeriod;
+    /**
+     * 结算周期
+     */
+    @ApiModelProperty(value = "结算周期")
+    private Integer billingCycle;
+    /**
+     * 计划状态 0 未生成计划,1已生成计划
+     */
+    @ApiModelProperty(value = "计划状态 0 未生成计划,1已生成计划")
+    private Integer planStatus;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateDate;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    private String status;
+    /**
+     * 定时任务id
+     */
+    @ApiModelProperty(value = "定时任务id")
+    private Long taskId;
+}

+ 178 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeasurementRecordMapper.xml

@@ -0,0 +1,178 @@
+<?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.zcxk.rmcp.core.dao.MeasurementRecordMapper">
+    <!-- 结果集 -->
+    <resultMap type="com.zcxk.rmcp.core.entity.MeasurementRecord" id="MeasurementRecordMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="meterNo" column="meter_no" jdbcType="VARCHAR"/>
+        <result property="fileMeterNo" column="file_meter_no" jdbcType="VARCHAR"/>
+        <result property="approvalStatus" column="approval_status" jdbcType="VARCHAR"/>
+        <result property="lastReading" column="last_reading" jdbcType="VARCHAR"/>
+        <result property="currentReading" column="current_reading" jdbcType="VARCHAR"/>
+        <result property="location" column="location" jdbcType="VARCHAR"/>
+        <result property="planId" column="plan_id" jdbcType="INTEGER"/>
+        <result property="waterConsumption" column="water_consumption" jdbcType="NUMERIC"/>
+        <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+        <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+        <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 基本字段 -->
+    <sql id="Base_Column_List">
+        id, meter_no, file_meter_no, approval_status, last_reading, current_reading, location, plan_id, water_consumption, create_date, update_date, create_by, update_by, status    </sql>
+
+    <!-- 查询单个 -->
+    <select id="selectById" resultMap="MeasurementRecordMap">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_record
+        where id = #{id}
+    </select>
+
+
+    <!-- 查询全部 -->
+    <select id="selectAll" resultMap="MeasurementRecordMap">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_record
+    </select>
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectList" resultType="com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementRecordDto">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_record
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="meterNo != null and meterNo != ''">
+                and meter_no = #{meterNo}
+            </if>
+            <if test="fileMeterNo != null and fileMeterNo != ''">
+                and file_meter_no = #{fileMeterNo}
+            </if>
+            <if test="approvalStatus != null and approvalStatus != ''">
+                and approval_status = #{approvalStatus}
+            </if>
+            <if test="lastReading != null and lastReading != ''">
+                and last_reading = #{lastReading}
+            </if>
+            <if test="currentReading != null and currentReading != ''">
+                and current_reading = #{currentReading}
+            </if>
+            <if test="location != null and location != ''">
+                and location = #{location}
+            </if>
+            <if test="planId != null">
+                and plan_id = #{planId}
+            </if>
+            <if test="waterConsumption != null">
+                and water_consumption = #{waterConsumption}
+            </if>
+            <if test="createDate != null">
+                and create_date = #{createDate}
+            </if>
+            <if test="updateDate != null">
+                and update_date = #{updateDate}
+            </if>
+            <if test="createBy != null and createBy != ''">
+                and create_by = #{createBy}
+            </if>
+            <if test="updateBy != null and updateBy != ''">
+                and update_by = #{updateBy}
+            </if>
+            <if test="status != null">
+                and status = #{status}
+            </if>
+        </where>
+    </select>
+
+    <!-- 新增所有列 -->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        insert into rmcp_measurement_record(id, meter_no, file_meter_no, approval_status, last_reading, current_reading,
+                                            location, plan_id, water_consumption, create_date, update_date, create_by,
+                                            update_by, status)
+        values (#{id}, #{meterNo}, #{fileMeterNo}, #{approvalStatus}, #{lastReading}, #{currentReading}, #{location},
+                #{planId}, #{waterConsumption}, #{createDate}, #{updateDate}, #{createBy}, #{updateBy}, #{status})
+    </insert>
+
+    <!-- 批量新增 -->
+    <insert id="batchInsert">
+        insert into rmcp_measurement_record(id, meter_no, file_meter_no, approval_status, last_reading, current_reading,
+        location, plan_id, water_consumption, create_date, update_date, create_by, update_by, status)
+        values
+        <foreach collection="measurementRecords" item="item" index="index" separator=",">
+            (
+            #{item.id}, #{item.meterNo}, #{item.fileMeterNo}, #{item.approvalStatus}, #{item.lastReading},
+            #{item.currentReading}, #{item.location}, #{item.planId}, #{item.waterConsumption}, #{item.createDate},
+            #{item.updateDate}, #{item.createBy}, #{item.updateBy}, #{item.status} )
+        </foreach>
+    </insert>
+
+    <!-- 通过主键修改数据 -->
+    <update id="update">
+        update rmcp_measurement_record
+        <set>
+            <if test="meterNo != null and meterNo != ''">
+                meter_no = #{meterNo},
+            </if>
+            <if test="fileMeterNo != null and fileMeterNo != ''">
+                file_meter_no = #{fileMeterNo},
+            </if>
+            <if test="approvalStatus != null and approvalStatus != ''">
+                approval_status = #{approvalStatus},
+            </if>
+            <if test="lastReading != null and lastReading != ''">
+                last_reading = #{lastReading},
+            </if>
+            <if test="currentReading != null and currentReading != ''">
+                current_reading = #{currentReading},
+            </if>
+            <if test="location != null and location != ''">
+                location = #{location},
+            </if>
+            <if test="planId != null">
+                plan_id = #{planId},
+            </if>
+            <if test="waterConsumption != null">
+                water_consumption = #{waterConsumption},
+            </if>
+            <if test="createDate != null">
+                create_date = #{createDate},
+            </if>
+            <if test="updateDate != null">
+                update_date = #{updateDate},
+            </if>
+            <if test="createBy != null and createBy != ''">
+                create_by = #{createBy},
+            </if>
+            <if test="updateBy != null and updateBy != ''">
+                update_by = #{updateBy},
+            </if>
+            <if test="status != null">
+                status = #{status},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+    <update id="auditWater"></update>
+    <update id="auditAllWater"></update>
+    <update id="modifyTheAmountOfWater"></update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete
+        from rmcp_measurement_record
+        where id = #{id}
+    </delete>
+
+    <!-- 总数 -->
+    <select id="count" resultType="int">
+        select count(*)
+        from rmcp_measurement_record
+    </select>
+
+</mapper>

+ 205 - 0
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/MeasurementSettlementMapper.xml

@@ -0,0 +1,205 @@
+<?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.zcxk.rmcp.core.dao.MeasurementSettlementMapper">
+    <!-- 结果集 -->
+    <resultMap type="com.zcxk.rmcp.core.entity.MeasurementSettlement" id="MeasurementSettlementMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="planName" column="plan_name" jdbcType="VARCHAR"/>
+        <result property="settlementTime" column="settlement_time" jdbcType="TIMESTAMP"/>
+        <result property="companyOrgId" column="company_org_id" jdbcType="INTEGER"/>
+        <result property="deptOrgId" column="dept_org_id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="totalWaterMeters" column="total_water_meters" jdbcType="INTEGER"/>
+        <result property="numberOfWaterMetersReviewed" column="number_of_water_meters_reviewed" jdbcType="INTEGER"/>
+        <result property="billingPeriod" column="billing_period" jdbcType="TIMESTAMP"/>
+        <result property="billingCycle" column="billing_cycle" jdbcType="INTEGER"/>
+        <result property="planStatus" column="plan_status" jdbcType="INTEGER"/>
+        <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+        <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+        <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="VARCHAR"/>
+        <result property="taskId" column="task_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 基本字段 -->
+    <sql id="Base_Column_List">
+        id, plan_name, settlement_time, company_org_id, dept_org_id, community_id, total_water_meters, number_of_water_meters_reviewed, billing_period, billing_cycle, plan_status, create_date, update_date, create_by, update_by, status, task_id    </sql>
+
+    <!-- 查询单个 -->
+    <select id="selectById" resultMap="MeasurementSettlementMap">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_settlement
+        where id = #{id}
+    </select>
+
+
+    <!-- 查询全部 -->
+    <select id="selectAll" resultMap="MeasurementSettlementMap">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_settlement
+    </select>
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectList" resultType="com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto">
+        select
+        <include refid="Base_Column_List"/>
+        from rmcp_measurement_settlement
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="planName != null and planName != ''">
+                and plan_name = #{planName}
+            </if>
+            <if test="settlementTime != null">
+                and settlement_time = #{settlementTime}
+            </if>
+            <if test="companyOrgId != null">
+                and company_org_id = #{companyOrgId}
+            </if>
+            <if test="deptOrgId != null">
+                and dept_org_id = #{deptOrgId}
+            </if>
+            <if test="communityId != null">
+                and community_id = #{communityId}
+            </if>
+            <if test="totalWaterMeters != null">
+                and total_water_meters = #{totalWaterMeters}
+            </if>
+            <if test="numberOfWaterMetersReviewed != null">
+                and number_of_water_meters_reviewed = #{numberOfWaterMetersReviewed}
+            </if>
+            <if test="billingPeriod != null">
+                and billing_period = #{billingPeriod}
+            </if>
+            <if test="billingCycle != null">
+                and billing_cycle = #{billingCycle}
+            </if>
+            <if test="planStatus != null">
+                and plan_status = #{planStatus}
+            </if>
+            <if test="createDate != null">
+                and create_date = #{createDate}
+            </if>
+            <if test="updateDate != null">
+                and update_date = #{updateDate}
+            </if>
+            <if test="createBy != null and createBy != ''">
+                and create_by = #{createBy}
+            </if>
+            <if test="updateBy != null and updateBy != ''">
+                and update_by = #{updateBy}
+            </if>
+            <if test="status != null and status != ''">
+                and status = #{status}
+            </if>
+            <if test="taskId != null">
+                and task_id = #{taskId}
+            </if>
+        </where>
+    </select>
+
+    <!-- 新增所有列 -->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        insert into rmcp_measurement_settlement(id, plan_name, settlement_time, company_org_id, dept_org_id,
+                                                community_id, total_water_meters, number_of_water_meters_reviewed,
+                                                billing_period, billing_cycle, plan_status, create_date, update_date,
+                                                create_by, update_by, status, task_id)
+        values (#{id}, #{planName}, #{settlementTime}, #{companyOrgId}, #{deptOrgId}, #{communityId},
+                #{totalWaterMeters}, #{numberOfWaterMetersReviewed}, #{billingPeriod}, #{billingCycle}, #{planStatus},
+                #{createDate}, #{updateDate}, #{createBy}, #{updateBy}, #{status}, #{taskId})
+    </insert>
+
+    <!-- 批量新增 -->
+    <insert id="batchInsert">
+        insert into rmcp_measurement_settlement(id, plan_name, settlement_time, company_org_id, dept_org_id,
+        community_id, total_water_meters, number_of_water_meters_reviewed, billing_period, billing_cycle, plan_status,
+        create_date, update_date, create_by, update_by, status, task_id)
+        values
+        <foreach collection="measurementSettlements" item="item" index="index" separator=",">
+            (
+            #{item.id}, #{item.planName}, #{item.settlementTime}, #{item.companyOrgId}, #{item.deptOrgId},
+            #{item.communityId}, #{item.totalWaterMeters}, #{item.numberOfWaterMetersReviewed}, #{item.billingPeriod},
+            #{item.billingCycle}, #{item.planStatus}, #{item.createDate}, #{item.updateDate}, #{item.createBy},
+            #{item.updateBy}, #{item.status}, #{item.taskId} )
+        </foreach>
+    </insert>
+
+    <!-- 通过主键修改数据 -->
+    <update id="update">
+        update rmcp_measurement_settlement
+        <set>
+            <if test="planName != null and planName != ''">
+                plan_name = #{planName},
+            </if>
+            <if test="settlementTime != null">
+                settlement_time = #{settlementTime},
+            </if>
+            <if test="companyOrgId != null">
+                company_org_id = #{companyOrgId},
+            </if>
+            <if test="deptOrgId != null">
+                dept_org_id = #{deptOrgId},
+            </if>
+            <if test="communityId != null">
+                community_id = #{communityId},
+            </if>
+            <if test="totalWaterMeters != null">
+                total_water_meters = #{totalWaterMeters},
+            </if>
+            <if test="numberOfWaterMetersReviewed != null">
+                number_of_water_meters_reviewed = #{numberOfWaterMetersReviewed},
+            </if>
+            <if test="billingPeriod != null">
+                billing_period = #{billingPeriod},
+            </if>
+            <if test="billingCycle != null">
+                billing_cycle = #{billingCycle},
+            </if>
+            <if test="planStatus != null">
+                plan_status = #{planStatus},
+            </if>
+            <if test="createDate != null">
+                create_date = #{createDate},
+            </if>
+            <if test="updateDate != null">
+                update_date = #{updateDate},
+            </if>
+            <if test="createBy != null and createBy != ''">
+                create_by = #{createBy},
+            </if>
+            <if test="updateBy != null and updateBy != ''">
+                update_by = #{updateBy},
+            </if>
+            <if test="status != null and status != ''">
+                status = #{status},
+            </if>
+            <if test="taskId != null">
+                task_id = #{taskId},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+    <update id="setBillingPeriod"></update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete
+        from rmcp_measurement_settlement
+        where id = #{id}
+    </delete>
+    <delete id="deletePlan"></delete>
+    <delete id="deleteAll"></delete>
+
+    <!-- 总数 -->
+    <select id="count" resultType="int">
+        select count(*)
+        from rmcp_measurement_settlement
+    </select>
+
+    <select id="selectRecordList"
+            resultType="com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto"></select>
+</mapper>

+ 91 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/MeasurementSettlementController.java

@@ -0,0 +1,91 @@
+package com.zcxk.rmcp.web.controller;
+
+import com.zcxk.core.common.pojo.AjaxMessage;
+import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.measurementSettlement.*;
+import com.zcxk.rmcp.api.dto.meterReplace.MeterReplacePageDto;
+import com.zcxk.rmcp.api.vo.MeterReplaceVo;
+import com.zcxk.rmcp.web.service.MeasurementSettlementService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@Controller
+@ResponseBody
+@RequestMapping("measurement/settlement")
+@Api(tags = "计量结算")
+public class MeasurementSettlementController {
+    @Autowired
+    private MeasurementSettlementService measurementSettlementService;
+
+    @RequestMapping(value = "/page", method = RequestMethod.POST)
+    @ApiOperation(value = "分页查询结算计划")
+    public AjaxMessage<Pagination<MeasurementSettlementDto>> pageMeasurementSettlement(@RequestBody @Valid MeasurementSettlementPageDto pageDto) {
+        return AjaxMessage.success(measurementSettlementService.pageMeasurementSettlement(pageDto));
+    }
+    @RequestMapping(value = "/page/record", method = RequestMethod.POST)
+    @ApiOperation(value = "分页查询结算记录")
+    public AjaxMessage<Pagination<MeasurementSettlementDto>> pageMeasurementSettlementRecord(@RequestBody @Valid MeasurementSettlementPageDto pageDto) {
+        return AjaxMessage.success(measurementSettlementService.pageMeasurementSettlementRecord(pageDto));
+    }
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    @ApiOperation(value = "新增结算计划")
+    public AjaxMessage<Void> addPlan(@RequestBody @Valid MeasurementSettlementDto measurementSettlementDto) {
+        measurementSettlementService.addPlan(measurementSettlementDto);
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    @ApiOperation(value = "修改结算计划")
+    public AjaxMessage<Void> updatePlan(@RequestBody @Valid MeasurementSettlementDto measurementSettlementDto) {
+        measurementSettlementService.updatePlan(measurementSettlementDto);
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ApiOperation(value = "删除结算计划")
+    public AjaxMessage<Void> deletePlan(@RequestBody List<Integer> ids) {
+        measurementSettlementService.deletePlan(ids);
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/deleteAll", method = RequestMethod.POST)
+    @ApiOperation(value = "删除所有结算计划")
+    public AjaxMessage<Void> deleteAllPlan() {
+        measurementSettlementService.deleteAll();
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/page/detail", method = RequestMethod.POST)
+    @ApiOperation(value = "查询计划详细记录")
+    public AjaxMessage<Pagination<MeasurementRecordDto>> pageMeasurementRecord(@RequestBody @Valid MeasurementRecordPageDto pageDto) {
+        return AjaxMessage.success(measurementSettlementService.pageMeasurementRecord(pageDto));
+    }
+
+    @RequestMapping(value = "/audit", method = RequestMethod.POST)
+    @ApiOperation(value = "审核水量")
+    public AjaxMessage<Void> auditWater(@RequestBody List<Integer> ids) {
+        measurementSettlementService.auditWater(ids);
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/auditAll", method = RequestMethod.POST)
+    @ApiOperation(value = "审核所有水量")
+    public AjaxMessage<Void> auditAllWater() {
+        measurementSettlementService.auditAllWater();
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/modifyTheAmountOfWater", method = RequestMethod.POST)
+    @ApiOperation(value = "修改水量")
+    public AjaxMessage<Void> modifyTheAmountOfWater(@RequestBody @Valid WaterConsumptionUpdateDto waterConsumptionUpdateDto) {
+        measurementSettlementService.modifyTheAmountOfWater(waterConsumptionUpdateDto);
+        return AjaxMessage.success();
+    }
+    @RequestMapping(value = "/setBillingPeriod", method = RequestMethod.POST)
+    @ApiOperation(value = "设置账期")
+    public AjaxMessage<Void> setBillingPeriod(@RequestBody @Valid MeasurementSettlementDto measurementSettlementDto) {
+        measurementSettlementService.setBillingPeriod(measurementSettlementDto);
+        return AjaxMessage.success();
+    }
+}

+ 98 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/MeasurementSettlementService.java

@@ -0,0 +1,98 @@
+package com.zcxk.rmcp.web.service;
+
+import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.measurementSettlement.*;
+
+import java.util.List;
+
+
+public interface MeasurementSettlementService {
+    /**
+     *
+     * @description 结算计划查询(分页)
+     * @author hym
+     * @updateTime 2021/7/22 15:48
+     * @throws
+     */
+    Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto);
+    /**
+     *
+     * @description 结算记录查询(分页)
+     * @author hym
+     * @updateTime 2021/7/22 15:48
+     * @throws
+     */
+    Pagination<MeasurementSettlementDto> pageMeasurementSettlementRecord(MeasurementSettlementPageDto pageDto);
+    /**
+     *
+     * @description 添加计划
+     * @author hym
+     * @updateTime 2021/7/22 16:04
+     * @throws
+     */
+    void addPlan(MeasurementSettlementDto measurementSettlementDto);
+    /**
+     *
+     * @description 修改计划
+     * @author hym
+     * @updateTime 2021/7/22 16:04
+     * @throws
+     */
+    void updatePlan(MeasurementSettlementDto measurementSettlementDto);
+    /**
+     *
+     * @description 删除计划
+     * @author hym
+     * @updateTime 2021/7/22 16:04
+     * @throws
+     */
+    void deletePlan(List<Integer> ids);
+    /**
+     *
+     * @description 删除所有计划
+     * @author hym
+     * @updateTime 2021/7/22 16:05
+     * @throws
+     */
+    void deleteAll();
+    /**
+     *
+     * @description 计划详细查询
+     * @author hym
+     * @updateTime 2021/7/22 16:05
+     * @throws
+     */
+    Pagination<MeasurementRecordDto> pageMeasurementRecord(MeasurementRecordPageDto pageDto);
+    /**
+     *
+     * @description 审核用水量
+     * @author hym
+     * @updateTime 2021/7/22 16:05
+     * @throws
+     */
+    void auditWater(List<Integer> ids);
+    /**
+     *
+     * @description 审核所有用数量
+     * @author hym
+     * @updateTime 2021/7/22 16:06
+     * @throws
+     */
+    void auditAllWater();
+    /**
+     *
+     * @description 更改用水量
+     * @author hym
+     * @updateTime 2021/7/22 16:06
+     * @throws
+     */
+    void modifyTheAmountOfWater(WaterConsumptionUpdateDto waterConsumptionUpdateDto);
+    /**
+     *
+     * @description 设置账期
+     * @author hym
+     * @updateTime 2021/7/22 16:06
+     * @throws
+     */
+    void setBillingPeriod(MeasurementSettlementDto measurementSettlementDto);
+}

+ 106 - 0
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/MeasurementSettlementServiceImpl.java

@@ -0,0 +1,106 @@
+package com.zcxk.rmcp.web.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.zcxk.core.common.pojo.LoginUser;
+import com.zcxk.core.common.util.BeanCopyUtils;
+import com.zcxk.core.common.util.UserUtil;
+import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.measurementSettlement.*;
+import com.zcxk.rmcp.core.dao.MeasurementRecordMapper;
+import com.zcxk.rmcp.core.dao.MeasurementSettlementMapper;
+import com.zcxk.rmcp.core.entity.MeasurementRecord;
+import com.zcxk.rmcp.core.entity.MeasurementSettlement;
+import com.zcxk.rmcp.web.service.MeasurementSettlementService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.List;
+@Service
+public class MeasurementSettlementServiceImpl implements MeasurementSettlementService {
+    @Resource
+    private MeasurementRecordMapper measurementRecordMapper;
+    @Resource
+    private MeasurementSettlementMapper measurementSettlementMapper;
+
+    @Override
+    public Pagination<MeasurementSettlementDto> pageMeasurementSettlement(MeasurementSettlementPageDto pageDto) {
+        MeasurementSettlement measurementSettlement=new MeasurementSettlement();
+        BeanCopyUtils.copyProperties(pageDto, measurementSettlement, MeasurementSettlementDto.class);
+        PageHelper.startPage(pageDto.getPageNum(), pageDto.getPageSize());
+        List<MeasurementSettlementDto> measurementRecords = measurementSettlementMapper.selectList(measurementSettlement);
+        return setReturn(measurementRecords);
+
+    }
+    private Pagination setReturn(List list){
+        if (CollectionUtils.isEmpty(list)){
+            return new Pagination<>();
+        }
+        return new Pagination<>(list);
+    }
+    @Override
+    public Pagination<MeasurementSettlementDto> pageMeasurementSettlementRecord(MeasurementSettlementPageDto pageDto) {
+
+        MeasurementRecord measurementRecord=new MeasurementRecord();
+        BeanCopyUtils.copyProperties(pageDto, measurementRecord, MeasurementSettlementDto.class);
+        PageHelper.startPage(pageDto.getPageNum(), pageDto.getPageSize());
+        List<MeasurementSettlementDto> measurementRecords = measurementSettlementMapper.selectRecordList(measurementRecord);
+        return setReturn(measurementRecords);
+    }
+
+    @Override
+    public void addPlan(MeasurementSettlementDto measurementSettlementDto) {
+        MeasurementSettlement measurementSettlement=new MeasurementSettlement();
+        BeanCopyUtils.copyProperties(measurementSettlementDto, measurementSettlement, MeasurementSettlementDto.class);
+        measurementSettlementMapper.insert(measurementSettlement);
+    }
+
+    @Override
+    public void updatePlan(MeasurementSettlementDto measurementSettlementDto) {
+        MeasurementSettlement measurementSettlement=new MeasurementSettlement();
+        BeanCopyUtils.copyProperties(measurementSettlementDto, measurementSettlement, MeasurementSettlementDto.class);
+        measurementSettlementMapper.update(measurementSettlement);
+    }
+
+    @Override
+    public void deletePlan(List<Integer> ids) {
+        measurementSettlementMapper.deletePlan(ids);
+    }
+
+    @Override
+    public void deleteAll() {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        measurementSettlementMapper.deleteAll(currentUser.getCompanyId(),currentUser.getDepartmentId());
+    }
+
+
+    @Override
+    public Pagination<MeasurementRecordDto> pageMeasurementRecord(MeasurementRecordPageDto pageDto) {
+        MeasurementRecord measurementRecord=new MeasurementRecord();
+        BeanCopyUtils.copyProperties(pageDto, measurementRecord, MeasurementRecord.class);
+        PageHelper.startPage(pageDto.getPageNum(), pageDto.getPageSize());
+        List<MeasurementRecordDto> measurementSettlementDtos = measurementRecordMapper.selectList(measurementRecord);
+        return setReturn(measurementSettlementDtos);
+    }
+
+    @Override
+    public void auditWater(List<Integer> ids) {
+        measurementRecordMapper.auditWater(ids);
+    }
+
+    @Override
+    public void auditAllWater() {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        measurementRecordMapper.auditAllWater(currentUser.getCompanyId(),currentUser.getDepartmentId());
+    }
+
+    @Override
+    public void modifyTheAmountOfWater(WaterConsumptionUpdateDto waterConsumptionUpdateDto) {
+        measurementRecordMapper.modifyTheAmountOfWater(waterConsumptionUpdateDto);
+    }
+
+    @Override
+    public void setBillingPeriod(MeasurementSettlementDto measurementSettlementDto) {
+        measurementSettlementMapper.setBillingPeriod(measurementSettlementDto);
+    }
+}