Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/cn/fastfun/service/entity/AppDevice.java
LeeXin 3 years ago
parent
commit
c33fd58ae4

+ 1 - 5
src/main/java/cn/fastfun/config/TokenConfig.java

@@ -12,11 +12,7 @@ public class TokenConfig extends WebMvcConfigurationSupport {
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(new TokenInterceptor())
                 .addPathPatterns("/api/**")
-//                .excludePathPatterns("/api/user/login", "/api/user/logout", "/api/map/**")
-//                .excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**")
-//                .excludePathPatterns("/static/**")
-//                .excludePathPatterns("/open/**")
-                .excludePathPatterns("/api/user/**", "/api/v1/appdevice/excelTemplate");
+                .excludePathPatterns("/api/user/**", "/api/v1/appdevice/excelTemplate","/api/v1/appdevice/excelImport");
     }
 
     @Override

+ 3 - 6
src/main/java/cn/fastfun/controller/api/ApiAppDeviceController.java

@@ -1,6 +1,7 @@
 package cn.fastfun.controller.api;
 
 import cn.fastfun.controller.param.DeviceQueryParam;
+import cn.fastfun.service.AppDeviceService;
 import cn.fastfun.service.SysExcelFieldService;
 import cn.fastfun.service.entity.AppDevice;
 import cn.fastfun.service.entity.Product;
