Browse Source

Merge branch '20210223' of http://114.135.61.188:53000/UIMS/Code into 20210223

wangbo 3 years ago
parent
commit
dca18d4d77

+ 7 - 1
readme.md

@@ -249,4 +249,10 @@ CREATE TABLE `uims_ver_manage` (
 
 
 
-=========已升级到正式环境20210527==================================================================================
+=========已升级到正式环境20210527==================================================================================
+## sms 调度数据库
+ALTER TABLE sms_water_property ADD TENANT_ID varchar(100) null COMMENT '租户标识'
+,ADD COMPANY_ORG_ID varchar(11) null COMMENT '所属公司'
+,ADD STATUS smallint(6) null COMMENT '数据删除标记';
+ALTER TABLE sms_month_revenue ADD GENERAL_USER_USAGE_RECEIVED decimal(18,4) null COMMENT '普通用户实收金额',
+ADD BIG_USER_USAGE_RECEIVED decimal(18,4) null COMMENT '大用户实收金额' ;

+ 110 - 0
sms_water/src/main/java/com/huaxu/controller/RevenueController.java

@@ -6,6 +6,7 @@ import com.huaxu.common.StringUtils;
 import com.huaxu.dto.*;
 import com.huaxu.entity.AlarmSetting;
 import com.huaxu.entity.MonthRevenueEntity;
+import com.huaxu.entity.MonthSellwaterEntity;
 import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.LoginUser;
@@ -107,11 +108,120 @@ public class RevenueController {
         }
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
+    /**
+     * 同步水表数量
+     *
+     * @return
+     */
     @RequestMapping(value = "syncMeterCount", method = RequestMethod.GET)
     @ApiOperation(value = "同步水表数量")
     public AjaxMessage<Integer> syncMeterCount() {
         revenueService.syncMeterCount();
         return new AjaxMessage<>(ResultStatus.OK);
     }
+    /**
+     * 新增营收数据
+     *
+     * @return
+     */
+    @RequestMapping(value = "addRevenue", method = RequestMethod.POST)
+    @ApiOperation(value = "新增营收数据")
+    public AjaxMessage<Integer> addRevenue(
+            @ApiParam(value = "营收数据", required = true) @RequestBody MonthRevenueDto monthRevenueDto) {
+        try{
+            LoginUser loginUser = UserUtil.getCurrentUser();
+            //插入营收数据
+            monthRevenueDto.setCreateBy(loginUser.getUsername());
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+            monthRevenueDto.setCollectDate(sdf.parse(monthRevenueDto.getCollectDateString()));
+            monthRevenueDto.setTenantId(loginUser.getTenantId());
+            convertWRevenue(monthRevenueDto);
+            revenueService.insert(monthRevenueDto);
+            //插入售水数据
+            for (MonthSellwaterEntity entity : monthRevenueDto.getMonthSellList()) {
+                entity.setTenantId(loginUser.getTenantId());
+                entity.setCreateBy(loginUser.getUsername());
+                entity.setCompanyOrgId(monthRevenueDto.getCompanyOrgId());
+                entity.setCollectDate(monthRevenueDto.getCollectDate());
+                if(entity.getWaterUsage() != null){
+                    entity.setWaterUsage(entity.getWaterUsage()/10000);
+                }
+                revenueService.insertSellWater(entity);
+            }
+            return new AjaxMessage<>(ResultStatus.OK);
+        }catch (Exception e){
+            return new AjaxMessage<>(ResultStatus.ERROR);
+        }
 
+    }
+    /**
+     * 修改营收数据
+     *
+     * @return
+     */
+    @RequestMapping(value = "updateRevenue", method = RequestMethod.POST)
+    @ApiOperation(value = "修改营收数据")
+    public AjaxMessage<Integer> updateRevenue(
+            @ApiParam(value = "营收数据", required = true) @RequestBody MonthRevenueDto monthRevenueDto) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        //修改营收数据
+        monthRevenueDto.setUpdateBy(loginUser.getUsername());
+        convertWRevenue(monthRevenueDto);
+        revenueService.updateRevenue(monthRevenueDto);
+        //修改售水数据
+        for (MonthSellwaterEntity entity : monthRevenueDto.getMonthSellList()) {
+            entity.setUpdateBy(loginUser.getUsername());
+            if(entity.getWaterUsage() != null){
+                entity.setWaterUsage(entity.getWaterUsage()/10000);
+            }
+            if(entity.getId() == null){
+                revenueService.insertSellWater(entity);
+            }else{
+                revenueService.updateSellWater(entity);
+            }
+        }
+        return new AjaxMessage<>(ResultStatus.OK);
+    }
+    /**
+     * 将营收数据转换成万
+     *
+     */
+    public void convertWRevenue(MonthRevenueDto monthRevenueDto){
+        if(monthRevenueDto.getBigUserUsage() != null){
+            monthRevenueDto.setBigUserUsage(monthRevenueDto.getBigUserUsage()/10000);
+        }
+        if(monthRevenueDto.getGeneralUserUsage() != null){
+            monthRevenueDto.setGeneralUserUsage(monthRevenueDto.getGeneralUserUsage()/10000);
+        }
+        if(monthRevenueDto.getReceivableTotalAmount() != null){
+            monthRevenueDto.setReceivableTotalAmount(monthRevenueDto.getReceivableTotalAmount()/10000);
+        }
+        if(monthRevenueDto.getBigUserUsageReceived() != null){
+            monthRevenueDto.setBigUserUsageReceived(monthRevenueDto.getBigUserUsageReceived()/10000);
+        }
+        if(monthRevenueDto.getGeneralUserUsageReceived() != null){
+            monthRevenueDto.setGeneralUserUsageReceived(monthRevenueDto.getGeneralUserUsageReceived()/10000);
+        }
+        if(monthRevenueDto.getReceivedTotalAmount() != null){
+            monthRevenueDto.setReceivedTotalAmount(monthRevenueDto.getReceivedTotalAmount()/10000);
+        }
+    }
+    /**
+     * 查询营收数据列表
+     *
+     * @return
+     */
+    @RequestMapping(value = "selectList", method = RequestMethod.GET)
+    @ApiOperation(value = "查询营收数据列表")
+    public AjaxMessage<List<MonthRevenueDto>> selectList(
+            @ApiParam(value = "公司机构id", required = true)@RequestParam Integer companyOrgId,
+            @ApiParam(value = "开始日期(yyyy-MM)", required = true)@RequestParam String startDate,
+            @ApiParam(value = "结束日期(yyyy-MM)", required = true)@RequestParam String endDate) {
+        MonthRevenueDto monthRevenueDto=new MonthRevenueDto();
+        monthRevenueDto.setCompanyOrgId(companyOrgId);
+        monthRevenueDto.setStartDate(startDate);
+        monthRevenueDto.setEndDate(endDate);
+        List<MonthRevenueDto> result = revenueService.selectList(monthRevenueDto);
+        return new AjaxMessage<>(ResultStatus.OK, result);
+    }
 }

