lyhzzz 3 лет назад
Родитель
Сommit
2b38ea63c8
32 измененных файлов с 911 добавлено и 57 удалено
  1. 12 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/constant/CameraConstant.java
  2. 51 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/constant/CameraOutTypeEnum.java
  3. 117 13
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java
  4. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CompanyController.java
  5. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/OrderController.java
  6. 5 6
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java
  7. 5 8
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraOut.java
  8. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraVersion.java
  9. 104 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Company.java
  10. 9 12
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Order.java
  11. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  12. 3 2
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java
  13. 18 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICompanyMapper.java
  14. 1 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IOrderMapper.java
  15. 4 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java
  16. 17 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java
  17. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICompanyService.java
  18. 4 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IOrderService.java
  19. 14 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java
  20. 293 4
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java
  21. 40 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CompanyServiceImpl.java
  22. 11 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/OrderServiceImpl.java
  23. 61 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/util/ExcelUtil.java
  24. 13 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraInOutParam.java
  25. 17 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraParam.java
  26. 7 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraDetailVo.java
  27. 11 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraOutType.java
  28. 33 5
      4dkankan-center-manage/src/main/resources/mapper/manage/CameraMapper.xml
  29. 5 0
      4dkankan-center-manage/src/main/resources/mapper/manage/CompanyMapper.xml
  30. BIN
      4dkankan-center-manage/src/main/resources/template/cameraIn.xlsx
  31. BIN
      4dkankan-center-manage/src/main/resources/template/cameraOut.xlsx
  32. 11 0
      4dkankan-common/src/main/java/com/fdkankan/common/constant/CameraTypeEnum.java

+ 12 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/constant/CameraConstant.java

@@ -0,0 +1,12 @@
+package com.fdkankan.manage.constant;
+
+public class CameraConstant {
+
+    public static final String CHILD_PASSWORD_VALUE = "4dkankan@4dage";
+
+    public static final String WIFI_PASSWORD_VALUE = "12345678";
+
+    public static final String DEFAULT_AGENT = "4dage";
+
+
+}

+ 51 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/constant/CameraOutTypeEnum.java