@@ -33,7 +34,7 @@ import java.util.Map;
 public class ApiAppDeviceController {
     //业务类
     @Resource(name = "appDeviceService")
-    JpaService<AppDevice, String> appDeviceService;
+    AppDeviceService appDeviceService;
 
     @Resource
     SysExcelFieldService sysExcelFieldService;
@@ -96,11 +97,7 @@ public class ApiAppDeviceController {
     @ApiOperation(value = "数据导入")
     @RequestMapping(value = "excelImport", method = RequestMethod.POST)
     public ApiDTO excelImport(MultipartFile file) {
-        List<Map<String, Object>> list = sysExcelFieldService.importExcel("invoice", file);
-        List<AppDevice> devices = new ArrayList<>();
-        list.forEach(p -> devices.add(new AppDevice()));
-
-        appDeviceService.save(devices);
+        appDeviceService.importDevice(sysExcelFieldService.importExcel("invoice", file));
         return ApiDTO.ok();
     }
 

+ 0 - 1
src/main/java/cn/fastfun/controller/api/SysController.java

@@ -162,7 +162,6 @@ public class SysController {
         List<SysRoleComponent> sysRoleComponentList = sysRoleComponentService.findAll(QueryParamExp.eq("roleCode", param.getId()));
         List<String> checked = new ArrayList<>();
         sysRoleComponentList.forEach(p -> {
-//            if (p.getComponentId().lastIndexOf("/") > 0 || "/dashboard".equals(p.getComponentId()))
                 checked.add(p.getComponentId());
         });
         objectMap.put("checked", checked);

+ 20 - 0
src/main/java/cn/fastfun/service/AppDeviceService.java

@@ -0,0 +1,20 @@
+package cn.fastfun.service;
+
+import cn.fastfun.service.entity.AppDevice;
+import com.bridge.service.JpaService;
+import com.bridge.service.impl.JpaServiceImp;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 设备相关服务
+ */
+public interface AppDeviceService extends JpaService<AppDevice, String> {
+
+    /**
+     * excel导入设备
+     */
+    void importDevice(List<Map<String, Object>> list);
+
+}

+ 11 - 2
src/main/java/cn/fastfun/service/entity/AppDevice.java

@@ -1,10 +1,12 @@
 package cn.fastfun.service.entity;
 
 
+import cn.fastfun.util.ObjectUtil;
 import com.bridge.entity.DateEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -12,12 +14,14 @@ import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
 import java.util.Date;
+import java.util.Map;
 
 
 @Entity
 @Table(name = "app_device")
 @Setter
 @Getter
+@NoArgsConstructor
 public class AppDevice extends DateEntity {
 
     private static final long serialVersionUID = 1L;
@@ -56,6 +60,11 @@ public class AppDevice extends DateEntity {
     private Date deliverTime;
 
 
-
-
+    public AppDevice(Map<String, Object> param) {
+        setBatchNum(ObjectUtil.obj2String(param.get("pathId")));
+        setSn(ObjectUtil.obj2String(param.get("sn")));
+        setImei(ObjectUtil.obj2String(param.get("imei")));
+        setDeliverTime(ObjectUtil.obj2Date(param.get("deliverTime")));
+        setStatus(1);
+    }
 }

+ 23 - 5
src/main/java/cn/fastfun/service/impl/AppDeviceServiceImp.java

@@ -1,15 +1,33 @@
 package cn.fastfun.service.impl;
 
+import cn.fastfun.service.AppDeviceService;
 import cn.fastfun.service.entity.AppDevice;
-import com.bridge.service.JpaService;
+import com.bridge.exception.ApiRuntimeException;
 import com.bridge.service.impl.JpaServiceImp;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
-* 服务实现类
-* Created by Bridge.
-*/
+ * 服务实现类
+ * Created by Bridge.
+ */
 @Service("appDeviceService")
-public class AppDeviceServiceImp extends JpaServiceImp<AppDevice, String> implements JpaService<AppDevice, String> {
+public class AppDeviceServiceImp extends JpaServiceImp<AppDevice, String> implements AppDeviceService {
 
+    @Override
+    public void importDevice(List<Map<String, Object>> list) {
+        List<AppDevice> devices = new ArrayList<>();
+        String diffBatchNum = "";
+        for (Map<String, Object> p : list) {
+            AppDevice device = new AppDevice(p);
+            if (StringUtils.isEmpty(diffBatchNum)) diffBatchNum = device.getBatchNum();
+            if (!diffBatchNum.equals(device.getBatchNum())) new ApiRuntimeException("存在不同的批次号");
+            devices.add(device);
+        }
+        save(devices);
+    }
 }

+ 2 - 1
src/main/java/cn/fastfun/service/impl/SysExcelFieldServiceImp.java

@@ -2,6 +2,7 @@ package cn.fastfun.service.impl;
 
 import cn.fastfun.service.SysExcelFieldService;
 import cn.fastfun.service.entity.SysExcelField;
+import cn.fastfun.util.DateUtils;
 import com.bridge.dto.QueryParam;
 import com.bridge.dto.QueryParamExp;
 import com.bridge.exception.ApiRuntimeException;
@@ -168,7 +169,7 @@ public class SysExcelFieldServiceImp extends JpaServiceImp<SysExcelField, String
         }
         if (cell.getCellType() == CellType.NUMERIC) {
             if (HSSFDateUtil.isCellDateFormatted(cell)) {
-                return HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString();
+                return DateUtils.toString(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()), DateUtils.YMDHMS);
             } else {
                 return new BigDecimal(cell.getNumericCellValue()).toString();
             }

+ 55 - 0
src/main/java/cn/fastfun/util/DateUtils.java

@@ -0,0 +1,55 @@
+package cn.fastfun.util;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Slf4j
+public class DateUtils {
+
+    public static String YMD = "yyyy-MM-dd";
+
+    public static String YMDHMS = "yyyy-MM-dd HH:mm:ss";
+
+    public static Long getTime(String start, String end) {
+        try {
+            return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(end).getTime() - new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(start).getTime()) / 1000;
+        } catch (ParseException e) {
+            log.error("时间格式错误:{}", e.getMessage());
+        }
+        return 0l;
+    }
+
+    public static String toDateTime(Long time) {
+        return toDateTime(time, "yyyy-MM-dd HH:mm:ss");
+    }
+
+    public static String toString(Date time, String pattern) {
+        return new SimpleDateFormat(pattern).format(time);
+    }
+
+    public static Date setDateTime(Date date, String hms) {
+        try {
+            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(toDateTime(date.getTime(), "yyyy-MM-dd") + " " + hms);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    public static String toDateTime(Long time, String pattern) {
+        return new SimpleDateFormat(pattern).format(time);
+    }
+
+    public static Date toDate(String date, String pattern) {
+        try {
+            return new SimpleDateFormat(pattern).parse(date);
+        } catch (ParseException e) {
+            log.error("时间转换异常: {}", e.getMessage());
+        }
+        return null;
+    }
+}

+ 29 - 0
src/main/java/cn/fastfun/util/ObjectUtil.java

@@ -0,0 +1,29 @@
+package cn.fastfun.util;
+
+import java.util.Date;
+
+/**
+ * 对象工具类
+ */
+public final class ObjectUtil {
+
+    public static String obj2String(Object object) {
+        return null == object ? "" : String.valueOf(object);
+    }
+
+    public static float obj2Float(Object object) {
+        return null == object ? 0 : Float.valueOf(obj2String(object));
+    }
+
+    public static double obj2Double(Object object) {
+        return null == object ? 0 : Double.valueOf(obj2String(object));
+    }
+
+    public static Date obj2Date(Object object) {
+        return null == object ? null : DateUtils.toDate(obj2String(object), DateUtils.YMDHMS);
+    }
+
+    public static int obj2Integer(Object object) {
+        return null == object ? 0 : Integer.parseInt(obj2String(object));
+    }
+}