+ 79 - 0
sms_water/src/main/java/com/huaxu/controller/WaterPropertyController.java

@@ -0,0 +1,79 @@
+package com.huaxu.controller;
+
+
+import com.huaxu.entity.WaterPropertyEntity;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.LoginUser;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.WaterPropertyService;
+import com.huaxu.util.UserUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 用水性质控制层
+ *
+ * @author yjy
+ * @since 2021-5-31
+ */
+@RestController
+@RequestMapping("/waterProperty")
+@Api(tags = "用水性质")
+public class WaterPropertyController {
+    /**
+     * 服务对象
+     */
+    @Autowired
+    private WaterPropertyService waterPropertyService;
+
+    @RequestMapping(value = "insert", method = RequestMethod.POST)
+    @ApiOperation(value = "增加用水性质信息")
+    public AjaxMessage<Boolean> insert(@ApiParam(value = "用水性质", required = true) @RequestBody WaterPropertyEntity waterPropertyEntity) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        waterPropertyEntity.setTenantId(currentUser.getTenantId());
+        waterPropertyEntity.setCreateBy(currentUser.getUsername());
+        waterPropertyEntity.setStatus(1);
+        return new AjaxMessage<>(ResultStatus.OK, waterPropertyService.insert(waterPropertyEntity));
+    }
+
+    @RequestMapping(value = "delete", method = RequestMethod.GET)
+    @ApiOperation(value = "删除用水性质信息")
+    public AjaxMessage<Boolean> delete(@ApiParam(value = "用水性质id", required = true) @RequestParam Integer id) {
+        return new AjaxMessage<>(ResultStatus.OK, waterPropertyService.delete(id));
+    }
+
+    @RequestMapping(value = "update", method = RequestMethod.POST)
+    @ApiOperation(value = "修改用水性质信息")
+    public AjaxMessage<Boolean> update(@ApiParam(value = "用水性质", required = true) @RequestBody WaterPropertyEntity waterPropertyEntity) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        waterPropertyEntity.setUpdateBy(currentUser.getUsername());
+        return new AjaxMessage<>(ResultStatus.OK, waterPropertyService.update(waterPropertyEntity));
+    }
+
+    @RequestMapping(value = "select", method = RequestMethod.GET)
+    @ApiOperation(value = "查询用水性质信息")
+    public AjaxMessage<List<WaterPropertyEntity>> select(@ApiParam(value = "所属公司id", required = true) @RequestParam Integer companyOrgId) {
+        if(companyOrgId==null){
+            LoginUser currentUser = UserUtil.getCurrentUser();
+            companyOrgId=currentUser.getCompanyId();
+        }
+        return new AjaxMessage<>(ResultStatus.OK, waterPropertyService.select(companyOrgId));
+    }
+
+    @RequestMapping(value = "save", method = RequestMethod.POST)
+    @ApiOperation(value = "批量保存用水性质列表")
+    public AjaxMessage<Boolean> insert(@ApiParam(value = "用水性质列表", required = true) @RequestBody List<WaterPropertyEntity> waterPropertyList) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        for(WaterPropertyEntity waterPropertyEntity:waterPropertyList){
+            waterPropertyEntity.setTenantId(currentUser.getTenantId());
+            waterPropertyEntity.setCreateBy(currentUser.getUsername());
+            waterPropertyEntity.setStatus(1);
+        }
+        return new AjaxMessage<>(ResultStatus.OK, waterPropertyService.save(waterPropertyList));
+    }
+}