@@ -0,0 +1,51 @@
+package com.fdkankan.manage.constant;
+
+public enum CameraOutTypeEnum {
+    NORMAL_SALES(0,"正常销售"),
+    STAFF_USE(1,"员工自用"),
+    GIFT_GIVING(2,"礼品赠送"),
+    OTHER(3,"其他");
+
+
+    int code;
+    String msg;
+
+    CameraOutTypeEnum(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+    public static CameraOutTypeEnum getByCode(int code){
+        CameraOutTypeEnum[] values = CameraOutTypeEnum.values();
+        for (CameraOutTypeEnum value : values) {
+            if(value.code == code){
+                return value;
+            }
+        }
+        return null;
+    }
+    public static CameraOutTypeEnum getByMsg(String msg){
+        CameraOutTypeEnum[] values = CameraOutTypeEnum.values();
+        for (CameraOutTypeEnum value : values) {
+            if(value.msg.equalsIgnoreCase(msg)){
+                return value;
+            }
+        }
+        return null;
+    }
+}

+ 117 - 13
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java

@@ -1,21 +1,125 @@
 package com.fdkankan.manage.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 相机主表 前端控制器
- * </p>
- *
- * @author 
- * @since 2022-06-16
- */
+import com.alibaba.nacos.common.codec.Base64;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.constant.CameraOutTypeEnum;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.ICompanyService;
+import com.fdkankan.manage.service.IOrderService;
+import com.fdkankan.manage.vo.request.CameraInOutParam;
+import com.fdkankan.manage.vo.request.CameraParam;
+import com.fdkankan.manage.vo.response.CameraOutType;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 @RestController
-@RequestMapping("/manage/camera")
+@RequestMapping("/service/manage/camera")
 public class CameraController {
 
+    @Autowired
+    ICameraService cameraService;
+    @Autowired
+    ICompanyService companyService;
+    @Autowired
+    IOrderService orderService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CameraParam param){
+        return ResultData.ok(cameraService.pageList(param));
+    }
+
+    @PostMapping("/in")
+    public ResultData in(@RequestBody CameraInOutParam param) {
+        cameraService.in(param.getWifiName());
+        return ResultData.ok();
+    }
+    @GetMapping("/getOutParam")
+    public ResultData getOutParam(@RequestParam(required = false,defaultValue = "0") Integer type,
+                                  @RequestParam(required = false) String companyName,
+                                  @RequestParam(required = false) String orderSn){
+        switch (type){
+            case 0:
+                List<CameraOutType> list  = new ArrayList<>();
+                Arrays.asList(CameraOutTypeEnum.values())
+                        .forEach((item -> list.add(new CameraOutType(item.getCode(),item.getMsg()))));
+                return ResultData.ok(list);
+            case 1:
+                return ResultData.ok(companyService.getCompanyName(companyName));
+            case 2:
+                return ResultData.ok(orderService.getOrderSn(orderSn));
+            default:
+                throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+    }
+    @PostMapping("/out")
+    public ResultData out(@RequestBody CameraInOutParam param) {
+        cameraService.out(param);
+        return ResultData.ok();
+    }
+
+    /**
+     * 下载出入库模板
+     * type 0 入库模板,出库模板
+     */
+    @GetMapping("/downTemplate")
+    public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
+            HttpServletResponse res, HttpServletRequest req) throws IOException {
+        String fileName = "cameraIn.xlsx";
+        if(type == 1){
+            fileName = "cameraOut.xlsx";
+        }
+        String path = this.getClass().getResource("/template/" + fileName).getPath();
+        OutputStream os = res.getOutputStream();
+        try {
+            String agent = req.getHeader("USER-AGENT");
+            if (agent != null && !agent.contains("MSIE") && !agent.contains("like Gecko")) {// FF
+                String enableFileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes(StandardCharsets.UTF_8))))
+                        + "?=";
+                res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
+            } else { // IE
+                String enableFileName = URLEncoder.encode(fileName, "UTF-8");
+                res.setHeader("Content-Disposition", "attachment; filename=" + enableFileName);
+            }
+            os.write(FileUtils.readFileToByteArray(new File(path)));
+            os.flush();
+        } finally {
+            os.close();
+        }
+    }
+
+    @PostMapping("uploadExcel")
+    public ResultData uploadExcel(@RequestParam(required = false) MultipartFile file,
+                                  @RequestParam(required = false,defaultValue = "0") Integer type) throws IOException {
+        cameraService.uploadExcel(file,type);
+        return ResultData.ok();
+    }
+    @PostMapping("/update")
+    public ResultData update(@RequestBody CameraInOutParam param) {
+        cameraService.updateCamera(param);
+        return ResultData.ok();
+    }
+
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody CameraParam param){
+        cameraService.deleteCamera(param.getId());
+        return ResultData.ok();
+    }
 }
 

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CompanyController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 客户企业logo信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@RestController
+@RequestMapping("/manage/company")
+public class CompanyController {
+
+}
+

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/OrderController.java

@@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
  * </p>
  *
  * @author 
- * @since 2022-05-31
+ * @since 2022-06-20
  */
 @RestController
 @RequestMapping("/manage/order")

+ 5 - 6
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/UserController.java

@@ -8,6 +8,7 @@ import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.service.ICameraService;
 import com.fdkankan.manage.service.IUserIncrementService;
 import com.fdkankan.manage.service.IUserService;
+import com.fdkankan.manage.vo.request.CameraParam;
 import com.fdkankan.manage.vo.request.UserIncrementParam;
 import com.fdkankan.manage.vo.request.UserParam;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,14 +72,12 @@ public class UserController {
         return ResultData.ok();
     }
 
