Jelajahi Sumber

Merge branch 'master' into test

李进 1 tahun lalu
induk
melakukan
f7e6bf68e6

+ 17 - 0
device-api-service/src/main/java/com/xy/config/FileConfig.java

@@ -0,0 +1,17 @@
+package com.xy.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "file")
+public class FileConfig {
+
+    /**
+     * 文件路径
+     */
+    private String path;
+
+}

+ 9 - 0
device-api-service/src/main/java/com/xy/mapper/DeviceSimMapper.java

@@ -6,6 +6,7 @@ import com.xy.dto.DeviceSimDto;
 import com.xy.entity.DeviceSim;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -27,6 +28,14 @@ public interface DeviceSimMapper extends BaseMapper<DeviceSim> {
      */
     IPage<DeviceSimDto.PageVo> page(IPage page, @Param("queryPage") DeviceSimDto.Page queryPage);
 
+    /**
+     * 全量查询
+     *
+     * @param queryPage
+     * @return
+     */
+    List<DeviceSimDto.PageVo> page(@Param("queryPage") DeviceSimDto.Page queryPage);
+
     /**
      * 管流量卡过期
      *

+ 3 - 1
device-api-service/src/main/java/com/xy/mapper/mapper/DeviceSimMapper.xml

@@ -3,6 +3,7 @@
 <mapper namespace="com.xy.mapper.DeviceSimMapper">
 
     <resultMap id="queryPageMap" type="com.xy.dto.DeviceSimDto$PageVo">
+        <result column="sim_iccid" property="simIccid"/>
         <association property="deviceInfo" javaType="com.xy.dto.DeviceInfoDto$Vo">
             <id column="device_id" property="deviceId"/>
             <result column="device_name" property="deviceName"/>
@@ -40,7 +41,8 @@
     <select id="page" resultMap="queryPageMap">
         select di.*,
         ds.net_state,
-        dsim.id, dsim.type, dsim.activate_time, dsim.timeout, dsim.last_renewal_time
+        dsim.id, dsim.type, dsim.activate_time, dsim.timeout, dsim.last_renewal_time,
+        dsys.sim_iccid
         from device_info di
         join device_status ds on (di.device_id = ds.device_id)
         join device_sysinfo dsys on(di.device_id = dsys.device_id)

+ 2 - 0
device-api-service/src/main/java/com/xy/service/DeviceCreateIdsServiceImpl.java

@@ -217,6 +217,8 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
         while ((bytesRead = inputStream.read(buffer)) != -1) {
             outputStream.write(buffer, 0, bytesRead);
         }
+        inputStream.close();
+        outputStream.close();
     }
 
     @ApiOperation("批量添加自定义机器号")

+ 2 - 0
device-api-service/src/main/java/com/xy/service/DeviceRegisterServiceImpl.java

@@ -230,6 +230,8 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
         while ((bytesRead = inputStream.read(buffer)) != -1) {
             outputStream.write(buffer, 0, bytesRead);
         }
+        inputStream.close();
+        outputStream.close();
     }
 
     @Slf4j

+ 47 - 15
device-api-service/src/main/java/com/xy/service/DeviceSimServiceImpl.java

@@ -1,6 +1,8 @@
 package com.xy.service;
 
 import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.read.listener.ReadListener;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -11,12 +13,14 @@ import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
 import com.xy.collections.map.JMap;
 import com.xy.config.DeviceThreadPoolConfig;
+import com.xy.config.FileConfig;
 import com.xy.device.EnumSimConfig;
 import com.xy.dto.DeviceSimDto;
 import com.xy.entity.DeviceSim;
 import com.xy.entity.DeviceSimCharge;
 import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceSimMapper;
+import com.xy.util.ExcelUtils;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,6 +28,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
+import lombok.experimental.Accessors;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -32,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -59,6 +65,10 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
 
     private DeviceSimChargeServiceImpl deviceSimChargeService;
 
+    private HttpServletResponse response;
+
+    private FileConfig fileConfig;
+
     @Override
     @ApiOperation("购买")
     public R pay(DeviceSimDto.Pay pay) {
@@ -128,7 +138,7 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
             records.forEach(record -> {
                 //封装过期状态说明
                 DeviceSimDto.Vo sim = record.getSim();
-                if(Emptys.check(sim)) {
+                if (Emptys.check(sim)) {
                     String timeoutStatus;
                     LocalDateTime timeout = sim.getTimeout();
                     long s = DataTime.diff(page.getThisTime(), timeout, "s");
@@ -147,11 +157,31 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
     }
 
     @SneakyThrows
-    @ApiOperation("下载流量卡号模板")
-    @PostMapping("downloadSimTemplet")
-    public void downloadSnTemplet(HttpServletResponse response) {
-        InputStream inputStream = IoUtils.inputStream("sim_templet.xlsx").get();
-        response.setHeader("Content-Disposition", "attachment; filename=" + "sim_templet.xlsx");
+    @ApiOperation("导出流量卡数据")
+    @PostMapping("download")
+    public void download(@RequestBody DeviceSimDto.Page page) {
+        //生成excel
+        String name = YitIdHelper.nextId() + ".xlsx";
+        String path = fileConfig.getPath() + File.separator + name;
+        ExcelUtils.SheetAndData<UploadSim> sheetAndData = ExcelUtils.create(path, UploadSim.class);
+        sheetAndData.sheet("流量卡数据", () -> {
+            List<DeviceSimDto.PageVo> pageVos = baseMapper.page(page);
+            List<UploadSim> uploadSims = new ArrayList<>();
+            pageVos.forEach(pageVo -> {
+                UploadSim uploadSim = new UploadSim()
+                        .setSimId(pageVo.getSimIccid());
+                DeviceSimDto.Vo sim = pageVo.getSim();
+                if (sim != null) {
+                    uploadSim.setActivateTime(DataTime.toString(sim.getActivateTime()))
+                            .setTimeout(DataTime.toString(sim.getTimeout()));
+                }
+                uploadSims.add(uploadSim);
+            });
+            return uploadSims;
+        }).builder();
+        //下载文件
+        InputStream inputStream = IoUtils.inputStream(path).get();
+        response.setHeader("Content-Disposition", "attachment; filename=" + "sim_data.xlsx");
         response.setContentType("application/xlsx");
         byte[] buffer = new byte[1024];
         int bytesRead;
@@ -159,6 +189,10 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
         while ((bytesRead = inputStream.read(buffer)) != -1) {
             outputStream.write(buffer, 0, bytesRead);
         }
+        inputStream.close();
+        outputStream.close();
+        //删除文件
+        new File(path).delete();
     }
 
     @ApiOperation("导入流量卡号数据")
@@ -223,21 +257,19 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
     }
 
     @Data
+    @Accessors(chain = true)
     public static class UploadSim {
 
-        /**
-         * 流量卡号
-         */
+        @ColumnWidth(25)
+        @ExcelProperty(value = "流量卡号")
         private String simId;
 
-        /**
-         * 激活时间
-         */
+        @ColumnWidth(25)
+        @ExcelProperty(value = "激活时间")
         private String activateTime;
 
-        /**
-         * 过期时间
-         */
+        @ColumnWidth(25)
+        @ExcelProperty(value = "过期时间")
         private String timeout;
 
     }