+ 42 - 2
sms_water/src/main/java/com/huaxu/dao/RevenueMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.*;
 import com.huaxu.entity.AlarmDetailsEntity;
 import com.huaxu.entity.MonthRevenueEntity;
+import com.huaxu.entity.MonthSellwaterEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,7 +13,7 @@ import java.util.List;
 
 /**
  * @description
- * @auto yjy
+ * @author yjy
  * @data 2021-2-24
  */
 @Mapper
@@ -20,58 +21,97 @@ public interface RevenueMapper {
 
     /**
      * 查询本月售水信息
+     * @param monthSellwaterDto 售水信息
      * @return
      */
     List<MonthSellwaterDto> selectMonthSell(MonthSellwaterDto monthSellwaterDto);
 
     /**
      * 查询近6个月的售水量
+     * @param monthSellwaterDto 售水信息
      * @return
      */
     List<MonthSellwaterDto> selectMonthSellTotal(MonthSellwaterDto monthSellwaterDto);
 
     /**
      * 查询近几个月的月营收情况
+     * @param monthRevenueDto 营收信息
      * @return
      */
     List<MonthRevenueDto> selectMonthRevenue(MonthRevenueDto monthRevenueDto);
 
     /**
      * 查询本月各分公司的营收情况
+     * @param monthRevenueDto 营收信息
      * @return
      */
     List<MonthRevenueDto> selectCompanyRevenue(MonthRevenueDto monthRevenueDto);
 
     /**
      * 查询App总览售水数据
+     * @param monthRevenueDto 营收信息
+     * @return
      */
     List<MonthRevenueDto> selectOverviewRevenue(MonthRevenueDto monthRevenueDto);
 
-
+    /**
+     * 查询App总览售水环比
+     * @param monthRevenueDto 营收信息
+     * @return
+     */
     List<MonthRevenueDto> selectRevenueByDate(MonthRevenueDto monthRevenueDto);
 
     /**
      * 查询是否当月有营收数据
+     * @param tenantId 租户id
      * @return
      */
     Integer isExistThisMonthRevenue(String tenantId);
 
     /**
      * 插入营收数据
+     * @param monthRevenueEntity 营收数据
      * @return
      */
     Integer insert(MonthRevenueEntity monthRevenueEntity);
 
     /**
      * 修改营收数据
+     * @param monthRevenueEntity 营收数据
      * @return
      */
     Integer update(MonthRevenueEntity monthRevenueEntity);
 
     /**
      * 查询该租户一级公司id
+     * @param tenantId 租户id
      * @return
      */
     Integer selectCompanyIdByTenant(String tenantId);
 
+    /**
+     * 插入售水数据
+     * @param monthSellwaterEntity 售水信息
+     * @return
+     */
+    Integer insertSellWater(MonthSellwaterEntity monthSellwaterEntity);
+    /**
+     * 修改售水数据
+     * @param monthSellwaterEntity 售水信息
+     * @return
+     */
+    Integer updateSellWater(MonthSellwaterEntity monthSellwaterEntity);
+    /**
+     * 修改营业数据
+     * @param monthRevenueEntity 营业信息
+     * @return
+     */
+    Integer updateRevenue(MonthRevenueEntity monthRevenueEntity);
+    /**
+     * 查询月营收情况
+     * @param monthRevenueDto 营业信息查询条件
+     * @return
+     */
+    List<MonthRevenueDto> selectList(MonthRevenueDto monthRevenueDto);
+
 }

