lihui001 3 rokov pred
rodič
commit
4e1e4716f0

+ 2 - 2
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/meterreadrecord/MeterReadRecordDto.java

@@ -16,12 +16,12 @@ import javax.validation.constraints.NotNull;
 @Data
 public class MeterReadRecordDto extends BasePageDto {
 
-    @NotNull
+    @NotNull(message = "分类ID")
     @ApiModelProperty(value="分类ID")
     private Integer categoryId;
 
     @ApiModelProperty(value="分类名字")
-    private Integer categoryName;
+    private String o;
 
     @ApiModelProperty(value="电子号/设备编号")
     private String deviceMeterNo;

+ 1 - 1
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/meterreadrecord/MeterReadRecordUpdateDto.java

@@ -22,7 +22,7 @@ public class MeterReadRecordUpdateDto  {
 
     @NotNull
     @NotEmpty
-    @ApiModelProperty(value="读表日期")
+    @ApiModelProperty(value="读表日期 yyyy-MM-dd")
     private String readDate;
 
     @ApiModelProperty(value="读数")

+ 29 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/readrate/ReadRateCountDto.java

@@ -0,0 +1,29 @@
+package com.zcxk.rmcp.api.dto.readrate;
+
+import com.zcxk.rmcp.api.dto.BasePageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Andy
+ * @version V1.0
+ * @description: 抄表率入参
+ * @date 2021/7/26
+ **/
+@Data
+public class ReadRateCountDto {
+
+    @ApiModelProperty(value = "类型")
+    private Integer statDaysCode;
+
+    @ApiModelProperty(value = "分类ID")
+    private Integer categoryId;
+
+    @ApiModelProperty(value = "抄表率起止")
+    private BigDecimal readRateBegin;
+
+    @ApiModelProperty(value = "抄表率结束")
+    private BigDecimal readRateEnd;
+}

+ 1 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/enums/ReadStatusEnum.java

@@ -1,6 +1,7 @@
 package com.zcxk.rmcp.api.enums;
 
 import com.zcxk.core.utils.ZoniotStringUtils;
+import io.swagger.models.auth.In;
 import lombok.Getter;
 
 import java.util.Arrays;

+ 1 - 1
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/vo/StatisticsReadRateVo.java

@@ -34,7 +34,7 @@ public class StatisticsReadRateVo {
      * @return
      */
     public String getReadRate(){
-        return StringUtils.isEmpty(readRate) ? "0%" : (BigDecimalUtils.subtract(readRate, "100").toEngineeringString() + "%");
+        return StringUtils.isEmpty(readRate) ? "0%" : (BigDecimalUtils.multiply(readRate, "100").toEngineeringString() + "%");
     }
 
 

+ 4 - 3
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/mongo/BaseMongoDao.java

@@ -14,10 +14,11 @@ import java.util.List;
 public interface BaseMongoDao {
 
      /**
+     * 设置用户权限
      * @author Andy
-     * @description 设置用户权限
-     * @date 11:06 2021/7/23
-     * @param userCondition, criteria]
+     * @date 10:44 2021/8/12
+     * @param userCondition:
+     * @param criteria:
      * @return void
      **/
      default void criteriaUserCondition(UserCondition userCondition, Criteria criteria){

+ 9 - 5
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/mongo/MeterReadRecordDao.java

@@ -3,6 +3,7 @@ package com.zcxk.rmcp.core.dao.mongo;
 import com.zcxk.core.common.pojo.PageResult;
 import com.zcxk.core.common.pojo.UserCondition;
 import com.zcxk.core.mongo.base.BaseDao;
+import com.zcxk.core.mongo.utils.StringUtil;
 import com.zcxk.core.oauth2.util.UserUtil;
 import com.zcxk.core.utils.BigDecimalUtils;
 import com.zcxk.core.utils.DateUtil;
@@ -15,6 +16,7 @@ import com.zcxk.rmcp.api.vo.MeterReadRecordAggregationVo;
 import com.zcxk.rmcp.api.vo.MeterReadRecordVo;
 import com.zcxk.rmcp.core.entity.Device;
 import com.zcxk.rmcp.core.mongo.MeterReadRecord;
+import io.swagger.models.auth.In;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.aggregation.*;
@@ -53,7 +55,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
         Aggregation agg = Aggregation.newAggregation(
                 Aggregation.match(Criteria.where("id").is(id)),
                 Aggregation.unwind("data"),
-                Aggregation.match(Criteria.where("data.readDate").is(readDate))
+                Aggregation.match(Criteria.where("data.readDate").is(Integer.parseInt(readDate.replaceAll("-",""))))
         ).withOptions(aggregationOptions);
         AggregationResults<MeterReadRecordVo> durationData =
                 mongoTemplate.aggregate(agg, MeterReadRecord.class, MeterReadRecordVo.class);
@@ -90,7 +92,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
         }
         Query query = new Query();
         query.addCriteria(Criteria.where("id").is(dto.getId()));
-        query.addCriteria(Criteria.where("data.readDate").is(dto.getReadDate()));
+        query.addCriteria(Criteria.where("data.readDate").is(Integer.parseInt(dto.getReadDate().replaceAll("-",""))));
         Update update = new Update();
         update.set("data.$.readData",dto.getReadData());
         update.set("data.$.readStatus", ReadStatusEnum.READ.getCode());
@@ -262,7 +264,9 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
         }
         criteria.and("year").is(localDate.getYear());
         criteria.and("categoryId").is(dto.getCategoryId());
-        criteria.and("tenantId").is(userCondition.getTenantId());
+        if (StringUtil.isNotEmpty(userCondition.getTenantId())){
+            criteria.and("tenantId").is(userCondition.getTenantId());
+        }
         if (ZoniotStringUtils.isNotEmpty(dto.getConcentratorId())) {
             criteria.and("concentratorId").is(dto.getConcentratorId());
         }
@@ -293,7 +297,7 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
         commonOperations.add(unwind);
         // 3.子文档查询
         MatchOperation match2 = Aggregation.match(
-                Criteria.where("data.readDate").is(localDate.toString()));
+                Criteria.where("data.readDate").is(Integer.parseInt(localDate.toString().replaceAll("-",""))));
         commonOperations.add(match2);
         return commonOperations;
     }
@@ -307,9 +311,9 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
      * @return java.util.List<org.springframework.data.mongodb.core.aggregation.AggregationOperation>
      **/
     private List<AggregationOperation> groupCondition(int year, int readDateBeginDate, int readDateEndDate, GroupOperation groupOperation){
+        Criteria unwindCriteria;
         Criteria criteria = new Criteria();
         criteria.and("year").is(year);
-        Criteria unwindCriteria = null;
         if (readDateBeginDate == readDateEndDate) {
             unwindCriteria = Criteria.where("data.readDate").is(readDateBeginDate);
         } else {

+ 13 - 6
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/MeterReadRecordController.java

@@ -1,5 +1,6 @@
 package com.zcxk.rmcp.web.controller;
 
+import com.zcxk.core.common.exception.BusinessException;
 import com.zcxk.core.common.pojo.AjaxMessage;
 import com.zcxk.core.common.pojo.PageResult;
 import com.zcxk.core.common.util.BeanCopyUtils;
@@ -8,8 +9,10 @@ import com.zcxk.core.utils.export.EasyExcelUtil;
 import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordDeviceDto;
 import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordDto;
 import com.zcxk.rmcp.api.dto.meterreadrecord.MeterReadRecordUpdateDto;
+import com.zcxk.rmcp.api.enums.RmcpErrorEnum;
 import com.zcxk.rmcp.api.vo.MeterReadRecordExcelVo;
 import com.zcxk.rmcp.api.vo.MeterReadRecordVo;
+import com.zcxk.rmcp.api.vo.ReadRateVo;
 import com.zcxk.rmcp.core.mongo.MeterReadRecord;
 import com.zcxk.rmcp.web.service.MeterReadRecordService;
 import io.swagger.annotations.Api;
@@ -22,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
@@ -66,12 +70,12 @@ public class MeterReadRecordController extends BaseController {
         return AjaxMessage.success(meterReadRecordService.listSingleDeviceTimeWaterConsumption(dto));
     }
 
-    @RequestMapping(value="/export/excel" , method = RequestMethod.POST)
-    @ApiOperation(value = "excel导出")
-    public AjaxMessage<String> exportExcel(@RequestBody @Valid MeterReadRecordDto dto) {
+    @RequestMapping(value="/export/excel" , method = RequestMethod.GET)
+    @ApiOperation(value = "excel导出", produces = "application/octet-stream")
+    public void exportExcel(MeterReadRecordDto dto, HttpServletResponse response) {
         List<MeterReadRecordVo> list = meterReadRecordService.listMeterReadRecord(dto);
         if (CollectionUtils.isEmpty(list)) {
-            return AjaxMessage.success(null);
+            throw BusinessException.builder(RmcpErrorEnum.RMCP_NOT_FOUND);
         }
         List<MeterReadRecordExcelVo> dataList = new ArrayList<>();
         for (MeterReadRecordVo meterReadRecordVo : list) {
@@ -82,8 +86,11 @@ public class MeterReadRecordController extends BaseController {
             excelVo.setReadData(meterReadRecordVo.getData().getReadData());
             dataList.add(excelVo);
         }
-        String filePath = EasyExcelUtil.excelWrite(baseDir, MeterReadRecordExcelVo.class, dto.getCategoryName() +"抄表记录", dataList);
-        return AjaxMessage.success(filePath);
+        try {
+            EasyExcelUtil.excelWrite(response, MeterReadRecordExcelVo.class, dto.getCategoryName() +"抄表记录", dataList);
+        } catch (Exception e) {
+            throw BusinessException.builder(RmcpErrorEnum.RMCP_DOWNLOAD_ERROR);
+        }
     }
 
 }

+ 4 - 3
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/ReadRateController.java

@@ -4,6 +4,7 @@ import com.zcxk.core.common.exception.BusinessException;
 import com.zcxk.core.common.pojo.AjaxMessage;
 import com.zcxk.core.mysql.pageing.Pagination;
 import com.zcxk.core.utils.export.EasyExcelUtil;
+import com.zcxk.rmcp.api.dto.readrate.ReadRateCountDto;
 import com.zcxk.rmcp.api.dto.readrate.ReadRateDto;
 import com.zcxk.rmcp.api.enums.ReadRateEnum;
 import com.zcxk.rmcp.api.enums.RmcpErrorEnum;
@@ -57,16 +58,16 @@ public class ReadRateController extends BaseController{
 
     @RequestMapping(value = "/count", method = RequestMethod.POST)
     @ApiOperation(value = "统计抄表总数")
-    public AjaxMessage<StatisticsReadRateVo> countReadRate(@RequestBody @Valid ReadRateDto dto) {
+    public AjaxMessage<StatisticsReadRateVo> countReadRate(@RequestBody @Valid ReadRateCountDto dto) {
         if (ReadRateEnum.getReadRateEnum(dto.getStatDaysCode()) == null) {
             return AjaxMessage.success(null);
         }
         return AjaxMessage.success(readRateFactory.getReadRateService(dto.getStatDaysCode()).countReadRate(dto));
     }
 
-    @RequestMapping(value="export/excel" , method = RequestMethod.POST)
+    @RequestMapping(value="export/excel" , method = RequestMethod.GET)
     @ApiOperation(value = "excel导出")
-    public void exportExcel(@RequestBody @Valid ReadRateDto dto, HttpServletResponse response) {
+    public void exportExcel(ReadRateDto dto, HttpServletResponse response) {
         ReadRateEnum readRateEnum = ReadRateEnum.getReadRateEnum(dto.getStatDaysCode());
         List<ReadRateVo> list = readRateFactory.getReadRateService(dto.getStatDaysCode()).listReadRate(dto);
         if (CollectionUtils.isEmpty(list)) {

+ 6 - 2
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/AbstractReadRateService.java

@@ -5,10 +5,12 @@ import com.zcxk.core.common.pojo.UserCondition;
 import com.zcxk.core.mysql.pageing.Pagination;
 import com.zcxk.core.oauth2.util.UserUtil;
 import com.zcxk.core.utils.BigDecimalUtils;
+import com.zcxk.rmcp.api.dto.readrate.ReadRateCountDto;
 import com.zcxk.rmcp.api.dto.readrate.ReadRateDto;
 import com.zcxk.rmcp.api.vo.ReadRatePageVo;
 import com.zcxk.rmcp.api.vo.ReadRateVo;
 import com.zcxk.rmcp.api.vo.StatisticsReadRateVo;
+import org.springframework.beans.BeanUtils;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
@@ -63,8 +65,10 @@ public abstract class AbstractReadRateService implements ReadRateService{
     }
 
     @Override
-    public StatisticsReadRateVo countReadRate(ReadRateDto dto){
-        return this.countReadRate(dto, UserUtil.getCurrentUser().getUserCondition());
+    public StatisticsReadRateVo countReadRate(ReadRateCountDto dto){
+        ReadRateDto rateDto = new ReadRateDto();
+        BeanUtils.copyProperties(dto, rateDto, ReadRateDto.class);
+        return this.countReadRate(rateDto, UserUtil.getCurrentUser().getUserCondition());
     }
 
     /**

+ 2 - 1
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/ReadRateService.java

@@ -2,6 +2,7 @@ package com.zcxk.rmcp.web.service;
 
 import com.zcxk.core.common.pojo.UserCondition;
 import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.readrate.ReadRateCountDto;
 import com.zcxk.rmcp.api.dto.readrate.ReadRateDto;
 import com.zcxk.rmcp.api.enums.ReadRateEnum;
 import com.zcxk.rmcp.api.vo.ReadRatePageVo;
@@ -53,7 +54,7 @@ public interface ReadRateService {
     * @param dto:
     * @return com.zcxk.rmcp.api.vo.StatisticsReadRateVo
     **/
-    StatisticsReadRateVo countReadRate(ReadRateDto dto);
+    StatisticsReadRateVo countReadRate(ReadRateCountDto dto);
 
     /**
     * 获取统计天数类型