-    @GetMapping("/getCameraDetail")
-    public ResultData getCameraDetail(@RequestParam(required = false)Long userId,
-                                      @RequestParam(required = false,defaultValue = "1") Integer pageNum,
-                                      @RequestParam(required = false,defaultValue = "10") Integer pageSize){
-        if(userId == null){
+    @PostMapping("/getCameraDetail")
+    public ResultData getCameraDetail(@RequestBody CameraParam cameraParam){
+        if(cameraParam.getUserId() == null){
             throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
         }
-        return ResultData.ok(cameraService.getCameraByUserId(pageNum,pageSize,userId));
+        return ResultData.ok(cameraService.pageList(cameraParam));
     }
 
     @GetMapping("/unbindCamera")

+ 5 - 8
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraOut.java

@@ -1,15 +1,12 @@
 package com.fdkankan.manage.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.util.Date;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 相机出库表
@@ -59,7 +56,7 @@ public class CameraOut implements Serializable {
     private Date updateTime;
 
     @TableField("rec_status")
-    @TableLogic
+    @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
 

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/CameraVersion.java

@@ -70,7 +70,7 @@ public class CameraVersion implements Serializable {
      * 记录的状态,A: 生效,I: 禁用
      */
     @TableField("rec_status")
-    @TableLogic
+    @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
     /**

+ 104 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Company.java

@@ -0,0 +1,104 @@
+package com.fdkankan.manage.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 客户企业logo信息
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Getter
+@Setter
+@TableName("t_company")
+public class Company implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 公司名称
+     */
+    @TableField("company_name")
+    private String companyName;
+
+    /**
+     * 顶部logo
+     */
+    @TableField("top_logo")
+    private String topLogo;
+
+    /**
+     * 地面logo
+     */
+    @TableField("floor_logo")
+    private String floorLogo;
+
+    /**
+     * 地面点位logo
+     */
+    @TableField("marker_logo")
+    private String markerLogo;
+
+    /**
+     * 二维码logo
+     */
+    @TableField("qr_logo")
+    private String qrLogo;
+
+    /**
+     * 是否显示初始logo,0隐藏,1显示
+     */
+    @TableField("show_logo")
+    private Integer showLogo;
+
+    /**
+     * t_manager表的id
+     */
+    @TableField("manager_id")
+    private Long managerId;
+
+    /**
+     * 新增的相机是否注册,0否,1删
+     */
+    @TableField("camera_delete")
+    private Integer cameraDelete;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private String updateTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("calculate_flexibility")
+    private Boolean calculateFlexibility;
+
+    /**
+     * 数据同步类型
+     */
+    @TableField("data_sync")
+    private String dataSync;
+
+
+}

+ 9 - 12
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Order.java

@@ -1,15 +1,12 @@
 package com.fdkankan.manage.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
 
 /**
  * <p>
@@ -17,7 +14,7 @@ import lombok.Setter;
  * </p>
  *
  * @author 
- * @since 2022-05-31
+ * @since 2022-06-20
  */
 @Getter
 @Setter
@@ -159,7 +156,7 @@ public class Order implements Serializable {
      * 完成时间
      */
     @TableField("finish_time")
-    private Date finishTime;
+    private String finishTime;
 
     /**
      * 买家附言
@@ -183,20 +180,20 @@ public class Order implements Serializable {
      * 创建时间
      */
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     /**
      * 记录的状态,A: 生效,I: 禁用
      */
-    @TableLogic
     @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
     private String recStatus;
 
     /**
      * 更新时间
      */
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") + "\\4dkankan-center-manage";
 
         generate(path,"manage", getTables(new String[]{
-                "t_scene_cooperation","t_scene_resource_cooperation"
+                "t_order"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 3 - 2
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICameraMapper.java

@@ -3,9 +3,9 @@ package com.fdkankan.manage.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.vo.request.CameraParam;
 import com.fdkankan.manage.vo.response.CameraDetailVo;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -18,5 +18,6 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface ICameraMapper extends BaseMapper<Camera> {
 
-    Page<CameraDetailVo> getCameraByUserId(Page<CameraDetailVo> page, @Param("userId") Long userId);
+
+    Page<CameraDetailVo> pageList(Page<CameraDetailVo> page, CameraParam param);
 }

+ 18 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ICompanyMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.Company;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 客户企业logo信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Mapper
+public interface ICompanyMapper extends BaseMapper<Company> {
+
+}

+ 1 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/IOrderMapper.java

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
  * </p>
  *
  * @author 
- * @since 2022-05-31
+ * @since 2022-06-20
  */
 @Mapper
 public interface IOrderMapper extends BaseMapper<Order> {

+ 4 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java

@@ -22,4 +22,8 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     void unbindCamera(Long cameraId, User user);
 
     CameraDetail getByCameraId(Long cameraId);
+
+    List<CameraDetail> getByCameraIds(List<Long> cameraIds);
+
+    void deleteByCameraId(Long cameraId);
 }

+ 17 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java

@@ -4,7 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.Camera;
 import com.fdkankan.manage.entity.User;
+import com.fdkankan.manage.vo.request.CameraInOutParam;
+import com.fdkankan.manage.vo.request.CameraParam;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -19,7 +23,19 @@ public interface ICameraService extends IService<Camera> {
 
     List<Camera> getListByCameraIdList(List<Long> cameraIdList);
 
-    PageInfo getCameraByUserId(Integer pageNum, Integer pageSize, Long userId);
+    Camera getBySnCode(String snCode);
 
     void unbindCamera(Long cameraId, User user);
+
+    PageInfo pageList(CameraParam param);
+
+    void in(String wifiName);
+
+    void out(CameraInOutParam param);
+
+    void uploadExcel(MultipartFile file, Integer type) throws IOException;
+
+    void updateCamera(CameraInOutParam param);
+
+    void deleteCamera(Long id);
 }

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICompanyService.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.Company;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 客户企业logo信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+public interface ICompanyService extends IService<Company> {
+
+    List<Company> getCompanyName(String content);
+
+    Company getCompanyByName(String companyName);
+}

+ 4 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IOrderService.java

@@ -3,14 +3,17 @@ package com.fdkankan.manage.service;
 import com.fdkankan.manage.entity.Order;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 订单表 服务类
  * </p>
  *
  * @author 
- * @since 2022-05-31
+ * @since 2022-06-20
  */
 public interface IOrderService extends IService<Order> {
 
+    List<String> getOrderSn(String content);
 }

+ 14 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java

@@ -80,4 +80,18 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         }
         return list.get(0);
     }
+
+    @Override
+    public List<CameraDetail> getByCameraIds(List<Long> cameraIds) {
+        LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(CameraDetail::getCameraId,cameraIds);
+        return  this.list(wrapper);
+    }
+
+    @Override
+    public void deleteByCameraId(Long cameraId) {
+        LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraDetail::getCameraId,cameraId);
+        this.remove(wrapper);
+    }
 }

+ 293 - 4
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java

@@ -3,16 +3,33 @@ package com.fdkankan.manage.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.CameraTypeEnum;
+import com.fdkankan.common.constant.Constant;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.common.util.DateUtil;
+import com.fdkankan.manage.constant.CameraConstant;
+import com.fdkankan.manage.constant.CameraOutTypeEnum;
 import com.fdkankan.manage.entity.Camera;
+import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.entity.Company;
 import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.mapper.ICameraMapper;
 import com.fdkankan.manage.service.*;
+import com.fdkankan.manage.util.ExcelUtil;
+import com.fdkankan.manage.vo.request.CameraInOutParam;
+import com.fdkankan.manage.vo.request.CameraParam;
 import com.fdkankan.manage.vo.response.CameraDetailVo;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.List;
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -35,6 +52,10 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     IUserIncrementService userIncrementService;
     @Autowired
     ISceneResourceCameraService sceneResourceCameraService;
+    @Autowired
+    ICompanyService companyService;
+    @Value("${upload.type}")
+    private String ossType;
 
     @Override
     public List<Camera> getListByCameraIdList(List<Long> cameraIdList) {
@@ -44,11 +65,21 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
     }
 
     @Override
-    public PageInfo getCameraByUserId(Integer pageNum, Integer pageSize,Long userId) {
-        Page<CameraDetailVo> page = this.getBaseMapper().getCameraByUserId(new Page<>(pageNum,pageSize),userId);
-        return PageInfo.PageInfo(page);
+    public Camera getBySnCode(String snCode) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Camera::getSnCode,snCode);
+        List<Camera> list = this.list(wrapper);
+        if(list == null || list.size() <=0 ){
+            return null;
+        }
+        return list.get(0);
     }
 
+    private List<Camera> getBySnCodes(List<String> snCodeList) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Camera::getSnCode,snCodeList);
+        return this.list(wrapper);
+    }
 
     @Override
     public void unbindCamera(Long cameraId, User user) {
@@ -58,4 +89,262 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         sceneProService.unbindCamera(cameraId);             //取消关联场景
         sceneResourceCameraService.unbindCamera(cameraId);  //删除协作相机
     }