+ 17 - 0
sms_water/src/main/java/com/huaxu/dao/WaterPropertyMapper.java

@@ -0,0 +1,17 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaxu.entity.WaterPropertyEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 用水性质设置Dao接口
+ *
+ * @author yjy
+ * @since 2021-5-31
+ */
+@Mapper
+public interface WaterPropertyMapper extends BaseMapper<WaterPropertyEntity> {
+
+}

+ 4 - 0
sms_water/src/main/java/com/huaxu/dto/MonthRevenueDto.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.huaxu.common.converter.Double1Serializer;
 import com.huaxu.entity.MonthRevenueEntity;
+import com.huaxu.entity.MonthSellwaterEntity;
 import com.huaxu.model.ProgramItem;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -62,4 +63,7 @@ public class MonthRevenueDto extends MonthRevenueEntity {
     @JsonIgnore
     private String userType;
 
+    @ApiModelProperty(value = "用水性质列表")
+    private List<MonthSellwaterEntity> monthSellList;
+
 }

+ 20 - 2
sms_water/src/main/java/com/huaxu/entity/MonthRevenueEntity.java

@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.converter.Double1Serializer;
+import com.huaxu.common.converter.Double3Serializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -46,9 +49,11 @@ public class MonthRevenueEntity implements Serializable {
     private Integer meterReadingCount;
 
     @ApiModelProperty(value = "抄表总水量")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double meterReadingUsage;
 
     @ApiModelProperty(value = "计费总水量")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double chargingUsage;
 
     @ApiModelProperty(value = "抄表完成率")
@@ -64,20 +69,33 @@ public class MonthRevenueEntity implements Serializable {
     private Double receivableTotalAmount;
 
     @ApiModelProperty(value = "实收总金额")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double receivedTotalAmount;
 
     @ApiModelProperty(value = "开票总金额")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double invoicedTotalAmount;
 
     @ApiModelProperty(value = "欠费总金额")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double arrearsTotalAmount;
 
-    @ApiModelProperty(value = "普通客户用水")
+    @ApiModelProperty(value = "普通客户应收金额")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double generalUserUsage;
 
-    @ApiModelProperty(value = "大客户用水")
+    @ApiModelProperty(value = "大客户应收金额")
+    @JsonSerialize(using = Double3Serializer.class)
     private Double bigUserUsage;
 
+    @ApiModelProperty(value = "普通客户实收金额")
+    @JsonSerialize(using = Double3Serializer.class)
+    private Double generalUserUsageReceived;
+
+    @ApiModelProperty(value = "大客户实收金额")
+    @JsonSerialize(using = Double3Serializer.class)
+    private Double bigUserUsageReceived;
+
     @ApiModelProperty(value = "备注")
     private String remark;
 

+ 77 - 0
sms_water/src/main/java/com/huaxu/entity/WaterPropertyEntity.java

@@ -0,0 +1,77 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用水性质(sms_water_property)实体类
+ *
+ * @author yjy
+ * @since 2021-5-31
+ */
+@Data
+@ApiModel
+@TableName("sms_water_property")
+public class WaterPropertyEntity implements Serializable {
+    private static final long serialVersionUID = 460807634914426955L;
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type= IdType.AUTO)
+    private Integer id;
+    /**
+     * 租户标识
+     */
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+    /**
+     * 所属公司
+     */
+    @ApiModelProperty(value = "所属公司")
+    private Long companyOrgId;
+    /**
+     * 用水性质
+     */
+    @ApiModelProperty(value = "用水性质")
+    private String propertyName;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 数据删除标识
+     */
+    @ApiModelProperty(value = "数据删除标识")
+    @TableLogic
+    private Integer status;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date dateCreate;
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date dateUpdate;
+}

+ 48 - 4
sms_water/src/main/java/com/huaxu/service/RevenueService.java

@@ -4,30 +4,35 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.*;
 import com.huaxu.entity.AlarmDetailsEntity;
 import com.huaxu.entity.MonthRevenueEntity;
+import com.huaxu.entity.MonthSellwaterEntity;
 
 import java.util.List;
 
 /**
+ * @author yjy
  * @description
- * @auto yjy
  * @data 2021-2-24
  */
 public interface RevenueService {
 
     /**
      * 查询本月售水信息
+     * @param companyOrgId 公司id
      * @return
      */
     List<MonthSellwaterDto> selectMonthSell(Integer companyOrgId);
 
     /**
      * 查询近6个月总售水量
+     * @param companyOrgId 公司id
      * @return
      */
     List<MonthSellwaterDto> selectMonthSellTotal(Integer companyOrgId);
 
     /**
      * 查询月营收情况
+     * @param companyOrgId 公司id
+     * @param months 几个月
      * @return
      */
     List<MonthRevenueDto> selectMonthRevenue(Integer companyOrgId,Integer months);
@@ -38,31 +43,45 @@ public interface RevenueService {
      */
     List<MonthRevenueDto> selectCompanyRevenue();
 
-
-    //查询App总览售水数据
+    /**
+     * 查询App总览售水数据
+     * @param companyOrgId 公司id
+     * @param months 几个月
+     * @return
+     */
     List<MonthRevenueDto> selectOverviewRevenue(Integer companyOrgId,Integer months);
 
-    //查询App总览售水环比
+    /**
+     * 查询App总览售水环比
+     * @param companyOrgId 公司id
+     * @param startDate 开始时间
+     * @param endDate 结束时间
+     * @return
+     */
     List<MonthRevenueDto> selectRevenueByDate(Integer companyOrgId, String startDate, String endDate);
 
     /**
      * 查询是否当月有营收数据
+     * @param tenantId 租户id
      * @return
      */
     Integer isExistThisMonthRevenue(String tenantId);
 
     /**
      * 插入营收数据
+   * @param monthRevenueEntity 营收数据
      * @return
      */
     Integer insert(MonthRevenueEntity monthRevenueEntity);
     /**
      * 修改营收数据
+     * @param monthRevenueEntity 营收数据
      * @return
      */
     Integer update(MonthRevenueEntity monthRevenueEntity);
     /**
      * 查询该租户一级公司id
+     * @param tenantId 租户id
      * @return
      */
     Integer selectCompanyIdByTenant(String tenantId);
@@ -72,5 +91,30 @@ public interface RevenueService {
      */
     void syncMeterCount();
 
+    /**
+     * 插入售水数据
+     * @param monthSellwaterEntity 售水信息
+     * @return
+     */
+    Integer insertSellWater(MonthSellwaterEntity monthSellwaterEntity);
+    /**
+     * 修改售水数据
+     * @param monthSellwaterEntity 售水信息
+     * @return
+     */
+    Integer updateSellWater(MonthSellwaterEntity monthSellwaterEntity);
+
+    /**
+     * 修改营业数据
+     * @param monthRevenueEntity 营业信息
+     * @return
+     */
+    Integer updateRevenue(MonthRevenueEntity monthRevenueEntity);
 
+    /**
+     * 查询月营收情况
+     * @param monthRevenueDto 营业信息查询条件
+     * @return
+     */
+    List<MonthRevenueDto> selectList(MonthRevenueDto monthRevenueDto);
 }

+ 91 - 0
sms_water/src/main/java/com/huaxu/service/WaterPropertyService.java

@@ -0,0 +1,91 @@
+package com.huaxu.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaxu.dao.WaterPropertyMapper;
+import com.huaxu.dto.OnlineDataDto;
+import com.huaxu.entity.WaterPropertyEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用水性质服务接口
+ *
+ * @author yjy
+ * @since 2021-5-31
+ */
+@Service
+public class WaterPropertyService extends ServiceImpl<WaterPropertyMapper, WaterPropertyEntity> {
+
+    /**
+     * 增加数据
+     *
+     * @param waterPropertyEntity
+     * @return
+     * */
+    public boolean insert(WaterPropertyEntity waterPropertyEntity) {
+        return this.save(waterPropertyEntity);
+    }
+    /**
+     * 删除数据
+     *
+     * @param id
+     * @return
+     * */
+    public boolean delete(Integer id) {
+        return this.removeById(id);
+    }
+    /**
+     * 修改数据
+     *
+     * @param waterPropertyEntity
+     * @return
+     * */
+    public boolean update(WaterPropertyEntity waterPropertyEntity) {
+        return this.updateById(waterPropertyEntity);
+    }
+    /**
+     * 查询数据
+     *
+     * @param companyOrgId
+     * @return
+     * */
+    public List<WaterPropertyEntity> select(Integer companyOrgId) {
+        return this.list(new QueryWrapper<WaterPropertyEntity>().eq("COMPANY_ORG_ID", companyOrgId));
+    }
+    /**
+     * 保存数据
+     *
+     * @param waterPropertyList
+     * @return
+     * */
+    public boolean save(List<WaterPropertyEntity> waterPropertyList) {
+        boolean flag=true;
+        try {
+            if(waterPropertyList.size()>0){
+                //删除多余的数据
+                List<WaterPropertyEntity> oldList=this.list(new QueryWrapper<WaterPropertyEntity>()
+                        .eq("COMPANY_ORG_ID", waterPropertyList.get(0).getCompanyOrgId()));
+                List<Integer> newIdList=waterPropertyList.stream().map(WaterPropertyEntity::getId).collect(Collectors.toList());
+                List<Integer> removeIds=new ArrayList<>();
+                //原来数据中id 没有 现在的id的 为要删除的数据
+                for(WaterPropertyEntity entity : oldList){
+                    if(!newIdList.contains(entity.getId())){
+                        removeIds.add(entity.getId());
+                    }
+                }
+                if(removeIds.size()>0){
+                    flag=this.removeByIds(removeIds);
+                }
+                //新增和修改数据
+                flag=this.saveOrUpdateBatch(waterPropertyList);
+            }
+        }catch (Exception e){
+            flag=false;
+        }
+        return flag;
+    }
+}

+ 36 - 1
sms_water/src/main/java/com/huaxu/service/impl/RevenueServiceImpl.java

@@ -3,6 +3,7 @@ package com.huaxu.service.impl;
 import com.huaxu.dao.RevenueMapper;
 import com.huaxu.dto.*;
 import com.huaxu.entity.MonthRevenueEntity;
+import com.huaxu.entity.MonthSellwaterEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.quartz.entity.QuartzEntity;
 import com.huaxu.quartz.job.SyncMeterCountJob;
@@ -21,7 +22,7 @@ import java.util.*;
 
 /**
  * @description
- * @auto yjy
+ * @author yjy
  * @data 2021-2-24
  */
 @Service
@@ -257,4 +258,38 @@ public class RevenueServiceImpl implements RevenueService, InitializingBean {
             }
         }
     }
+
+    /**
+     * 插入售水数据
+     * @return
+     */
+    @Override
+    public  Integer insertSellWater(MonthSellwaterEntity monthSellwaterEntity) {
+        return revenueMapper.insertSellWater(monthSellwaterEntity);
+    }
+    /**
+     * 修改售水数据
+     * @return
+     */
+    @Override
+    public  Integer updateSellWater(MonthSellwaterEntity monthSellwaterEntity) {
+        return revenueMapper.updateSellWater(monthSellwaterEntity);
+    }
+    /**
+     * 修改营业数据
+     * @return
+     */
+    @Override
+    public  Integer updateRevenue(MonthRevenueEntity monthRevenueEntity) {
+        return revenueMapper.updateRevenue(monthRevenueEntity);
+    }
+    /**
+     * 查询月营收情况
+     * @param monthRevenueDto 营业信息查询条件
+     * @return
+     */
+    @Override
+    public List<MonthRevenueDto> selectList(MonthRevenueDto monthRevenueDto){
+        return revenueMapper.selectList(monthRevenueDto);
+    }
 }

