oppadmin преди 4 години
родител
ревизия
cb1cd3ac5a

+ 102 - 4
smart-city-platform/src/main/java/com/bz/smart_city/controller/pay/PayControlRecordController.java

@@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -40,8 +41,8 @@ public class PayControlRecordController {
             @ApiParam(value = "操作类型 0关阀 1开阀", required = false) @RequestParam(required = false) String type,
             @ApiParam(value = "操作结果 0执行中 1成功 2失败", required = false) @RequestParam(required = false) String result,
             @ApiParam(value = "阀门状态: 0关阀 1开阀  2无阀,3异常", required = false) @RequestParam(required = false) String state,
-            @ApiParam(value = "开始时间yyyyMMdd", required = false) @RequestParam(required = false) String beginTime,
-            @ApiParam(value = "结束时间yyyyMMdd", required = false) @RequestParam(required = false) String endTime
+            @ApiParam(value = "开始时间yyyyMMdd", required = true) @RequestParam(required = false) String beginTime,
+            @ApiParam(value = "结束时间yyyyMMdd", required = true) @RequestParam(required = false) String endTime
     ){
         try {
             DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
@@ -88,8 +89,8 @@ public class PayControlRecordController {
             @ApiParam(value = "操作类型 0关阀 1开阀", required = false) @RequestParam(required = false) String type,
             @ApiParam(value = "操作结果 0执行中 1成功 2失败", required = false) @RequestParam(required = false) String result,
             @ApiParam(value = "阀门状态: 0关阀 1开阀  2 无阀,3异常", required = false) @RequestParam(required = false) String state,
-            @ApiParam(value = "开始时间yyyyMMdd", required = false) @RequestParam(required = false) String beginTime,
-            @ApiParam(value = "结束时间yyyyMMdd", required = false) @RequestParam(required = false) String endTime,
+            @ApiParam(value = "开始时间yyyyMMdd", required = true) @RequestParam(required = false) String beginTime,
+            @ApiParam(value = "结束时间yyyyMMdd", required = true) @RequestParam(required = false) String endTime,
             @ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
             @ApiParam(value = "条数,非必传,默认15条", required = false, defaultValue = "15") @RequestParam(required = false, defaultValue = "15") int pageSize
     ){
@@ -129,6 +130,103 @@ public class PayControlRecordController {
         }
     }
 
+    @GetMapping("/exportExcel")
+    @ApiOperation(value="导出阀控记录",notes="导出阀控记录")
+    public void exportExcel(
+            @ApiParam(value = "水表电子号,水表档案号", required = false) @RequestParam(required = false) String meterCode,
+            @ApiParam(value = "阀控规则", required = false) @RequestParam(required = false) String controlRuleId,
+            @ApiParam(value = "操作类型 0关阀 1开阀", required = false) @RequestParam(required = false) String type,
+            @ApiParam(value = "操作结果 0执行中 1成功 2失败", required = false) @RequestParam(required = false) String result,
+            @ApiParam(value = "阀门状态: 0关阀 1开阀  2 无阀,3异常", required = false) @RequestParam(required = false) String state,
+            @ApiParam(value = "开始时间yyyyMMdd", required = true) @RequestParam(required = false) String beginTime,
+            @ApiParam(value = "结束时间yyyyMMdd", required = true) @RequestParam(required = false) String endTime,
+            HttpServletResponse httpServletResponse
+    ){
+        try {
+            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+            PayControlRecordDto payControlRecordDto = new PayControlRecordDto();
+
+            if(StringUtils.isNotBlank(meterCode)){
+                payControlRecordDto.setMeterCode(meterCode);
+            }
+
+            if(StringUtils.isNotBlank(controlRuleId)){
+                payControlRecordDto.setControlRuleId(new Integer(controlRuleId));
+            }
+            if(StringUtils.isNotBlank(type)){
+                payControlRecordDto.setType(new Integer(type));
+            }
+            if(StringUtils.isNotBlank(result)){
+                payControlRecordDto.setResult(new Integer(result));
+            }
+            if(StringUtils.isNotBlank(state)){
+                payControlRecordDto.setResult(new Integer(state));
+            }
+            if(StringUtils.isNotBlank(beginTime)){
+                beginTime = beginTime +"000000";
+                payControlRecordDto.setBeginTime( LocalDateTime.parse(beginTime,df));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                endTime = endTime + "235959";
+                payControlRecordDto.setEndTime(LocalDateTime.parse(endTime, df));
+            }
+            payControlRecordService.exportExcel(payControlRecordDto,httpServletResponse);
+        }
+        catch (Exception ex){
+            throw new ServiceException(-99,"导出异常");
+        }
+    }
+
+
+
+    @GetMapping("/exportExcel2")
+    @ApiOperation(value="导出阀控记录(单表)",notes="导出阀控记录(单表)")
+    public void exportExcel2(
+            @ApiParam(value = "水表电子号,水表档案号", required = false) @RequestParam(required = false) String meterCode,
+            @ApiParam(value = "阀控规则", required = false) @RequestParam(required = false) String controlRuleId,
+            @ApiParam(value = "操作类型 0关阀 1开阀", required = false) @RequestParam(required = false) String type,
+            @ApiParam(value = "操作结果 0执行中 1成功 2失败", required = false) @RequestParam(required = false) String result,
+            @ApiParam(value = "阀门状态: 0关阀 1开阀  2 无阀,3异常", required = false) @RequestParam(required = false) String state,
+            @ApiParam(value = "开始时间yyyyMMdd", required = true) @RequestParam(required = false) String beginTime,
+            @ApiParam(value = "结束时间yyyyMMdd", required = true) @RequestParam(required = false) String endTime,
+            HttpServletResponse httpServletResponse
+    ){
+        try {
+            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+            PayControlRecordDto payControlRecordDto = new PayControlRecordDto();
+
+            if(StringUtils.isNotBlank(meterCode)){
+                payControlRecordDto.setMeterCode(meterCode);
+            }
+
+            if(StringUtils.isNotBlank(controlRuleId)){
+                payControlRecordDto.setControlRuleId(new Integer(controlRuleId));
+            }
+            if(StringUtils.isNotBlank(type)){
+                payControlRecordDto.setType(new Integer(type));
+            }
+            if(StringUtils.isNotBlank(result)){
+                payControlRecordDto.setResult(new Integer(result));
+            }
+            if(StringUtils.isNotBlank(state)){
+                payControlRecordDto.setResult(new Integer(state));
+            }
+            if(StringUtils.isNotBlank(beginTime)){
+                beginTime = beginTime +"000000";
+                payControlRecordDto.setBeginTime( LocalDateTime.parse(beginTime,df));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                endTime = endTime + "235959";
+                payControlRecordDto.setEndTime(LocalDateTime.parse(endTime, df));
+            }
+            payControlRecordService.exportExcel2(payControlRecordDto,httpServletResponse);
+        }
+        catch (Exception ex){
+            throw new ServiceException(-99,"导出异常");
+        }
+    }
+
+
     @GetMapping("/findByYear")
     @ApiOperation(value="查询阀控记录(按年)",notes="查询阀控记录(按年)")
     public AjaxMessage<List<PayControlRecordDto>> findByYear(

+ 199 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/pay/PayControlRecordServiceImpl.java

@@ -1,19 +1,27 @@
 package com.bz.smart_city.service.impl.pay;
 
+import com.bz.smart_city.commom.exception.ServiceException;
 import com.bz.smart_city.commom.model.Pagination;
+import com.bz.smart_city.commom.util.ExcelUtil;
 import com.bz.smart_city.commom.util.UserUtil;
 import com.bz.smart_city.dao.pay.PayControlRecordMapper;
 import com.bz.smart_city.dto.LoginUser;
 import com.bz.smart_city.dto.pay.PayControlRecordDto;
 import com.bz.smart_city.entity.pay.PayControlRecord;
+import com.bz.smart_city.entity.pay.archives.PayBaseCustomerandmeterrela;
 import com.bz.smart_city.service.pay.PayControlRecordService;
 import com.github.pagehelper.PageHelper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigInteger;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 
+import static com.google.common.collect.Lists.newArrayList;
+
 /**
  * Created by ZJY on 2021-01-18 9:11
  */
@@ -43,4 +51,195 @@ public class PayControlRecordServiceImpl implements PayControlRecordService {
         List<PayControlRecordDto> payControlRecordList = payControlRecordMapper.findList(payControlRecordDto);
         return new  Pagination<>(payControlRecordList);
     }
+
+    @Override
+    public void exportExcel(PayControlRecordDto payControlRecordDto, HttpServletResponse httpServletResponse){
+
+        List<PayControlRecordDto> payControlRecordList = payControlRecordMapper.findList(payControlRecordDto);
+
+        String title = "阀控记录列表";
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String[] rowsName = new String[]{"序号","水表电子号","水表档案号","设备型号","设备状态","安装地址","操作原因","操作类型","操作结果","阀门状态","操作时间","处理时间"};
+
+        List<Object[]> dataList = newArrayList();
+        Object[] objs = null;
+        for(int i=0; i<payControlRecordList.size() ; i++){
+            PayControlRecordDto payControlRecordDto1 = payControlRecordList.get(i);
+            objs = new Object[rowsName.length];
+            objs[0] = i;
+            objs[1] = payControlRecordDto1.getWaterMeterNo() != null ? payControlRecordDto1.getWaterMeterNo() : "";//水表电子号
+            objs[2] = payControlRecordDto1.getMeterCode() != null ? payControlRecordDto1.getMeterCode() : "";//水表档案号
+            objs[3] = payControlRecordDto1.getDeviceModel() != null ? payControlRecordDto1.getDeviceModel() : "";
+            objs[4] = payControlRecordDto1.getState() != null ? payControlRecordDto1.getState() : ""; //设备状态
+            objs[5] = payControlRecordDto1.getLocDesc() != null ? payControlRecordDto1.getLocDesc() : "";//安装地址
+            objs[6] = payControlRecordDto1.getControlRuleIdName() != null ? payControlRecordDto1.getControlRuleIdName() : "";//操作原因
+            String temp = "";
+            if(payControlRecordDto1.getType() != null){
+                switch (payControlRecordDto1.getType()){
+                    case 0:{
+                        temp = "关阀";
+                        break;
+                    }
+                    case 1:{
+                        temp = "开阀";
+                        break;
+                    }
+                    default:{
+                        temp="";
+                        break;
+                    }
+                }
+            }
+            objs[7] = temp;//操作类型
+
+            temp = "";
+            if(payControlRecordDto1.getResult() != null){
+                temp = payControlRecordDto1.getResult().toString();
+                if(temp.equals("0")){
+                    temp = "执行中";
+                }
+                else if(temp.equals("1")){
+                    temp = "成功";
+                }
+                else  if(temp.equals("2")){
+                    temp="失败";
+                }
+                else
+                    temp = "";
+            }
+            objs[8] = temp;//操作结果
+
+            temp="";
+            if(payControlRecordDto1.getState() != null){
+                temp = payControlRecordDto1.getState().toString();
+                switch (temp){
+                    case "0":{
+                        temp="关阀";
+                        break;
+                    }
+                    case "1":{
+                        temp="开阀";
+                        break;
+                    }
+                    case "2":{
+                        temp="无阀";
+                        break;
+                    }
+                    case "3":{
+                        temp="异常";
+                        break;
+                    }
+                    default:{
+                        temp="";
+                        break;
+                    }
+                }
+            }
+            objs[9] = temp;//阀门状态
+
+            objs[10] = df.format(payControlRecordDto1.getCreateDate()); // 操作时间
+            objs[11] = payControlRecordDto1.getUpdateDate() != null ? df.format(payControlRecordDto1.getUpdateDate()) : "";//处理时间
+
+            dataList.add(objs);
+        }
+        ExcelUtil excelUtil = new ExcelUtil(title, rowsName, dataList);
+        try {
+            excelUtil.export(httpServletResponse);
+        } catch (Exception e) {
+            throw new ServiceException(-900, "导出异常");
+        }
+    }
+
+    @Override
+    public void exportExcel2(PayControlRecordDto payControlRecordDto, HttpServletResponse httpServletResponse){
+
+        List<PayControlRecordDto> payControlRecordList = payControlRecordMapper.findList(payControlRecordDto);
+
+        String title = "阀控记录列表";
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String[] rowsName = new String[]{"序号","操作原因","操作类型","操作结果","阀门状态","操作时间","处理时间"};
+
+        List<Object[]> dataList = newArrayList();
+        Object[] objs = null;
+        for(int i=0; i<payControlRecordList.size() ; i++){
+            PayControlRecordDto payControlRecordDto1 = payControlRecordList.get(i);
+            objs = new Object[rowsName.length];
+            objs[0] = i;
+            objs[1] = payControlRecordDto1.getControlRuleIdName() != null ? payControlRecordDto1.getControlRuleIdName() : "";//操作原因
+            String temp = "";
+            if(payControlRecordDto1.getType() != null){
+                switch (payControlRecordDto1.getType()){
+                    case 0:{
+                        temp = "关阀";
+                        break;
+                    }
+                    case 1:{
+                        temp = "开阀";
+                        break;
+                    }
+                    default:{
+                        temp="";
+                        break;
+                    }
+                }
+            }
+            objs[2] = temp;//操作类型
+
+            temp = "";
+            if(payControlRecordDto1.getResult() != null){
+                temp = payControlRecordDto1.getResult().toString();
+                if(temp.equals("0")){
+                    temp = "执行中";
+                }
+                else if(temp.equals("1")){
+                    temp = "成功";
+                }
+                else  if(temp.equals("2")){
+                    temp="失败";
+                }
+                else
+                    temp = "";
+            }
+            objs[3] = temp;//操作结果
+
+            temp="";
+            if(payControlRecordDto1.getState() != null){
+                temp = payControlRecordDto1.getState().toString();
+                switch (temp){
+                    case "0":{
+                        temp="关阀";
+                        break;
+                    }
+                    case "1":{
+                        temp="开阀";
+                        break;
+                    }
+                    case "2":{
+                        temp="无阀";
+                        break;
+                    }
+                    case "3":{
+                        temp="异常";
+                        break;
+                    }
+                    default:{
+                        temp="";
+                        break;
+                    }
+                }
+            }
+            objs[4] = temp;//阀门状态
+
+            objs[5] = df.format(payControlRecordDto1.getCreateDate()); // 操作时间
+            objs[6] = payControlRecordDto1.getUpdateDate() != null ? df.format(payControlRecordDto1.getUpdateDate()) : "";//处理时间
+
+            dataList.add(objs);
+        }
+        ExcelUtil excelUtil = new ExcelUtil(title, rowsName, dataList);
+        try {
+            excelUtil.export(httpServletResponse);
+        } catch (Exception e) {
+            throw new ServiceException(-900, "导出异常");
+        }
+    }
 }

+ 5 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/pay/PayControlRecordService.java

@@ -4,6 +4,7 @@ import com.bz.smart_city.commom.model.Pagination;
 import com.bz.smart_city.dto.pay.PayControlRecordDto;
 import com.bz.smart_city.entity.pay.PayControlRecord;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -18,4 +19,8 @@ public interface PayControlRecordService {
 
     List<PayControlRecordDto>findByYear(String accountNumber, Integer year);
 
+    void exportExcel(PayControlRecordDto payControlRecordDto, HttpServletResponse httpServletResponse);
+
+    void exportExcel2(PayControlRecordDto payControlRecordDto, HttpServletResponse httpServletResponse);
+
 }