+
+    @Override
+    public PageInfo pageList(CameraParam param) {
+        Page<CameraDetailVo> voPage = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        for (CameraDetailVo record : voPage.getRecords()) {
+            CameraOutTypeEnum cameraOutTypeEnum = CameraOutTypeEnum.getByCode(record.getOutType());
+            if(cameraOutTypeEnum != null){
+                record.setOutTypeString(cameraOutTypeEnum.getMsg());
+            }else {
+                record.setOutTypeString("未出库");
+            }
+        }
+        return PageInfo.PageInfo(voPage);
+    }
+
+    @Override
+    public void in(String wifiName) {
+        if(StringUtils.isEmpty(wifiName) ){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        if( !wifiName.contains("_") || !wifiName.contains("4D")){
+            throw new BusinessException(-1,"wifi名称格式错误");
+        }
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Camera::getWifiName,wifiName);
+        long count = this.count(wrapper);
+        if(count > 0){
+            throw new BusinessException(-1,"设备wifi名称重复");
+        }
+        saveBatchCamera(Collections.singletonList(wifiName));
+    }
+    
+    private void saveBatchCamera(List<String> wifiNameList){
+        HashSet<String> wifiNameSet = new HashSet<>(wifiNameList);
+        List<Camera> cameraList = new ArrayList<>();
+        for (String wifiName : wifiNameSet) {
+            String[] res = wifiName.split("_");
+            Camera camera = new Camera();
+            camera.setWifiName(wifiName);
+            camera.setSnCode(res[1]);
+            camera.setChildName(res[1]);
+            camera.setWifiPassword(CameraConstant.WIFI_PASSWORD_VALUE);
+            camera.setChildPassword(CameraConstant.CHILD_PASSWORD_VALUE);
+            camera.setActivatedTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
+            cameraList.add(camera);
+        }
+        this.saveBatch(cameraList);
+    }
+
+    private void ins(List<String> wifiNameList){
+        List<Integer> errorRow = getErrorRow(wifiNameList, null);
+        getResultIn(errorRow);
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Camera::getWifiName,wifiNameList);
+        List<Camera> list = this.list(wrapper);
+        if(list.size() >0){
+            List<String> newList = list.parallelStream().map(Camera::getWifiName).collect(Collectors.toList());
+            List<Integer> errorRow2 = getErrorRow(wifiNameList, newList);
+            getResultIn(errorRow2);
+        }
+        saveBatchCamera(wifiNameList);
+    }
+
+    private void getResultIn(List<Integer> errorList){
+        if(errorList.size() <=0){
+            return;
+        }
+        StringBuilder res = new StringBuilder("第");
+        for (Integer index : errorList) {
+            res.append(index).append(",");
+        }
+        res.deleteCharAt(res.lastIndexOf(","));
+        res.append("行存在错误");
+        throw new BusinessException(-1, res.toString());
+    }
+
+    private List<Integer> getErrorRow(List<String> wifiNameList, List<String> newList){
+        List<Integer> errorIndexList = new ArrayList<>();
+        boolean bo = false;
+        if(newList == null){
+            newList = wifiNameList;
+            bo = true;
+        }
+        for (String wifiName : newList) {
+            int index = wifiNameList.indexOf(wifiName) + 3;
+            if(bo){
+                if( !wifiName.contains("_") || !wifiName.contains("4D")){
+                    errorIndexList.add(index);
+                }
+            }else {
+                errorIndexList.add(index);
+            }
+        }
+        return errorIndexList;
+    }
+
+    @Override
+    public void out(CameraInOutParam param) {
+        if(param.getOutType() == null || param.getCompanyId() == null || StringUtils.isEmpty(param.getSnCode())){
+            throw  new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Camera camera = this.getBySnCode(param.getSnCode());
+        if(camera == null){
+            throw new BusinessException(-1,"相机不存在");
+        }
+        CameraDetail detail = cameraDetailService.getByCameraId(camera.getId());
+        if(detail !=null){
+            throw new BusinessException(-1,"该相机已出库");
+        }
+        HashMap<String,Camera> hashMap = new HashMap<>();
+        hashMap.put(param.getSnCode(),camera);
+        this.saveBatchDetail(hashMap, Collections.singletonList(param));
+
+    }
+    private void outs(List<CameraInOutParam> params){
+        List<String> snCodeList = params.parallelStream().map(CameraInOutParam::getSnCode).collect(Collectors.toList());
+        checkSnCode(snCodeList);
+
+        List<Camera> cameraList = this.getBySnCodes(snCodeList);
+
+        List<Long> cameraIds = cameraList.parallelStream().map(Camera::getId).collect(Collectors.toList());
+        List<CameraDetail> cameraDetails = cameraDetailService.getByCameraIds(cameraIds);
+        HashMap<Long,CameraDetail> detailMap = new HashMap<>();
+        for (CameraDetail cameraDetail : cameraDetails) {
+            detailMap.put(cameraDetail.getCameraId(),cameraDetail);
+        }
+
+        HashMap<String,Camera> snCodeMap = new HashMap<>();
+        for (Camera camera : cameraList) {
+            snCodeMap.put(camera.getSnCode(),camera);
+        }
+        List<Integer> errorList = new ArrayList<>();
+        for (String snCode : snCodeList) {
+            Camera camera = snCodeMap.get(snCode);
+            if(camera == null || detailMap.get(camera.getId()) !=null){
+                errorList.add(snCodeList.indexOf(snCode) +3);
+            }
+        }
+        getResultIn(errorList);
+
+        this.saveBatchDetail(snCodeMap,params);
+
+    }
+
+    private void saveBatchDetail( HashMap<String,Camera> snCodeMap,List<CameraInOutParam> params){
+        List<CameraDetail> cameraDetails = new ArrayList<>();
+        for (CameraInOutParam param : params) {
+            Camera camera = snCodeMap.get(param.getSnCode());
+            String wifiName = camera.getWifiName();
+            Integer type = CameraTypeEnum.getTypeByWifiNamePrefix(wifiName.substring(0,wifiName.lastIndexOf("_") +1));
+            CameraDetail cameraDetail = new CameraDetail();
+            cameraDetail.setOrderSn(param.getOrderSn());
+            cameraDetail.setOwn(param.getOutType());
+            cameraDetail.setCompanyId(param.getCompanyId());
+            cameraDetail.setAgency(CameraConstant.DEFAULT_AGENT);
+            cameraDetail.setCameraId(camera.getId());
+            cameraDetail.setCountry(0);//默认中国
+            if("aws".equals(ossType)){
+                cameraDetail.setCountry(1);//1-国外
+            }
+            cameraDetail.setType(type);
+            if (1 == cameraDetail.getType() || 9 == cameraDetail.getType() || 10 == cameraDetail.getType()){
+                cameraDetail.setTotalSpace(Long.valueOf(Constant.CAMERA_BASE_SPACE_VALUE));
+                cameraDetail.setUsedSpace(0L);
+            }
+            if(type != 9 && type != 10){
+                type = type == 0 ? 1: 4;
+            }
+            cameraDetail.setGoodsId(Long.valueOf(type));
+            cameraDetails.add(cameraDetail);
+        }
+        cameraDetailService.saveBatch(cameraDetails);
+    }
+
+    private void checkSnCode(List<String> snCodeList) {
+        HashMap<String,Integer> map = new HashMap<>();
+        for (String snCode : snCodeList) {
+            if(map.get(snCode) == null){
+                map.put(snCode,1);
+            }else {
+                map.put(snCode,2);
+            }
+        }
+        List<String> errorSnCode = new ArrayList<>();
+        for (String snCode : map.keySet()) {
+            if(map.get(snCode) > 1){
+                errorSnCode.add(snCode);
+            }
+        }
+        if(errorSnCode.size() >0){
+            throw new BusinessException(-1,"存在重复的snCode:"+errorSnCode);
+        }
+
+    }
+
+
+    @Override
+    public void uploadExcel(MultipartFile file, Integer type) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        assert originalFilename != null;
+        String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
+        if (!fileType.equalsIgnoreCase("xls") && !fileType.equalsIgnoreCase("xlsx")) {
+            throw new BusinessException(-1,"文件格式校验,需为excel文件;");
+        }
+        List<HashMap<Integer, String>> excelRowList = ExcelUtil.getExcelRowList(file);
+        List<String> wifiNameList = new ArrayList<>();
+        List<CameraInOutParam> params = new ArrayList<>();
+        for (HashMap<Integer, String> map : excelRowList) {
+            if(type == 0){
+                String wifiName = map.get(0);
+                wifiNameList.add(wifiName);
+            }else if(type == 1){
+                String snCode = map.get(0);
+                String outTypeString = map.get(1);
+                String companyName = map.get(2);
+                String orderSn = map.get(3);
+
+                CameraOutTypeEnum outTypeEnum = CameraOutTypeEnum.getByMsg(outTypeString);
+                if(outTypeEnum == null){
+                    throw new BusinessException(-1,"出库类型错误:"+outTypeString);
+                }
+                int outType = outTypeEnum.getCode();
+                Company company = companyService.getCompanyByName(companyName);
+                CameraInOutParam param = new CameraInOutParam();
+                param.setCompanyId(company.getId());
+                param.setOutType(outType);
+                param.setOrderSn(orderSn);
+                param.setSnCode(snCode);
+                params.add(param);
+            }
+        }
+        if(wifiNameList.size() >0){
+            this.ins(wifiNameList);
+        }
+        if(params.size() >0){
+            this.outs(params);
+        }
+    }
+
+    @Override
+    public void updateCamera(CameraInOutParam param) {
+        if(param.getId() == null|| param.getOutType() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getId());
+        cameraDetail.setOwn(param.getOutType());
+        cameraDetail.setOrderSn(param.getOrderSn());
+        cameraDetailService.updateById(cameraDetail);
+    }
+
+    @Override
+    public void deleteCamera(Long id) {
+        if(id == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.removeById(id);
+        cameraDetailService.deleteByCameraId(id);
+    }
 }