+ 123 - 3
sms_water/src/main/resources/mapper/RevenueMapper.xml

@@ -1,6 +1,24 @@
 <?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.huaxu.dao.RevenueMapper">
+    <!-- 结果集 -->
+    <resultMap type="com.huaxu.dto.MonthRevenueDto" id="revenueDtoMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="collectDateString" column="collect_date_string" jdbcType="VARCHAR"/>
+        <result property="receivableTotalAmount" column="receivable_total_amount" jdbcType="VARCHAR"/>
+        <result property="receivedTotalAmount" column="received_total_amount" jdbcType="VARCHAR"/>
+        <result property="meterReadingUsage" column="meter_reading_usage" jdbcType="VARCHAR"/>
+        <result property="generalUserUsage" column="general_user_usage" jdbcType="VARCHAR"/>
+        <result property="bigUserUsage" column="big_user_usage" jdbcType="VARCHAR"/>
+        <result property="generalUserUsageReceived" column="general_user_usage_received" jdbcType="VARCHAR"/>
+        <result property="bigUserUsageReceived" column="big_user_usage_received" jdbcType="VARCHAR"/>
+        <collection property="monthSellList" ofType="com.huaxu.entity.MonthSellwaterEntity" javaType="list">
+            <result property="id" column="sell_id" jdbcType="INTEGER"/>
+            <result property="propertyId" column="property_id" jdbcType="INTEGER"/>
+            <result property="waterUsage" column="water_usage" jdbcType="VARCHAR"/>
+        </collection>
+    </resultMap>
+
     <!--查询本月售水信息-->
     <select id="selectMonthSell" resultType="com.huaxu.dto.MonthSellwaterDto">
         select t2.property_name ,sum(t1.water_usage) water_usage