+ 3 - 0
device-api/src/main/java/com/xy/dto/DeviceSimDto.java

@@ -147,5 +147,8 @@ public class DeviceSimDto {
 
         @ApiModelProperty(value = "计费标准说明")
         private String chargingName;
+
+        @ApiModelProperty(value = "系统表流量卡号")
+        private String simIccid;
     }
 }

+ 4 - 0
device-start/src/main/resources/bootstrap-prod.yml

@@ -19,3 +19,7 @@ workerId: 10
 
 mysql:
   doc: true
+
+# 文件生成路径
+work:
+  path: /work

+ 4 - 0
device-start/src/main/resources/bootstrap-prod2.yml

@@ -22,3 +22,7 @@ workerId: 10
 
 mysql:
   doc: true
+
+# 文件生成路径
+work:
+  path: /work

+ 4 - 0
device-start/src/main/resources/bootstrap-uat.yml

@@ -14,3 +14,7 @@ xxl:
 
 #雪花ID唯一标识
 workerId: 10
+
+# 文件生成路径
+work:
+  path: /work

+ 4 - 0
device-start/src/main/resources/bootstrap.yml

@@ -18,3 +18,7 @@ cloud:
     head:
       carr-heads:
         - satoken
+
+# 文件生成路径
+file:
+  path: d://test//test

TEMPAT SAMPAH
device-start/src/main/resources/sim_templet.xlsx