+ 40 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CompanyServiceImpl.java

@@ -0,0 +1,40 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.entity.Company;
+import com.fdkankan.manage.mapper.ICompanyMapper;
+import com.fdkankan.manage.service.ICompanyService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 客户企业logo信息 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-06-20
+ */
+@Service
+public class CompanyServiceImpl extends ServiceImpl<ICompanyMapper, Company> implements ICompanyService {
+
+    @Override
+    public List<Company> getCompanyName(String content) {
+        LambdaQueryWrapper<Company> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(Company::getCompanyName,content);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public Company getCompanyByName(String companyName) {
+        LambdaQueryWrapper<Company> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Company::getCompanyName,companyName);
+        List<Company> list = this.list(wrapper);
+        if(list!=null && list.size()>0){
+            return list.get(0);
+        }
+        return null;
+    }
+}

+ 11 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/OrderServiceImpl.java

@@ -1,20 +1,30 @@
 package com.fdkankan.manage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.manage.entity.Order;
 import com.fdkankan.manage.mapper.IOrderMapper;
 import com.fdkankan.manage.service.IOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 订单表 服务实现类
  * </p>
  *
  * @author 
- * @since 2022-05-31
+ * @since 2022-06-20
  */
 @Service
 public class OrderServiceImpl extends ServiceImpl<IOrderMapper, Order> implements IOrderService {
 
+    @Override
+    public List<String> getOrderSn(String content) {
+        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(Order::getOrderSn,content);
+        return this.list(wrapper).parallelStream().map(Order::getOrderSn).collect(Collectors.toList());
+    }
 }