@@ -177,11 +195,12 @@
         insert into sms_month_revenue(`tenant_id`, `company_org_id`, `collect_date`, `user_meter_count`, `user_meter_add_count`,
         `meter_reading_count`, `meter_reading_usage`, `charging_usage`, `meter_reading_finished_rate`, `meter_reading_arrival_rate`,
         `meter_reading_error_rate`, `receivable_total_amount`, `received_total_amount`, `invoiced_total_amount`,
-        `arrears_total_amount`, `general_user_usage`, `big_user_usage`, `remark`, `date_create`, `create_by`, `date_update`, `update_by`)
+        `arrears_total_amount`, `general_user_usage`, `big_user_usage`, `remark`, `date_create`, `create_by`, `date_update`, `update_by`,
+        `general_user_usage_received`, `big_user_usage_received`)
         values (#{tenantId},#{companyOrgId},#{collectDate},#{userMeterCount},#{userMeterAddCount},#{meterReadingCount},
         #{meterReadingUsage},#{chargingUsage},#{meterReadingFinishedRate},#{meterReadingArrivalRate},#{meterReadingErrorRate},
         #{receivableTotalAmount},#{receivedTotalAmount},#{invoicedTotalAmount},#{arrearsTotalAmount},#{generalUserUsage},
-        #{bigUserUsage},#{remark},now(),null,now(),null)
+        #{bigUserUsage},#{remark},now(),null,now(),null,#{generalUserUsageReceived},#{bigUserUsageReceived})
     </insert>
     <!-- 通过租户id修改当月数据 -->
     <update id="update">
@@ -193,7 +212,7 @@
             <if test="userMeterAddCount != null and userMeterAddCount != 0">
                 user_meter_add_count  = #{userMeterAddCount},
             </if>
-            DATE_UPDATE  = now()
+            date_update  = now()
         </set>
         where tenant_id  = #{tenantId} and collect_date>=date_format(curdate(), '%Y-%m-1' )
     </update>
@@ -203,4 +222,105 @@
         from  uims.uims_org
         where parent_org_id=0 and tenant_id=#{tenantId}
     </select>
+    <!-- 新增售水信息-->
+    <insert id="insertSellWater">
+        insert into sms_month_sellwater (tenant_id,company_org_id,property_id,collect_date,water_usage,remark,create_by)
+        values(#{tenantId}, #{companyOrgId}, #{propertyId}, #{collectDate}, #{waterUsage},#{remark},#{createBy})
+    </insert>
+    <!-- 通过id修改营收数据 -->
+    <update id="updateRevenue">
+        update  sms_month_revenue
+        <set>
+            <if test="collectDate != null">
+                collect_date  = #{collectDate},
+            </if>
+            <if test="userMeterAddCount != null">
+                user_meter_add_count  = #{userMeterAddCount},
+            </if>
+            <if test="userMeterCount != null">
+                user_meter_count  = #{userMeterCount},
+            </if>
+            <if test="meterReadingCount != null">
+                meter_reading_count  = #{meterReadingCount},
+            </if>
+            <if test="meterReadingUsage != null">
+                meter_reading_usage  = #{meterReadingUsage},
+            </if>
+            <if test="chargingUsage != null">
+                charging_usage  = #{chargingUsage},
+            </if>
+            <if test="meterReadingFinishedRate != null">
+                meter_reading_finished_rate  = #{meterReadingFinishedRate},
+            </if>
+            <if test="meterReadingArrivalRate != null">
+                meter_reading_arrival_rate  = #{meterReadingArrivalRate},
+            </if>
+            <if test="meterReadingErrorRate != null">
+                meter_reading_error_rate  = #{meterReadingErrorRate},
+            </if>
+            <if test="receivableTotalAmount != null">
+                receivable_total_amount  = #{receivableTotalAmount},
+            </if>
+            <if test="receivedTotalAmount != null">
+                received_total_amount  = #{receivedTotalAmount},
+            </if>
+            <if test="invoicedTotalAmount != null">
+                invoiced_total_amount  = #{invoicedTotalAmount},
+            </if>
+            <if test="arrearsTotalAmount != null">
+                arrears_total_amount  = #{arrearsTotalAmount},
+            </if>
+            <if test="generalUserUsage != null">
+                general_user_usage  = #{generalUserUsage},
+            </if>
+            <if test="bigUserUsage != null">
+                big_user_usage  = #{bigUserUsage},
+            </if>
+            <if test="remark != null">
+                remark  = #{remark},
+            </if>
+            <if test="updateBy != null">
+                update_by  = #{updateBy},
+            </if>
+            <if test="generalUserUsageReceived != null">
+                general_user_usage_received  = #{generalUserUsageReceived},
+            </if>
+            <if test="bigUserUsageReceived != null">
+                big_user_usage_received  = #{bigUserUsageReceived},
+            </if>
+        </set>
+        where id  = #{id}
+    </update>
+    <!-- 通过id修改售水数据 -->
+    <update id="updateSellWater">
+        update  sms_month_sellwater
+        <set>
+            <if test="collectDate != null">
+                collect_date  = #{collectDate},
+            </if>
+            <if test="waterUsage != null">
+                water_usage  = #{waterUsage},
+            </if>
+            <if test="remark != null">
+                remark  = #{remark},
+            </if>
+            <if test="updateBy != null">
+                update_by  = #{updateBy},
+            </if>
+        </set>
+        where id  = #{id}
+    </update>
+    <!-- 通过公司id查询营收数据 -->
+    <select id="selectList" resultMap="revenueDtoMap">
+        select t1.id,date_format(t1.collect_date,'%Y年%m月') as collect_date_string,meter_reading_usage*10000 as meter_reading_usage
+               ,receivable_total_amount*10000 as receivable_total_amount,received_total_amount*10000 as received_total_amount,big_user_usage*10000 as big_user_usage
+               ,general_user_usage*10000 as general_user_usage,t2.id as property_id,t3.id as sell_id,t3.water_usage*10000 as water_usage
+               ,general_user_usage_received*10000 as general_user_usage_received,big_user_usage_received*10000 as big_user_usage_received
+        from sms_month_revenue t1
+        left join sms_water_property t2 on t1.company_org_id=t2.company_org_id and t1.tenant_id=t2.tenant_id and t2.status=1
+        left join sms_month_sellwater t3 on t2.id=t3.property_id and date_format(t1.collect_date,'%Y-%m-%d')= date_format(t3.collect_date,'%Y-%m-%d')
+        where t1.company_org_id = #{companyOrgId} and t1.collect_date >= concat(#{startDate}, '-1')
+            and t1.collect_date  &lt; concat(#{endDate}, '-1') + interval 1 month
+        order by t1.collect_date
+    </select>
 </mapper>