Преглед изворни кода

产品运营管理/场景管理

lyhzzz пре 3 година
родитељ
комит
5e2556f2b0
28 измењених фајлова са 552 додато и 167 уклоњено
  1. 0 45
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java
  2. 29 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CompanyController.java
  3. 66 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/ExcelController.java
  4. 35 10
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneController.java
  5. 0 21
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneProController.java
  6. 3 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/Company.java
  7. 5 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneMapper.java
  8. 5 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneProMapper.java
  9. 2 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraDetailService.java
  10. 6 4
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICameraService.java
  11. 2 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ICompanyService.java
  12. 4 1
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/IExcelService.java
  13. 8 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneProService.java
  14. 4 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/ISceneService.java
  15. 7 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java
  16. 81 80
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java
  17. 7 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/CompanyServiceImpl.java
  18. 74 5
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/ExcelServiceImpl.java
  19. 94 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  20. 14 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/SceneServiceImpl.java
  21. 21 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/util/SceneStatusUtil.java
  22. 1 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/CameraInOutParam.java
  23. 13 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/request/SceneParam.java
  24. 20 0
      4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/response/SceneVo.java
  25. 2 1
      4dkankan-center-manage/src/main/resources/mapper/manage/CompanyMapper.xml
  26. 25 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneMapper.xml
  27. 24 0
      4dkankan-center-manage/src/main/resources/mapper/manage/SceneProMapper.xml
  28. BIN
      4dkankan-center-manage/src/main/resources/template/cameraCompany.xlsx

+ 0 - 45
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/CameraController.java

@@ -1,7 +1,6 @@
 package com.fdkankan.manage.controller;
 
 
-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;
@@ -12,18 +11,9 @@ 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;
@@ -73,42 +63,7 @@ public class CameraController {
         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);

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