+ 61 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/util/ExcelUtil.java

@@ -0,0 +1,61 @@
+package com.fdkankan.manage.util;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class ExcelUtil {
+
+
+    public static List<HashMap<Integer,String>> getExcelRowList(MultipartFile multipartFile) throws IOException {
+        //行List,也是最终要返回的List
+        List<HashMap<Integer,String>> rowList=new ArrayList<>();
+        Workbook workbook=getExcelWorkBook(multipartFile);
+        Sheet sheet = workbook.getSheetAt(0);
+        if (sheet == null) {
+            throw new IOException("创建Sheet失败!");
+        }
+        //开始遍历行
+        for (int i=3;i<= sheet.getLastRowNum();i++){
+            Row row = sheet.getRow(i);
+            //列List
+            HashMap<Integer,String> map = new HashMap<>();
+            //转换为List数组
+            for (int cellNum=0;cellNum<= row.getLastCellNum();cellNum++){
+                Cell cell = row.getCell(cellNum);
+                if(cell != null){
+                    map.put(cellNum,cell.toString());
+                }
+            }
+            rowList.add(map);
+        }
+        workbook.close();
+        return rowList;
+    }
+
+
+    //获取WorkBook对象
+    private static Workbook getExcelWorkBook(MultipartFile multipartFile) throws IOException {
+        InputStream inputStream=multipartFile.getInputStream();
+        String originalFileName=multipartFile.getOriginalFilename();
+        assert originalFileName != null;
+        String fileType=originalFileName.substring(originalFileName.lastIndexOf(".")+1);
+        if (fileType.equalsIgnoreCase("xls")) {
+            //xls格式
+            return new HSSFWorkbook(inputStream);
+        } else {
+            //xlsx格式
+            return new XSSFWorkbook(inputStream);
+        }
+    }
+}

+ 13 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraInOutParam.java

@@ -0,0 +1,13 @@
+package com.fdkankan.manage.vo.request;
+
+import lombok.Data;
+
+@Data
+public class CameraInOutParam {
+    private Long id;
+    private String wifiName;
+    private Integer outType;
+    private Long companyId;
+    private String orderSn;
+    private String snCode;
+}

+ 17 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraParam.java

@@ -0,0 +1,17 @@
+package com.fdkankan.manage.vo.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class CameraParam extends RequestBase {
+    private Long id;
+    private Long userId;
+    private String snCode;
+    private String companyName;
+    private String userName;
+    private Integer outType;
+    private Integer type;
+    private String activatedStartTime;
+    private String activatedEndTime;
+}

+ 7 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraDetailVo.java

@@ -8,4 +8,11 @@ public class CameraDetailVo {
     private String snCode;
     private String activatedTime;
     private String outTime;
+
+    private String wifiName;
+    private String type;
+    private Integer outType;
+    private String outTypeString;
+    private String companyName;
+    private String userName;
 }

+ 11 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/CameraOutType.java

@@ -0,0 +1,11 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class CameraOutType {
+    private Integer id;
+    private String name;
+}

+ 33 - 5
4dkankan-center-manage/src/main/resources/mapper/manage/CameraMapper.xml