@@ -1,7 +1,11 @@
 package com.fdkankan.manage.controller;
 
 
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.entity.Company;
+import com.fdkankan.manage.service.ICameraDetailService;
 import com.fdkankan.manage.service.ICompanyService;
 import com.fdkankan.manage.vo.request.CompanyParam;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,11 +28,36 @@ public class CompanyController {
 
     @Autowired
     ICompanyService companyService;
+    @Autowired
+    ICameraDetailService cameraDetailService;
 
     @PostMapping("/list")
     public ResultData list(@RequestBody CompanyParam param){
         return ResultData.ok(companyService.pageList(param));
     }
 
+    @PostMapping("/add")
+    public ResultData add(@RequestBody Company param){
+        companyService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+    @PostMapping("/update")
+    public ResultData update(@RequestBody Company param){
+        companyService.saveOrUpdate(param);
+        return ResultData.ok();
+    }
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody Company param){
+        if(param.getId() == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Long count = cameraDetailService.getCountByCompanyId(param.getId());
+        if(count >0){
+            throw new BusinessException(-1,"删除失败,请先解绑设备");
+        }
+        companyService.removeById(param.getId());
+        return ResultData.ok();
+    }
+
 }
 

+ 66 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/ExcelController.java

@@ -0,0 +1,66 @@
+package com.fdkankan.manage.controller;
+
+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.service.IExcelService;
+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;
+
+@RestController
+@RequestMapping("/service/manager/excel")
+public class ExcelController {
+
+    @Autowired
+    IExcelService excelService;
+
+    /**
+     * 下载出入库模板
+     * type 0 入库模板, 1出库模板 ,2 客户关联模板
+     */
+    @GetMapping("/downTemplate")
+    public void downInTemplate(@RequestParam(required = false,defaultValue = "0") Integer type,
+                               HttpServletResponse res, HttpServletRequest req) throws IOException {
+        String fileName = "";
+        switch (type){
+            case 0 : fileName = "cameraIn.xlsx"; break;
+            case 1 : fileName = "cameraOut.xlsx"; break;
+            case 2 : fileName = "cameraCompany.xlsx"; break;
+            default: throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        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 {
+        return ResultData.ok(excelService.uploadExcel(file,type));
+    }
+}

+ 35 - 10
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -1,21 +1,46 @@
 package com.fdkankan.manage.controller;
 
 
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.manage.service.ISceneProService;
+import com.fdkankan.manage.vo.request.SceneParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
-/**
- * <p>
- * 场景表 前端控制器
- * </p>
- *
- * @author 
- * @since 2022-06-16
- */
 @RestController
-@RequestMapping("/manage/scene")
+@RequestMapping("/service/manage/scene")
 public class SceneController {
 
+    @Autowired
+    ISceneProService sceneProService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody SceneParam param){
+        return ResultData.ok(sceneProService.pageList(param));
+    }
+
+    @PostMapping("/move")
+    public ResultData move(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum()) || StringUtils.isEmpty(param.getSnCode())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sceneProService.move(param);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/copy")
+    public ResultData copy(@RequestBody SceneParam param){
+        if(StringUtils.isEmpty(param.getNum())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sceneProService.copy(param.getNum());
+        return ResultData.ok();
+    }
 }
 

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

@@ -1,21 +0,0 @@
-package com.fdkankan.manage.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * pro场景表 前端控制器
- * </p>
- *
- * @author 
- * @since 2022-06-16
- */
-@RestController
-@RequestMapping("/manage/scenePro")
-public class SceneProController {
-
-}
-

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

@@ -100,5 +100,8 @@ public class Company implements Serializable {
     @TableField("data_sync")
     private String dataSync;
 
+    @TableField("company_desc")
+    private String companyDesc;
+
 
 }

+ 5 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneMapper.java

@@ -1,8 +1,11 @@
 package com.fdkankan.manage.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.entity.Scene;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.SceneVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,4 +25,6 @@ public interface ISceneMapper extends BaseMapper<Scene> {
     List<GroupByCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
 
     List<GroupByCount> getCountGroupByCameraId(@Param("cameraIds") List<Long> cameraIds);
+
+    Page<SceneVo> pageList(Page<SceneVo> page, SceneParam param);
 }

+ 5 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/mapper/ISceneProMapper.java

@@ -1,8 +1,11 @@
 package com.fdkankan.manage.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.entity.ScenePro;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.SceneVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -22,4 +25,6 @@ public interface ISceneProMapper extends BaseMapper<ScenePro> {
     List<GroupByCount> getCountGroupByUserId(@Param("userIdList") List<Long> userIdList);
 
     List<GroupByCount> getCountGroupByCameraId(@Param("cameraIds") List<Long> cameraIds);
+
+    Page<SceneVo> pageList(Page<SceneVo> page, SceneParam param);
 }

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

@@ -30,4 +30,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     HashMap<Long, Long> getCountGroupByCompanyId();
 
     HashMap<Long, Long>  getSceneCountGroupByCameraId();
+
+    Long getCountByCompanyId(Long companyId);
 }

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

@@ -6,9 +6,7 @@ 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;
 
 /**
@@ -33,9 +31,13 @@ public interface ICameraService extends IService<Camera> {
 
     void out(CameraInOutParam param);
 
-    void uploadExcel(MultipartFile file, Integer type) throws IOException;
-
     void updateCamera(CameraInOutParam param);
 
     void deleteCamera(Long id);
+
+    Integer ins(List<String> wifiNameList);
+
+    Integer outs(List<CameraInOutParam> params);
+
+    Integer updateCompany(List<CameraInOutParam> companyParams);
 }

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

@@ -22,4 +22,6 @@ public interface ICompanyService extends IService<Company> {
     Company getCompanyByName(String companyName);
 
     PageInfo pageList(CompanyParam param);
+
+    List<Company> getCompanyByNames(List<String> companyNames);
 }

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

@@ -1,9 +1,11 @@
 package com.fdkankan.manage.service;
 
 import com.fdkankan.manage.vo.InvoicePageParamVO;
-import java.io.IOException;
+import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 
 /**
  * <p>
@@ -18,4 +20,5 @@ public interface IExcelService {
     public void exportInvoice(HttpServletRequest request, HttpServletResponse response, InvoicePageParamVO param)
         throws IOException;
 
+    Integer uploadExcel(MultipartFile file, Integer type) throws IOException;
 }

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

@@ -1,8 +1,10 @@
 package com.fdkankan.manage.service;
 
+import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.SceneParam;
 
 import java.util.HashMap;
 import java.util.List;
@@ -26,4 +28,10 @@ public interface ISceneProService extends IService<ScenePro> {
     HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
 
     HashMap<Long, Long>  getCountGroupByCameraId(List<Long> cameraIds);
+
+    PageInfo pageList(SceneParam param);
+
+    void move(SceneParam param);
+
+    void copy(String num);
 }

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

@@ -1,7 +1,9 @@
 package com.fdkankan.manage.service;
 
+import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.Scene;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.request.SceneParam;
 
 import java.util.HashMap;
 import java.util.List;
@@ -21,4 +23,6 @@ public interface ISceneService extends IService<Scene> {
     HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList);
 
     HashMap<Long, Long> getCountGroupByCameraId(List<Long> cameraIds);
+
+    PageInfo pageList(SceneParam param);
 }

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

@@ -128,4 +128,11 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
 
         return resultMap;
     }
+
+    @Override
+    public Long getCountByCompanyId(Long companyId) {
+        LambdaQueryWrapper<CameraDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraDetail::getCompanyId,companyId);
+        return this.count(wrapper);
+    }
 }

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

@@ -17,7 +17,6 @@ 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;
@@ -25,9 +24,7 @@ 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.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -121,7 +118,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         saveBatchCamera(Collections.singletonList(wifiName));
     }
     
-    private void saveBatchCamera(List<String> wifiNameList){
+    private Integer saveBatchCamera(List<String> wifiNameList){
         HashSet<String> wifiNameSet = new HashSet<>(wifiNameList);
         List<Camera> cameraList = new ArrayList<>();
         for (String wifiName : wifiNameSet) {
@@ -135,10 +132,11 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
             camera.setActivatedTime(DateUtil.date2String(new Date(),DateUtil.DEFAULT_DATE_FORMAT));
             cameraList.add(camera);
         }
-        this.saveBatch(cameraList);
-    }
+        return this.saveBatch(cameraList) ? cameraList.size() : 0;
 
-    private void ins(List<String> wifiNameList){
+    }
+    @Override
+    public Integer ins(List<String> wifiNameList){
         List<Integer> errorRow = getErrorRow(wifiNameList, null);
         getResultIn(errorRow);
         LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
@@ -149,7 +147,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
             List<Integer> errorRow2 = getErrorRow(wifiNameList, newList);
             getResultIn(errorRow2);
         }
-        saveBatchCamera(wifiNameList);
+        return saveBatchCamera(wifiNameList);
     }
 
     private void getResultIn(List<Integer> errorList){
@@ -203,37 +201,16 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         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);
+    @Override
+    public Integer outs(List<CameraInOutParam> params){
+        setCompanyIdByDb(params);
+        HashMap<String, Object> resultMap = getResultMap(params,1);
+        HashMap<String,Camera> snCodeMap = (HashMap<String, Camera>) resultMap.get("snCodeMap");
+        return this.saveBatchDetail(snCodeMap,params);
 
     }
 
-    private void saveBatchDetail( HashMap<String,Camera> snCodeMap,List<CameraInOutParam> params){
+    private Integer saveBatchDetail(HashMap<String,Camera> snCodeMap, List<CameraInOutParam> params){
         List<CameraDetail> cameraDetails = new ArrayList<>();
         for (CameraInOutParam param : params) {
             Camera camera = snCodeMap.get(param.getSnCode());
@@ -260,7 +237,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
             cameraDetail.setGoodsId(Long.valueOf(type));
             cameraDetails.add(cameraDetail);
         }
-        cameraDetailService.saveBatch(cameraDetails);
+        return cameraDetailService.saveBatch(cameraDetails) ? cameraDetails.size() : 0;
     }
 
     private void checkSnCode(List<String> snCodeList) {
@@ -286,49 +263,6 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
 
 
     @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);
@@ -347,4 +281,71 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         this.removeById(id);
         cameraDetailService.deleteByCameraId(id);
     }
+
+    @Override
+    public Integer updateCompany(List<CameraInOutParam> companyParams) {
+        setCompanyIdByDb(companyParams);
+        HashMap<String, Object> resultMap = getResultMap(companyParams,2);
+        HashMap<Long, CameraDetail> detailMap = (HashMap<Long, CameraDetail>) resultMap.get("detailMap");
+        HashMap<String, Camera> snCodeMap = (HashMap<String, Camera>) resultMap.get("snCodeMap");
+        List<CameraDetail> updateDetailList = new ArrayList<>();
+        for (CameraInOutParam companyParam : companyParams) {
+            Camera camera = snCodeMap.get(companyParam.getSnCode());
+            CameraDetail cameraDetail = detailMap.get(camera.getId());
+            cameraDetail.setCompanyId(companyParam.getCompanyId());
+            updateDetailList.add(cameraDetail);
+        }
+        return cameraDetailService.updateBatchById(updateDetailList) ? updateDetailList.size() : 0;
+
+    }
+
+    private void setCompanyIdByDb(List<CameraInOutParam> companyParams){
+        List<String> companyNames = companyParams.parallelStream().map(CameraInOutParam::getCompanyName).collect(Collectors.toList());
+        List<Company> companyList = companyService.getCompanyByNames(companyNames);
+        List<String> dbCompanyNames = companyList.parallelStream().map(Company::getCompanyName).collect(Collectors.toList());
+        List<Integer> errorRow = this.getErrorRow(companyNames, dbCompanyNames);
+        getResultIn(errorRow);
+        HashMap<String,Long> companyNameMap = new HashMap<>();
+        for (Company company : companyList) {
+            companyNameMap.put(company.getCompanyName(),company.getId());
+        }
+        for (CameraInOutParam companyParam : companyParams) {
+            companyParam.setCompanyId(companyNameMap.get(companyParam.getCompanyName()));
+        }
+    }
+
+    private HashMap<String, Object> getResultMap(List<CameraInOutParam> params, Integer type){
+        HashMap<String,Object> resultMap = new HashMap<>();
+        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(type == 1 && (camera == null || detailMap.get(camera.getId()) !=null)){
+                errorList.add(snCodeList.indexOf(snCode) +3);
+            }
+            if(type == 2 && (camera == null || detailMap.get(camera.getId()) == null)){
+                errorList.add(snCodeList.indexOf(snCode) +3);
+            }
+        }
+        getResultIn(errorList);
+        resultMap.put("detailMap",detailMap);
+        resultMap.put("snCodeMap",snCodeMap);
+        return resultMap;
+    }
+
 }

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

@@ -59,4 +59,11 @@ public class CompanyServiceImpl extends ServiceImpl<ICompanyMapper, Company> imp
         }
         return PageInfo.PageInfo(page);
     }
+
+    @Override
+    public List<Company> getCompanyByNames(List<String> companyNames) {
+        LambdaQueryWrapper<Company> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Company::getCompanyName,companyNames);
+        return this.list(wrapper);
+    }
 }

+ 74 - 5
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/ExcelServiceImpl.java

@@ -5,19 +5,30 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.DateExtUtil;
+import com.fdkankan.manage.constant.CameraOutTypeEnum;
+import com.fdkankan.manage.entity.Company;
+import com.fdkankan.manage.service.ICameraService;
+import com.fdkankan.manage.service.ICompanyService;
 import com.fdkankan.manage.service.IExcelService;
 import com.fdkankan.manage.service.IInvoiceService;
+import com.fdkankan.manage.util.ExcelUtil;
 import com.fdkankan.manage.vo.InvoicePageParamVO;
 import com.fdkankan.manage.vo.InvoiceVO;
+import com.fdkankan.manage.vo.request.CameraInOutParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
 import java.util.Calendar;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import java.util.HashMap;
+import java.util.List;
 
 /**
  * <p>
@@ -32,6 +43,10 @@ public class ExcelServiceImpl implements IExcelService {
 
     @Autowired
     private IInvoiceService invoiceService;
+    @Autowired
+    ICompanyService companyService;
+    @Autowired
+    ICameraService cameraService;
 
     @Override
     public void exportInvoice(HttpServletRequest request, HttpServletResponse response, InvoicePageParamVO param)
@@ -57,4 +72,58 @@ public class ExcelServiceImpl implements IExcelService {
             }while (invoiceVOPage.hasNext());
         }
     }
+
+    @Override
+    public Integer 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<>();
+        List<CameraInOutParam> companyParams = 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);
+            }else if(type == 2){   //关联客户
+                CameraInOutParam param = new CameraInOutParam();
+                param.setCompanyName(map.get(0));
+                param.setSnCode(map.get(1));
+                companyParams.add(param);
+            }
+        }
+        if(wifiNameList.size() >0){
+            return cameraService.ins(wifiNameList);
+        }
+        if(params.size() >0){
+            return cameraService.outs(params);
+        }
+        if(companyParams.size() >0){
+            return cameraService.updateCompany(companyParams);
+        }
+        return 0;
+    }
+
 }

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

@@ -3,16 +3,27 @@ package com.fdkankan.manage.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.manage.entity.Camera;
 import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.ScenePro;
 import com.fdkankan.manage.mapper.ISceneProMapper;
 import com.fdkankan.manage.service.ICameraDetailService;
+import com.fdkankan.manage.service.ICameraService;
 import com.fdkankan.manage.service.ISceneProService;
+import com.fdkankan.manage.service.ISceneService;
+import com.fdkankan.manage.util.SceneStatusUtil;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.SceneVo;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -34,10 +45,24 @@ import java.util.Map;
 public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
 
     @Autowired
+    private ICameraService cameraService;
+    @Autowired
     ICameraDetailService cameraDetailService;
     @Autowired
+    ISceneService sceneService;
+    @Autowired
     private UploadToOssUtil uploadToOssUtil;
 
+    private ScenePro getByNum(String num) {
+        LambdaQueryWrapper<ScenePro> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePro::getNum,num);
+        List<ScenePro> list = this.list(wrapper);
+        if(list == null || list.size() <=0){
+            return null;
+        }
+        return list.get(0);
+    }
+
     @Override
     public HashMap<Long, Long> getCountGroupByUserId(List<Long> userIdList) {
         HashMap<Long,Long> map = new HashMap<>();
@@ -124,4 +149,73 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             }
         }
     }
+
+    @Override
+    public PageInfo pageList(SceneParam param) {
+        if(param.getType() == 2){  //深时
+            return PageInfo.PageInfo(new Page<>());
+        }
+        if(param.getType() == 3){ //双目lite
+            return sceneService.pageList(param);
+        }
+        Page<SceneVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        for (SceneVo record : page.getRecords()) {
+            record.setStatusString(SceneStatusUtil.getStatusString(record));
+        }
+        return PageInfo.PageInfo(page);
+    }
+
+    @Override
+    public void move(SceneParam param) {
+        Camera camera = cameraService.getBySnCode(param.getSnCode());
+        if(camera == null){
+            throw new BusinessException(-1,"sn码不存在。");
+        }
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
+        if(cameraDetail == null){
+            throw new BusinessException(-1,"sn码不存在。");
+        }
+        ScenePro scenePro = this.getByNum(param.getNum());
+        if(scenePro == null){
+            throw new BusinessException(-1,"场景不存在");
+        }
+        Long newUseSpace = scenePro.getSpace() + cameraDetail.getUsedSpace();
+        if(newUseSpace  > cameraDetail.getTotalSpace()){
+            throw new BusinessException(-1,"相机容量不足,不能迁移");
+        }
+        Camera oldCamera = cameraService.getById(scenePro.getCameraId());
+        if(oldCamera == null){
+            throw new BusinessException(-1,"旧相机不存在");
+        }
+        CameraDetail oldCameraDetail = cameraDetailService.getByCameraId(camera.getId());
+        if(oldCameraDetail == null){
+            throw new BusinessException(-1,"旧相机不存在。");
+        }
+        if(!oldCameraDetail.getType().equals(cameraDetail.getType())){
+            throw new BusinessException(-1,"必须迁移至相同的类型的相机下面!");
+        }
+        Long oldUseSpace = oldCameraDetail.getUsedSpace() - scenePro.getSpace() < 0 ? 0 : oldCameraDetail.getUsedSpace() - scenePro.getSpace();
+        oldCameraDetail.setUsedSpace(oldUseSpace);
+        cameraDetailService.updateById(oldCameraDetail);
+
+        cameraDetail.setUsedSpace(newUseSpace);
+        cameraDetailService.updateById(cameraDetail);
+
+        scenePro.setCameraId(camera.getId());
+        scenePro.setUserId(cameraDetail.getUserId());
+        this.updateById(scenePro);
+
+    }
+
+    @Override
+    public void copy(String num) {
+        ScenePro sourceScene = this.getByNum(num);
+        if(sourceScene == null){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        ScenePro targetScene = new ScenePro();
+        BeanUtils.copyProperties(sourceScene,targetScene);
+        targetScene.setId(null);
+
+    }
 }

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

@@ -1,11 +1,16 @@
 package com.fdkankan.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.manage.entity.Scene;
 import com.fdkankan.manage.mapper.ISceneMapper;
 import com.fdkankan.manage.service.ISceneService;
+import com.fdkankan.manage.util.SceneStatusUtil;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.SceneVo;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -46,4 +51,13 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         result.forEach(entity ->map.put(entity.getId(),entity.getCount()));
         return map;
     }
+
+    @Override
+    public PageInfo pageList(SceneParam param) {
+        Page<SceneVo> page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(), param.getPageSize()), param);
+        for (SceneVo record : page.getRecords()) {
+            record.setStatusString(SceneStatusUtil.getStatusString(record));
+        }
+        return PageInfo.PageInfo(page);
+    }
 }

+ 21 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/util/SceneStatusUtil.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.util;
+
+import com.fdkankan.manage.vo.response.SceneVo;
+
+public class SceneStatusUtil {
+
+    public static String getStatusString(SceneVo vo){
+        if(vo.getPayStatus() != 1){
+            return  "封存";
+        }else {
+            switch (vo.getStatus()){
+                case 0 : return "计算中";
+                case 1 :
+                case -2 :
+                    return "计算成功";
+                case -1 : return "计算失败";
+                default: return "";
+            }
+        }
+    }
+}

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

@@ -10,4 +10,5 @@ public class CameraInOutParam {
     private Long companyId;
     private String orderSn;
     private String snCode;
+    private String companyName;
 }

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

@@ -0,0 +1,13 @@
+package com.fdkankan.manage.vo.request;
+
+import com.fdkankan.common.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class SceneParam extends RequestBase {
+    private String num;
+    private String sceneName;
+    private String snCode;
+    private String userName;
+    private Integer type = 0;  //0 看看,1看见,2深时
+}

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

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.vo.response;
+
+import lombok.Data;
+
+@Data
+public class SceneVo {
+    private String sceneName;       //场景标题
+    private String num;             //场景码
+    private String createTime;      //拍摄时间
+    private String snCode;          //相机sn码
+    private String sceneSize;       //场景大小
+    private String isCopy;          //是否复制
+    private String copyTime;        //复制时间
+    private String userName;        //绑定账号
+    private Integer viewCount;      //浏览量
+    private Integer status;         //状态
+    private String statusString;    //中文状态
+    private Integer payStatus;      //
+
+}

+ 2 - 1
4dkankan-center-manage/src/main/resources/mapper/manage/CompanyMapper.xml

@@ -3,12 +3,13 @@
 <mapper namespace="com.fdkankan.manage.mapper.ICompanyMapper">
 
     <select id="pageList" resultType="com.fdkankan.manage.vo.response.CompanyVo">
-        select c.id,c.company_name,c.company_name as companyDesc ,c.manager_id as createUserId, u.user_name as createUserName,c.create_time
+        select c.id,c.company_name,c.company_desc ,c.manager_id as createUserId, u.user_name as createUserName,c.create_time
         from  t_company c
         left join sys_user u on c.manager_id = u.id
         where c.rec_status = 'A'
         <if test="param.companyName != null and param.companyName != '' ">
             and c.company_name like concat ('%',#{param.companyName},'%')
         </if>
+        order by c.create_time desc
     </select>
 </mapper>

+ 25 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneMapper.xml

@@ -17,4 +17,29 @@
         </foreach>
         GROUP BY camera_id
     </select>
+
+    <select id="pageList" resultType="com.fdkankan.manage.vo.response.SceneVo">
+        select s.scene_name ,s.num,s.create_time,c.sn_code,s.space as sceneSize,cl.old_num,cl.create_time ,u.user_name,s.view_count,s.status,s.pay_status
+        from t_scene s
+        left join t_scene_copy_log cl on s.num = cl.new_num
+        left join t_user u on s.user_id = u.id
+        left join t_camera c on s.camera_id = c.id
+        where s.rec_status = 'A'
+        <if test="param.sceneName != null and param.sceneName!='' ">
+            and s.scene_name like concat ('%',#{param.sceneName},'%')
+        </if>
+        <if test="param.snCode != null and param.snCode !='' ">
+            and c.sn_code like concat ('%',#{param.snCode},'%')
+        </if>
+        <if test="param.userName != null and param.userName !='' ">
+            and u.user_name like concat ('%',#{param.userName},'%')
+        </if>
+        <if test="param.type !=null and param.type == 0">
+            and s.scene_source in (1,2,12,13,14)
+        </if>
+        <if test="param.type !=null and param.type == 1">
+            and s.scene_source = 3
+        </if>
+        order by s.id desc
+    </select>
 </mapper>

+ 24 - 0
4dkankan-center-manage/src/main/resources/mapper/manage/SceneProMapper.xml

@@ -17,4 +17,28 @@
         </foreach>
         GROUP BY camera_id
     </select>
+    <select id="pageList" resultType="com.fdkankan.manage.vo.response.SceneVo">
+       select s.scene_name ,s.num,s.create_time,c.sn_code,s.space as sceneSize,cl.old_num,cl.create_time ,u.user_name,s.view_count,s.status,s.pay_status
+        from t_scene_pro s
+       left join t_scene_copy_log cl on s.num = cl.new_num
+       left join t_user u on s.user_id = u.id
+       left join t_camera c on s.camera_id = c.id
+       where s.rec_status = 'A'
+       <if test="param.sceneName != null and param.sceneName!='' ">
+           and s.scene_name like concat ('%',#{param.sceneName},'%')
+       </if>
+       <if test="param.snCode != null and param.snCode !='' ">
+           and c.sn_code like concat ('%',#{param.snCode},'%')
+       </if>
+        <if test="param.userName != null and param.userName !='' ">
+            and u.user_name like concat ('%',#{param.userName},'%')
+        </if>
+        <if test="param.type !=null and param.type == 0">
+            and s.scene_source in (1,2,12,13,14)
+        </if>
+        <if test="param.type !=null and param.type == 1">
+            and s.scene_source = 3
+        </if>
+        order by s.id desc
+    </select>
 </mapper>

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