@@ -2,10 +2,38 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.manage.mapper.ICameraMapper">
 
-    <select id="getCameraByUserId" resultType="com.fdkankan.manage.vo.response.CameraDetailVo">
-        select c.id ,c.sn_code,c.activated_time ,o.create_time as outTime  from t_camera c
-            left join t_camera_detail d on c.id = d.camera_id
-            left join t_camera_out o on c.id = o.camera_id
-            where c.rec_status = 'A' and d.user_id = #{userId}
+    <select id="pageList" resultType="com.fdkankan.manage.vo.response.CameraDetailVo">
+        select c.id ,c.sn_code,c.activated_time ,d.create_time as outTime ,d.type,d.own as outType ,co.company_name ,u.user_name, c.wifi_name
+        from t_camera c
+        left join t_camera_detail d on c.id = d.camera_id
+        left join t_company co on d.company_id = co.id
+        left join t_user u on d.user_id = u.id
+        where c.rec_status = 'A'
+        <if test="param.userId !=null ">
+            and d.user_id = #{param.userId}
+        </if>
+        <if test="param.outType !=null ">
+            and d.own = #{param.outType}
+        </if>
+        <if test="param.type !=null ">
+            and c.type = #{param.type}
+        </if>
+        <if test="param.snCode !=null and param.snCode != '' ">
+            and c.sn_code like concat ('%',#{param.snCode},'%')
+        </if>
+        <if test="param.companyName !=null and param.companyName != '' ">
+            and co.company_name like concat('%',#{param.companyName},'%')
+        </if>
+        <if test="param.userName !=null and param.userName != '' ">
+            and u.user_name like  concat('%',#{param.userName},'%')
+        </if>
+        <if test="param.activatedStartTime !=null and param.activatedStartTime != '' ">
+            and c.activated_time $gt;= #{param.activatedStartTime}
+        </if>
+        <if test="param.activatedEndTime !=null and param.activatedEndTime != '' ">
+            and c.activated_time $lt;= #{param.activatedEndTime}
+        </if>
+        order by c.activated_time desc
     </select>
+
 </mapper>

+ 5 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/CompanyMapper.xml

@@ -0,0 +1,5 @@
+<?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.fdkankan.manage.mapper.ICompanyMapper">
+
+</mapper>

BIN
4dkankan-center-manage/src/main/resources/template/cameraIn.xlsx


BIN
4dkankan-center-manage/src/main/resources/template/cameraOut.xlsx


+ 11 - 0
4dkankan-common/src/main/java/com/fdkankan/common/constant/CameraTypeEnum.java

@@ -25,11 +25,18 @@ public enum CameraTypeEnum {
         return sceneNumPrefix;
     }
 
+    public String getWifiNamePrefix() {
+        return wifiNamePrefix;
+    }
+
+
     static Map<Integer,CameraTypeEnum> typeMaps = new HashMap<>(5);
+    static Map<String,Integer> typePrefixMap = new HashMap<>(5);
 
     static{
         for (CameraTypeEnum typeEnum : CameraTypeEnum.values()) {
             typeMaps.put(typeEnum.getType(),typeEnum);
+            typePrefixMap.put(typeEnum.getWifiNamePrefix(),typeEnum.getType());
         }
     }
 
@@ -47,4 +54,8 @@ public enum CameraTypeEnum {
         return "";
     }
 
+    public static Integer getTypeByWifiNamePrefix(String wifiNamePrefix){
+        return typePrefixMap.get(wifiNamePrefix);
+    }
+
 }