lyhzzz 1 giorno fa
parent
commit
1380e46e60
40 ha cambiato i file con 603 aggiunte e 92 eliminazioni
  1. 10 2
      doc/update.2.2.0.sql
  2. 35 16
      src/main/java/com/fdkankan/manage/common/EvidenceEnum.java
  3. 5 2
      src/main/java/com/fdkankan/manage/common/ResultCode.java
  4. 12 2
      src/main/java/com/fdkankan/manage/controller/DataController.java
  5. 3 1
      src/main/java/com/fdkankan/manage/controller/SceneController.java
  6. 2 0
      src/main/java/com/fdkankan/manage/controller/SysUserController.java
  7. 12 4
      src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java
  8. 9 0
      src/main/java/com/fdkankan/manage/entity/Case.java
  9. 15 0
      src/main/java/com/fdkankan/manage/entity/Dict.java
  10. 77 0
      src/main/java/com/fdkankan/manage/entity/DictEvidence.java
  11. 1 1
      src/main/java/com/fdkankan/manage/generate/AutoGenerate.java
  12. 8 5
      src/main/java/com/fdkankan/manage/httpClient/service/FdkkService.java
  13. 5 0
      src/main/java/com/fdkankan/manage/mapper/ICaseMapper.java
  14. 2 0
      src/main/java/com/fdkankan/manage/mapper/IDataMapper.java
  15. 18 0
      src/main/java/com/fdkankan/manage/mapper/IDictEvidenceMapper.java
  16. 5 1
      src/main/java/com/fdkankan/manage/service/IAuthPageService.java
  17. 1 0
      src/main/java/com/fdkankan/manage/service/ICaseService.java
  18. 2 0
      src/main/java/com/fdkankan/manage/service/IDataService.java
  19. 20 0
      src/main/java/com/fdkankan/manage/service/IDictEvidenceService.java
  20. 2 0
      src/main/java/com/fdkankan/manage/service/IDistrictCodeService.java
  21. 3 0
      src/main/java/com/fdkankan/manage/service/IJyPlatformService.java
  22. 1 1
      src/main/java/com/fdkankan/manage/service/ISceneProService.java
  23. 84 13
      src/main/java/com/fdkankan/manage/service/impl/AuthPageServiceImpl.java
  24. 13 0
      src/main/java/com/fdkankan/manage/service/impl/CaseServiceImpl.java
  25. 65 11
      src/main/java/com/fdkankan/manage/service/impl/DataService.java
  26. 57 0
      src/main/java/com/fdkankan/manage/service/impl/DictEvidenceServiceImpl.java
  27. 22 0
      src/main/java/com/fdkankan/manage/service/impl/DistrictCodeServiceImpl.java
  28. 12 0
      src/main/java/com/fdkankan/manage/service/impl/JyPlatformServiceImpl.java
  29. 15 13
      src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java
  30. 3 1
      src/main/java/com/fdkankan/manage/vo/request/SceneTotalParam.java
  31. 7 0
      src/main/java/com/fdkankan/manage/vo/request/UploadSceneCheckVo.java
  32. 22 0
      src/main/java/com/fdkankan/manage/vo/response/DictEvidenceVoList.java
  33. 3 3
      src/main/java/com/fdkankan/manage/vo/response/ExportSceneList.java
  34. 2 0
      src/main/java/com/fdkankan/manage/vo/response/SceneVo.java
  35. 3 0
      src/main/java/com/fdkankan/manage/vo/response/SysUserVo.java
  36. 1 1
      src/main/resources/mapper/manage/AuthPageMapper.xml
  37. 6 0
      src/main/resources/mapper/manage/CaseMapper.xml
  38. 23 10
      src/main/resources/mapper/manage/DataMapper.xml
  39. 5 0
      src/main/resources/mapper/manage/DictEvidenceMapper.xml
  40. 12 5
      src/main/resources/mapper/manage/SceneProMapper.xml

+ 10 - 2
doc/update.2.2.0.sql

@@ -3239,7 +3239,8 @@ ALTER TABLE `4dkankan_v4`.`jy_user`
 
 ALTER TABLE `fd_fusion`.`t_scene_down_log`
     ADD COLUMN `type` varchar(255) NULL DEFAULT 'scene' AFTER `update_time`;
-
+ALTER TABLE `fd_fusion`.`t_scene_down_log`
+    ADD COLUMN `sy_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'v4' AFTER `type`;
 
 ALTER TABLE `fd_fusion`.`t_case_files`
     ADD COLUMN `num` varchar(255) NULL AFTER `tabulation_id`;
@@ -3260,4 +3261,11 @@ CREATE TABLE `t_auth_page` (
 
 ALTER TABLE `4dkankan_v4`.`jy_user`
     ADD COLUMN `ry_org_code` varchar(255) NULL COMMENT '民警所在单位代码' AFTER `district_name`,
-    ADD COLUMN `ry_org_name` varchar(255) NULL COMMENT '民警所在单位名称' AFTER `ry_org_code`;
+    ADD COLUMN `ry_org_name` varchar(255) NULL COMMENT '民警所在单位名称' AFTER `ry_org_code`;
+
+
+ALTER TABLE `fd_fusion`.`t_case`
+    MODIFY COLUMN `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '四维用户名' AFTER `case_title`;
+
+ALTER TABLE `fd_fusion`.`t_case`
+    ADD COLUMN `jq_number` varchar(255) NULL COMMENT '警情编号' AFTER `k_number`;

+ 35 - 16
src/main/java/com/fdkankan/manage/common/EvidenceEnum.java

@@ -6,20 +6,20 @@ import java.util.List;
 import java.util.Map;
 
 public enum EvidenceEnum {
-    sy(1,"手印痕迹", Arrays.asList("zhiwen.png","hand_l.png","hand_r.png","handprint.png")),
-    zj(2,"足迹痕迹", Arrays.asList("zuozuji.png","youzuji.png","xieyin.png","footprint.png")),
-    gj(3,"工具痕迹", Arrays.asList("wrenchAndScrewdriver.png")),
-    stwt(11,"视听物证", Arrays.asList("video.png")),
-    sw(6,"生物物证", Arrays.asList("xuepo.png","xueji.png","virus.png")),
-    qd(4,"枪弹痕迹", Arrays.asList("cartridge.png")),
-    dh(7,"毒化物证", Arrays.asList("poison.png")),
-    lh(8,"理化物证", Arrays.asList("physics_and_chemistry.png")),
-    wj(9,"文检物证", Arrays.asList("folder_close.png")),
-    ts(5,"特殊物证", Arrays.asList("check.png")),
-    qt(12,"其它物证(痕迹物证)", Arrays.asList("case_other.png","dot.png")),
-    dz(10,"电子物证", Arrays.asList("electronic.png")),
-    tq(17,"提取物品", Arrays.asList("cube.png")),
-    st(18,"尸体", Arrays.asList("shitiz.png","shitib.png","shitifuhao.png","corpse.png")),
+    sy(1,"手印痕迹", Arrays.asList("zhiwen.png","hand_l.png","hand_r.png","handprint.png"),"手印类型","制式","种类"),
+    zj(2,"足迹痕迹", Arrays.asList("zuozuji.png","youzuji.png","xieyin.png","footprint.png"),"足迹类别","制式","种类"),
+    gj(3,"工具痕迹", Arrays.asList("wrenchAndScrewdriver.png"),"工痕种类","工具推断","种类"),
+    stwt(11,"视听物证", Arrays.asList("video.png"),"类型","制式","种类"),
+    sw(6,"生物物证", Arrays.asList("xuepo.png","xueji.png","virus.png"),"生物物证","制式","种类"),
+    qd(4,"枪弹痕迹", Arrays.asList("cartridge.png"),"枪弹痕迹类型","枪弹制式","枪弹种类"),
+    dh(7,"毒化物证", Arrays.asList("poison.png"),"类型","制式","种类"),
+    lh(8,"理化物证", Arrays.asList("physics_and_chemistry.png"),"类型","制式","种类"),
+    wj(9,"文检物证", Arrays.asList("folder_close.png"),"类型","制式","种类"),
+    ts(5,"特殊物证", Arrays.asList("check.png"),"类型","制式","种类"),
+    qt(12,"其它物证(痕迹物证)", Arrays.asList("case_other.png","dot.png"),"类型","制式","种类"),
+    dz(10,"电子物证", Arrays.asList("electronic.png"),"类型","设备类型","品牌"),
+    tq(17,"提取物品", Arrays.asList("cube.png"),"类型","制式","种类"),
+    st(18,"尸体", Arrays.asList("shitiz.png","shitib.png","shitifuhao.png","corpse.png"),"类型","制式","种类"),
     ;
 
 
@@ -27,11 +27,14 @@ public enum EvidenceEnum {
     private String name;
     private List<String> iconList;
 
+    private String categoryName;
+    private String speciesName;
+    private String standardName;
+
     public int getType() {
         return type;
     }
 
-
     public String getName() {
         return name;
     }
@@ -39,10 +42,26 @@ public enum EvidenceEnum {
     public List<String> getIconList() {
         return iconList;
     }
-    EvidenceEnum(int type, String name, List<String> iconList) {
+
+    public String getCategoryName() {
+        return categoryName;
+    }
+
+    public String getSpeciesName() {
+        return speciesName;
+    }
+
+    public String getStandardName() {
+        return standardName;
+    }
+
+    EvidenceEnum(int type, String name, List<String> iconList, String categoryName, String speciesName, String standardName) {
         this.type = type;
         this.name = name;
         this.iconList = iconList;
+        this.categoryName = categoryName;
+        this.speciesName = speciesName;
+        this.standardName = standardName;
     }
 
     public static Map<Integer,EvidenceEnum> typeMaps = new HashMap<>(14);

+ 5 - 2
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -121,7 +121,7 @@ public enum ResultCode  {
     AUTH_ERROR2(60040, "多元融合管理者无需授权"),
     REMOVE_ERROR(60041, "至少保留一个实景三维/多元融合场景"),
     UPLOAD_SCENE_ERROR(60042, "此场景属于-%s"),
-    UPLOAD_SCENE_ERROR2(60043, "场景此前已上传"),
+    UPLOAD_SCENE_ERROR2(60043, "场景已存在,请勿重复上传"),
 
     CASE_FUSION_ERROR(60044, "您没有权限,请联系管理员开通。"),
     CASE_FUSION_ERROR2(60045, "此用户无当前案件内场景的访问权限,请联系管理员开通"),
@@ -130,7 +130,10 @@ public enum ResultCode  {
     SCENE_BUILDING(60047, "场景计算中"),
     SCENE_BUILDING_ERROR(60048, "场景码池为空"),
     UPLOAD_SCENE_ERROR3(60049, "scene.json文件数据异常"),
-    UPLOAD_SCENE_ERROR4(60050, "版本不匹配"),
+    UPLOAD_SCENE_ERROR4(60050, "当前离线包版本与平台版本不匹配,请联系平台管理员将平台升级至最新版本,升级完成后您再重试当前任务。"),
+    UPLOAD_SCENE_ERROR5(60051, "当前离线包版本与平台版本不匹配,继续上传可能有部分数据丢失风险,确认继续吗?"),
+    PAGE_AUTH_ERROR(60052, "请勿分享给该平台管理员。"),
+    PAGE_AUTH_ERROR2(60053, "已分享的用户不能重复添加。"),
 
     ;
 

+ 12 - 2
src/main/java/com/fdkankan/manage/controller/DataController.java

@@ -126,9 +126,19 @@ public class DataController extends BaseController{
 
     /**
      * 获取平台列表
+     * sceneType 0场景列表,1场景共享,2全域核查,3首页 默认3
      */
     @GetMapping("/platformList")
-    public ResultData platformList(){
-        return ResultData.ok(authPageService.platformList());
+    public ResultData platformList(@RequestParam(required = false)Integer sceneType){
+        return ResultData.ok(authPageService.platformList(sceneType));
+    }
+
+    /**
+     * 获取相机列表
+     * sceneType 0场景列表,1场景共享,2全域核查,3首页 默认3
+     */
+    @GetMapping("/cameraList")
+    public ResultData cameraList(@RequestParam(required = false)Integer sceneType){
+        return ResultData.ok(authPageService.cameraList(sceneType));
     }
 }

+ 3 - 1
src/main/java/com/fdkankan/manage/controller/SceneController.java

@@ -236,7 +236,9 @@ public class SceneController {
 
     @GetMapping("/sceneGroupCount/{type}")
     public ResultData sceneGroupCount(@PathVariable String type){
-        return ResultData.ok(sceneProService.selectMeshGroup(type));
+        return ResultData.ok(sceneProService.selectMeshGroup(type,1));
     }
+
+
 }
 

+ 2 - 0
src/main/java/com/fdkankan/manage/controller/SysUserController.java

@@ -57,6 +57,8 @@ public class SysUserController  extends BaseController{
             JyPlatform jyPlatform = jyPlatformService.getById(jyUser.getPlatformId());
             if(jyPlatform != null){
                 userVo.setPlatformName(jyPlatform.getPlatformName());
+                userVo.setDistrictCode(jyPlatform.getDistrictCode());
+                userVo.setDistrictName(jyPlatform.getDistrictName());
             }
         }
         return ResultData.ok(userVo);

+ 12 - 4
src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java

@@ -28,10 +28,7 @@ import com.fdkankan.manage.util.RsaUtils;
 import com.fdkankan.manage.util.ShellUtil;
 import com.fdkankan.manage.vo.EvidenceVo;
 import com.fdkankan.manage.vo.request.*;
-import com.fdkankan.manage.vo.response.ManageLoginResponse;
-import com.fdkankan.manage.vo.response.SceneAuthVo;
-import com.fdkankan.manage.vo.response.UserAuthSceneVo;
-import com.fdkankan.manage.vo.response.UserShareSceneVo;
+import com.fdkankan.manage.vo.response.*;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -573,14 +570,25 @@ public class InnerAPIController extends BaseController {
     ICommonUploadService commonUploadService;
     @Autowired
     IDictIconService dictIconService;
+    @Autowired
+    IDictEvidenceService dictEvidenceService;
 
     @PostMapping("/traceEvidenceList")
     public ResultData traceEvidenceList(@RequestBody DictFileParam dictParam){
         List<Dict> dictList = dictService.getByUseType("trace_evidence",dictParam.getName());
         List<Integer> dictIds = dictList.stream().map(Dict::getId).collect(Collectors.toList());
         HashMap<Integer,List<DictIcon>> map = dictIconService.getMapGroupDict(dictIds);
+        List<Integer> resourceIds = dictList.stream().map(Dict::getResourceId).collect(Collectors.toList());
+        HashMap<String,List<DictEvidence>> map2 = dictEvidenceService.getMapByResourceId(resourceIds);
         for (Dict dict : dictList) {
             dict.setDictIconList(map.get(dict.getId()));
+            if(dict.getResourceId() != null){
+                EvidenceEnum evidenceEnum = EvidenceEnum.getEvidenceEnum(dict.getResourceId());
+                dict.setCategory(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getCategoryName(),map2.get(dict.getResourceId() +"category")));
+                dict.setMethod(new DictEvidenceVoList(evidenceEnum.toString(),"提取方法",map2.get(dict.getResourceId() +"method")));
+                dict.setSpecies(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getSpeciesName(),map2.get(dict.getResourceId() +"species")));
+                dict.setStandard(new DictEvidenceVoList(evidenceEnum.toString() ,evidenceEnum.getStandardName(),map2.get(dict.getResourceId() +"standard")));
+            }
         }
         return ResultData.ok(dictList);
     }

+ 9 - 0
src/main/java/com/fdkankan/manage/entity/Case.java

@@ -113,6 +113,9 @@ public class Case implements Serializable {
     @TableField("homicide_case")
     private Integer homicideCase;
 
+    @TableField("crime_time")
+    private String crimeTime;
+
     /**
      * 是否刑案,0否,1是
      */
@@ -122,6 +125,9 @@ public class Case implements Serializable {
     @TableField("k_number")
     private String kNumber;
 
+    @TableField("jq_number")
+    private String jqNumber;
+
     @TableField(exist = false)
     private Boolean isOpen = false;
 
@@ -133,4 +139,7 @@ public class Case implements Serializable {
 
     @TableField(exist = false)
     private String nickName ;
+
+    @TableField(exist = false)
+    private String times ;
 }

+ 15 - 0
src/main/java/com/fdkankan/manage/entity/Dict.java

@@ -6,9 +6,11 @@ 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.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import com.fdkankan.manage.vo.response.DictEvidenceVoList;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -60,4 +62,17 @@ public class Dict implements Serializable {
 
     @TableField(exist = false)
     private List<DictIcon> dictIconList;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList category ;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList method ;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList standard;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList species ;
+
 }

+ 77 - 0
src/main/java/com/fdkankan/manage/entity/DictEvidence.java

@@ -0,0 +1,77 @@
+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.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.fdkankan.manage.vo.response.DictEvidenceVoList;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-22
+ */
+@Getter
+@Setter
+@TableName("t_dict_evidence")
+public class DictEvidence implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("resource_id")
+    private Integer resourceId;
+
+    @TableField("evidence_key")
+    private String evidenceKey;
+
+    @TableField("evidence_type")
+    private String evidenceType;
+
+    @TableField("evidence_name")
+    private String evidenceName;
+
+    @TableField("remark")
+    private String remark;
+
+    @TableField("parent_key")
+    private String parentKey;
+
+    @TableField("use_type")
+    private String useType;
+
+    @TableField("species_key")
+    private String speciesKey;
+
+    @TableField("standard_key")
+    private String standardKey;
+
+    @TableField("rec_status")
+    @TableLogic(value = "A",delval = "I")
+    private String recStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList speciesChildren;
+
+    @TableField(exist = false)
+    private DictEvidenceVoList standardChildren;
+}

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

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"manage", getTables(new String[]{
-                "t_auth_page"
+                "t_dict_evidence"
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 8 - 5
src/main/java/com/fdkankan/manage/httpClient/service/FdkkService.java

@@ -106,7 +106,7 @@ public class FdkkService {
 
             String platformVersion = manageConfig.getPlatformVersion();//从数据中获取
             if (offlineVersion == null || platformVersion == null) {
-                throw new BusinessException(ResultCode.UPLOAD_SCENE_ERROR4);
+                return new UploadSceneCheckVo(ResultCode.UPLOAD_SCENE_ERROR4);
             }
 
             String[] offParts = offlineVersion.split("\\.");
@@ -114,17 +114,20 @@ public class FdkkService {
 
             // 至少需要两位版本号
             if (offParts.length < 2 || pfParts.length < 2) {
-                throw new BusinessException(ResultCode.UPLOAD_SCENE_ERROR4);
+                return new UploadSceneCheckVo(ResultCode.UPLOAD_SCENE_ERROR4);
             }
 
             // 比较前两位
             if (!offParts[0].equals(pfParts[0]) || !offParts[1].equals(pfParts[1])) {
-                throw new BusinessException(ResultCode.UPLOAD_SCENE_ERROR4);
+                return new UploadSceneCheckVo(ResultCode.UPLOAD_SCENE_ERROR4);
             }
 
             // 前两位一致,检查第三位
-            if (!offParts[2].equals(pfParts[2])) {
-                throw new BusinessException(ResultCode.UPLOAD_SCENE_ERROR4);
+            if (Integer.parseInt(offParts[2]) < Integer.parseInt((pfParts[2]))) {
+                return new UploadSceneCheckVo(ResultCode.UPLOAD_SCENE_ERROR5);
+            }
+            if (Integer.parseInt(offParts[2]) > Integer.parseInt((pfParts[2]))) {
+                return new UploadSceneCheckVo(ResultCode.UPLOAD_SCENE_ERROR4);
             }
 
             String num = jsonObject.getString("num");

+ 5 - 0
src/main/java/com/fdkankan/manage/mapper/ICaseMapper.java

@@ -5,6 +5,9 @@ import com.fdkankan.manage.entity.Case;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.manage.vo.request.CaseParam;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -18,4 +21,6 @@ import org.apache.ibatis.annotations.Mapper;
 public interface ICaseMapper extends BaseMapper<Case> {
 
     Page<Case> pageList(Page<Object> objectPage, CaseParam param);
+
+    List<Case> selectByKnos(@Param("knos") List<String> knos);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/mapper/IDataMapper.java

@@ -26,4 +26,6 @@ public interface IDataMapper {
     List<ExportSceneList> getExPortSceneList(@Param("param")SceneTotalParam param);
 
     String getLastSceneBuildTime(@Param("param")SceneTotalParam param);
+
+    List<GroupByCount> cameraGroupByPlatformId(@Param("platformIds")List<Integer> platformIds);
 }

+ 18 - 0
src/main/java/com/fdkankan/manage/mapper/IDictEvidenceMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.manage.mapper;
+
+import com.fdkankan.manage.entity.DictEvidence;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-22
+ */
+@Mapper
+public interface IDictEvidenceMapper extends BaseMapper<DictEvidence> {
+
+}

+ 5 - 1
src/main/java/com/fdkankan/manage/service/IAuthPageService.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.entity.JyPlatform;
 import com.fdkankan.manage.vo.AuthPageVo;
 import com.fdkankan.manage.vo.request.PageDataAuth;
+import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.GroupByList;
 
 import java.util.List;
 
@@ -24,5 +26,7 @@ public interface IAuthPageService extends IService<AuthPage> {
 
     List<AuthPageVo> pageList(PageDataAuth param);
 
-    List<JyPlatform> platformList();
+    List<JyPlatform> platformList(Integer sceneType);
+
+    List<GroupByList>  cameraList(Integer sceneType);
 }

+ 1 - 0
src/main/java/com/fdkankan/manage/service/ICaseService.java

@@ -34,4 +34,5 @@ public interface ICaseService extends IService<Case> {
 
     Case getByKno(String kno);
 
+    HashMap<String, Case> getByKnos(List<String> knos);
 }

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IDataService.java

@@ -17,4 +17,6 @@ public interface IDataService {
     Object districtScatter(SceneTotalParam param);
 
     void exportSceneList(SceneTotalParam param, HttpServletRequest req, HttpServletResponse resp);
+
+    List<GroupByCount> cameraGroupByPlatformId(List<Integer> platformIds);
 }

+ 20 - 0
src/main/java/com/fdkankan/manage/service/IDictEvidenceService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.service;
+
+import com.fdkankan.manage.entity.DictEvidence;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-22
+ */
+public interface IDictEvidenceService extends IService<DictEvidence> {
+
+    HashMap<String, List<DictEvidence>> getMapByResourceId(List<Integer> resourceIds);
+}

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IDistrictCodeService.java

@@ -21,4 +21,6 @@ public interface IDistrictCodeService extends IService<DistrictCode> {
     List<DistrictCode> treeList();
 
     HashMap<String, DistrictCode> getByCodeList(List<String> districtCodeList);
+
+    List<String> getSonByCode(String districtCode);
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/IJyPlatformService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.request.JyPlatformParam;
 import com.fdkankan.manage.vo.request.JyPlatformVo;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +37,6 @@ public interface IJyPlatformService extends IService<JyPlatform> {
     List<JyPlatform> getNotBanList();
 
     JyPlatform getByDistrictCode(String districtCode,String phone ,String idCard);
+
+    HashMap<Integer, JyPlatform> getMapByIds(List<Integer> platformIds);
 }

+ 1 - 1
src/main/java/com/fdkankan/manage/service/ISceneProService.java

@@ -50,5 +50,5 @@ public interface ISceneProService extends IService<ScenePro> {
 
     Object sceneCount();
 
-    List<GroupByList> selectMeshGroup(String type);
+    List<GroupByList> selectMeshGroup(String type,Integer sceneType);
 }

+ 84 - 13
src/main/java/com/fdkankan/manage/service/impl/AuthPageServiceImpl.java

@@ -5,17 +5,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.AuthPage;
+import com.fdkankan.manage.entity.CameraType;
 import com.fdkankan.manage.entity.JyPlatform;
 import com.fdkankan.manage.entity.JyUser;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IAuthPageMapper;
-import com.fdkankan.manage.service.IAuthPageService;
+import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.manage.service.IJyPlatformService;
-import com.fdkankan.manage.service.IJyUserService;
-import com.fdkankan.manage.service.ISysRoleService;
 import com.fdkankan.manage.vo.AuthPageVo;
 import com.fdkankan.manage.vo.request.PageDataAuth;
+import com.fdkankan.manage.vo.response.GroupByCount;
+import com.fdkankan.manage.vo.response.GroupByCountVo;
+import com.fdkankan.manage.vo.response.GroupByList;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -40,6 +41,10 @@ public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage>
     IJyPlatformService platformService;
     @Autowired
     ISysRoleService sysRoleService;
+    @Autowired
+    IDataService dataService;
+    @Autowired
+    ICameraTypeService cameraTypeService;
     @Override
     public void setAuth(PageDataAuth param) {
         if(param.getJyId() == null ){
@@ -50,6 +55,13 @@ public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage>
             throw new BusinessException(ResultCode.USERNAME_ERROR);
         }
         JyUser loginUser = jyUserService.getLoginUser();
+        if(jyUser.getId().equals(loginUser.getId())){
+            throw new BusinessException(ResultCode.PAGE_AUTH_ERROR);
+        }
+        List<AuthPage> byJyUserId = this.getByJyUserIdAndPlatformId(jyUser.getId(),loginUser.getPlatformId());
+        if(byJyUserId != null && !byJyUserId.isEmpty()){
+            throw new BusinessException(ResultCode.PAGE_AUTH_ERROR2);
+        }
 
         AuthPage authPage = new AuthPage();
         authPage.setJyId(param.getJyId() );
@@ -59,6 +71,13 @@ public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage>
         this.save(authPage);
     }
 
+    private List<AuthPage> getByJyUserIdAndPlatformId(Integer jyId,Integer platformId) {
+        LambdaQueryWrapper<AuthPage> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AuthPage::getJyId,jyId);
+        wrapper.eq(AuthPage::getCreaterPlatformId,platformId);
+        return this.list(wrapper);
+    }
+
     @Override
     public void delAuth(AuthPageVo param) {
         if(param.getId() == null){
@@ -76,8 +95,25 @@ public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage>
         return this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
     }
 
+    @Autowired
+    ISceneProService sceneProService;
     @Override
-    public List<JyPlatform> platformList() {
+    public List<JyPlatform> platformList(Integer sceneType) {
+        if(sceneType != null && sceneType == 0){
+            return new ArrayList<>();
+        }
+        if(sceneType != null && sceneType == 1){
+            List<GroupByList> platform = sceneProService.selectMeshGroup("platform",1);
+            List<Integer> collect = platform.stream().map(GroupByList::getId).collect(Collectors.toList());
+            if(collect.isEmpty()){
+                return new ArrayList<>();
+            }
+            return platformService.listByIds(collect);
+        }
+        if(sceneType != null && sceneType == 2){
+            return platformService.list();
+        }
+
         JyUser loginUser = jyUserService.getLoginUser();
         if(sysRoleService.isSuperAdmin()){
             List<JyPlatform> list = platformService.list();
@@ -88,23 +124,58 @@ public class AuthPageServiceImpl extends ServiceImpl<IAuthPageMapper, AuthPage>
         }
         List<AuthPage> authPages = this.getByJyUserId(loginUser.getId());
         List<Integer> platformIds = authPages.stream().map(AuthPage::getCreaterPlatformId).collect(Collectors.toList());
-        if(loginUser.getPlatformId() != null){
-            platformIds.add(loginUser.getPlatformId());
-        }
-        if(platformIds!= null && !platformIds.isEmpty()){
+        if(!platformIds.isEmpty()){
+            List<JyPlatform> reList = new ArrayList<>();
             List<JyPlatform> jyPlatforms = platformService.listByIds(platformIds);
             for (JyPlatform jyPlatform : jyPlatforms) {
-                if(platformIds.contains(jyPlatform.getId())){
-                    jyPlatform.setPageAuth("admin");
-
+                jyPlatform.setPageAuth("admin");
+            }
+            Boolean flag = sysRoleService.isAdmin();
+            if(loginUser.getPlatformId() != null){
+                JyPlatform loginPlatfrom = platformService.getById(loginUser.getPlatformId());
+                if(!platformIds.contains(loginUser.getPlatformId())){
+                    if (flag){
+                        loginPlatfrom.setPageAuth("admin");
+                    }
+                    reList.add(loginPlatfrom);
                 }
             }
-            return jyPlatforms;
+            reList.addAll(jyPlatforms);
+            return reList;
         }
 
         return new ArrayList<>();
     }
 
+    @Override
+    public  List<GroupByList>  cameraList(Integer sceneType) {
+        if(sceneType != null && (sceneType == 0 || sceneType == 1)){
+            return sceneProService.selectMeshGroup("camera",sceneType);
+        }
+        if(sceneType != null && sceneType == 2 ){
+            List<GroupByCount> list = dataService.cameraGroupByPlatformId(new ArrayList<>());
+            return getCameraGroupList(list);
+        }
+
+        List<JyPlatform> jyPlatforms = this.platformList(sceneType);
+        if(jyPlatforms == null || jyPlatforms.isEmpty()){
+            return new ArrayList<>();
+        }
+        List<Integer> platformIds = jyPlatforms.stream().map(JyPlatform::getId).collect(Collectors.toList());
+        List<GroupByCount> list = dataService.cameraGroupByPlatformId(platformIds);
+        return getCameraGroupList(list);
+    }
+
+    private List<GroupByList> getCameraGroupList(List<GroupByCount> list){
+        List<Long> ids = list.stream().filter(e -> e.getId() != null && e.getCount() != null && e.getCount() >0).map(GroupByCount::getId).collect(Collectors.toList());
+        List<GroupByList> groupByLists = new ArrayList<>();
+        List<CameraType> cameraTypes = cameraTypeService.listByTypes(ids);
+        for (CameraType cameraType : cameraTypes) {
+            groupByLists.add(new GroupByList(cameraType.getCameraType(),cameraType.getRemark()));
+        }
+        return groupByLists;
+    }
+
     private List<AuthPage> getByJyUserId(Integer jyId) {
         LambdaQueryWrapper<AuthPage> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AuthPage::getJyId,jyId);

+ 13 - 0
src/main/java/com/fdkankan/manage/service/impl/CaseServiceImpl.java

@@ -97,6 +97,19 @@ public class CaseServiceImpl extends ServiceImpl<ICaseMapper, Case> implements I
         return null;
     }
 
+    @Override
+    public HashMap<String, Case> getByKnos(List<String> knos) {
+        HashMap<String, Case> map = new HashMap<>();
+        if(knos == null || knos.isEmpty()){
+            return map;
+        }
+        LambdaQueryWrapper<Case> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(Case::getKNumber,knos);
+        List<Case> cases = this.getBaseMapper().selectByKnos(knos);
+        cases.forEach(e -> map.put(e.getKNumber(),e));
+        return map;
+    }
+
     @Autowired
     FdKKClient fdKKClient;
 

+ 65 - 11
src/main/java/com/fdkankan/manage/service/impl/DataService.java

@@ -1,19 +1,19 @@
 package com.fdkankan.manage.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.manage.common.FilePath;
 import com.fdkankan.manage.common.ResultCode;
-import com.fdkankan.manage.entity.DistrictCode;
-import com.fdkankan.manage.entity.JyPlatform;
-import com.fdkankan.manage.entity.JyUser;
-import com.fdkankan.manage.entity.ScenePlus;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IDataMapper;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.vo.request.SceneTotalParam;
 import com.fdkankan.manage.vo.response.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +23,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class DataService implements IDataService {
 
    @Autowired
@@ -43,23 +44,39 @@ public class DataService implements IDataService {
 
    private JyUser commonSetParam(SceneTotalParam param){
        JyUser jyUser = jyUserService.getLoginUser();
-       if(param.getPlatformId() != null){
-           List<JyPlatform> jyPlatforms = authPageService.platformList();
+       Boolean isSuperAdmin  = sysRoleService.isSuperAdmin();
+       Boolean isAdmin  = sysRoleService.isAdmin();
+
+       if (param.getPlatformId() != null && !param.getPlatformId().equals(jyUser.getPlatformId()) && !isSuperAdmin) {
+           List<JyPlatform> jyPlatforms = authPageService.platformList(3);
            List<Integer> collect = jyPlatforms.stream().map(JyPlatform::getId).collect(Collectors.toList());
            if(!collect.contains(param.getPlatformId())){
                throw new BusinessException(ResultCode.NOT_PERMISSION);
            }
        }else {
-           if(!sysRoleService.isSuperAdmin()){
-               Boolean flag = sysRoleService.isAdmin();
-               if(!flag){
-                   param.setUserId(jyUser.getUserId());
-               }else {
+           if(!isSuperAdmin){
+               if(isAdmin){
                    param.setPlatformId(jyUser.getPlatformId());
+               }else {
+                   param.setUserId(jyUser.getUserId());
                }
            }
        }
 
+
+       if(param.getDistrictCodeList() != null && !param.getDistrictCodeList().isEmpty()){
+           for (String districtCode : param.getDistrictCodeList()) {
+               List<String> districtCodeList =  districtCodeService.getSonByCode(districtCode);
+               districtCodeList.add(districtCode);
+               param.getDistrictCodeList().addAll(districtCodeList);
+           }
+
+       }
+       if(param.getDistrictCode() != null){
+          List<String> districtCodeList =  districtCodeService.getSonByCode(param.getDistrictCode());
+          districtCodeList.add(param.getDistrictCode());
+           param.getDistrictCodeList().addAll(districtCodeList);
+       }
        return jyUser;
    }
     @Override
@@ -152,14 +169,51 @@ public class DataService implements IDataService {
 
     @Autowired
     IExcelService excelService;
+    @Autowired
+    ICaseService caseService;
     @Override
     public void exportSceneList(SceneTotalParam param, HttpServletRequest req, HttpServletResponse resp) {
         commonSetParam(param);
         List<ExportSceneList> exportSceneLists = dataMapper.getExPortSceneList(param);
+        List<String> knos = exportSceneLists.stream().map(ExportSceneList::getKno).collect(Collectors.toList());
+        HashMap<String, Case> map = caseService.getByKnos(knos);
+        for (ExportSceneList exportSceneList : exportSceneLists) {
+            if(exportSceneList.getKno() != null){
+                Case caseEntity = map.get(exportSceneList.getKno());
+                if(caseEntity != null){
+                    exportSceneList.setCaseAddress(caseEntity.getCaseAddress());
+                    exportSceneList.setCaseCategory(caseEntity.getCaseCategory());
+                    exportSceneList.setCrimeTime(getCrimeTime(caseEntity.getTimes()));
+                    exportSceneList.setJqNumber(caseEntity.getJqNumber());
+                }
+
+            }
+        }
         try {
             excelService.commonExport(req,resp,"场景数据",exportSceneLists, ExportSceneList.class);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
+
+    private String getCrimeTime(String times){
+        try {
+            if(StringUtils.isBlank(times)){
+                return null;
+            }
+            JSONArray jsonArray = JSONArray.parseArray(times);
+            if(jsonArray == null || jsonArray.isEmpty()){
+                return null;
+            }
+            return  jsonArray.getString(0) +"-"+jsonArray.getString(1);
+        }catch (Exception e){
+            log.info("勘验时间获取异常:{}",e);
+        }
+        return null;
+    }
+
+    @Override
+    public List<GroupByCount> cameraGroupByPlatformId(List<Integer> platformIds) {
+        return dataMapper.cameraGroupByPlatformId(platformIds);
+    }
 }

+ 57 - 0
src/main/java/com/fdkankan/manage/service/impl/DictEvidenceServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fdkankan.manage.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.common.EvidenceEnum;
+import com.fdkankan.manage.entity.DictEvidence;
+import com.fdkankan.manage.mapper.IDictEvidenceMapper;
+import com.fdkankan.manage.service.IDictEvidenceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.response.DictEvidenceVoList;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-12-22
+ */
+@Service
+public class DictEvidenceServiceImpl extends ServiceImpl<IDictEvidenceMapper, DictEvidence> implements IDictEvidenceService {
+
+    @Override
+    public HashMap<String, List<DictEvidence>> getMapByResourceId(List<Integer> resourceIds) {
+        HashMap<String, List<DictEvidence>> map = new HashMap<>();
+        HashMap<String, List<DictEvidence>> childrenMap = new HashMap<>();
+        if(resourceIds == null || resourceIds.isEmpty()){
+            return map;
+        }
+        LambdaQueryWrapper<DictEvidence> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(DictEvidence::getResourceId,resourceIds);
+        List<DictEvidence> list = this.list(wrapper);
+
+        for (DictEvidence dictEvidence : list) {
+            if(dictEvidence.getUseType().equals("children")){
+                childrenMap.computeIfAbsent(dictEvidence.getEvidenceType(), k -> new ArrayList<>());
+                childrenMap.get(dictEvidence.getEvidenceType()).add(dictEvidence);
+                continue;
+            }
+            map.computeIfAbsent(dictEvidence.getResourceId() + dictEvidence.getUseType(), k -> new ArrayList<>());
+            map.get(dictEvidence.getResourceId() + dictEvidence.getUseType()).add(dictEvidence);
+        }
+
+        for (DictEvidence dictEvidence : list) {
+            EvidenceEnum evidenceEnum = EvidenceEnum.getEvidenceEnum(dictEvidence.getResourceId());
+            if(evidenceEnum.getType() == 10){
+                dictEvidence.setSpeciesChildren(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getSpeciesName(),childrenMap.get(dictEvidence.getSpeciesKey())));
+                dictEvidence.setStandardChildren(new DictEvidenceVoList(evidenceEnum.toString(),evidenceEnum.getStandardName(),childrenMap.get(dictEvidence.getStandardKey())));
+            }
+        }
+        return map;
+    }
+}

+ 22 - 0
src/main/java/com/fdkankan/manage/service/impl/DistrictCodeServiceImpl.java

@@ -9,6 +9,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -36,6 +37,27 @@ public class DistrictCodeServiceImpl extends ServiceImpl<IDistrictCodeMapper, Di
     }
 
     @Override
+    public List<String> getSonByCode(String districtCode) {
+        List<String> allList = new ArrayList<>();
+        getSon(allList,districtCode);
+        return allList;
+    }
+
+    private void getSon(List<String> allList,String districtCode){
+        LambdaQueryWrapper<DistrictCode> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(DistrictCode::getParentCode,districtCode);
+        List<DistrictCode> list = this.list(wrapper);
+        if(list == null || list.isEmpty()){
+            return ;
+        }
+        List<String> collect = list.stream().map(DistrictCode::getCode).collect(Collectors.toList());
+        allList.addAll(collect);
+        for (String s : collect) {
+             getSon(allList,s);
+        }
+    }
+
+    @Override
     public HashMap<String, DistrictCode> getByCodeList(List<String> districtCodeList) {
         HashMap<String, DistrictCode> map = new HashMap<>();
         if(districtCodeList == null || districtCodeList.isEmpty()){

+ 12 - 0
src/main/java/com/fdkankan/manage/service/impl/JyPlatformServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.UUID;
 import java.util.stream.Collectors;
@@ -284,4 +285,15 @@ public class JyPlatformServiceImpl extends ServiceImpl<IJyPlatformMapper, JyPlat
         }
         return getPlatFormDistrictCode(byCode.getParentCode());
     }
+
+    @Override
+    public HashMap<Integer, JyPlatform> getMapByIds(List<Integer> platformIds) {
+        HashMap<Integer, JyPlatform> map = new HashMap<>();
+        if(platformIds == null || platformIds.isEmpty()){
+            return map;
+        }
+        List<JyPlatform> jyPlatforms = this.listByIds(platformIds);
+        jyPlatforms.forEach(e -> map.put(e.getId(),e));
+        return map;
+    }
 }

+ 15 - 13
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -117,6 +117,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     RabbitMqProducer rabbitMqProducer;
     @Autowired
     ICaseOverviewService caseOverviewService;
+    @Autowired
+    ISysRoleService roleService;
 
 
     @Override
@@ -342,25 +344,23 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
         if(param.getIsObj() != null){
             page = this.getBaseMapper().selectMesh(new Page<>(param.getPageNum(),param.getPageSize()),param);
-
-//            if(param.getIsObj() == 0){
-//                if(param.getSceneStatus() != null){
-//                    param.setSceneStatus(param.getSceneStatus() == -2? 2: param.getSceneStatus());
-//                }
-//                page = this.getBaseMapper().selectLaser(new Page<>(param.getPageNum(),param.getPageSize()),param);
-//            }else {
-//                page = this.getBaseMapper().selectMesh(new Page<>(param.getPageNum(),param.getPageSize()),param);
-//            }
         }else {
             page = this.getBaseMapper().pageList2(new Page<>(param.getPageNum(),param.getPageSize()),param);
         }
 
         List<SceneVo> records = page.getRecords();
         List<String> numList = records.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
-
+        List<Integer> platformIds = records.stream().map(SceneVo::getPlatformId).collect(Collectors.toList());
         HashMap<String,SceneCopyLog> map =  copyLogService.getByNewNumList(numList);
+        HashMap<Integer,JyPlatform> jpMap = jyPlatformService.getMapByIds(platformIds);
 
         for (SceneVo record : page.getRecords()) {
+            if(record.getPlatformId() != null && jpMap.get(record.getPlatformId()) != null){
+                JyPlatform jyPlatform = jpMap.get(record.getPlatformId());
+                if(jyPlatform != null){
+                    record.setPlatformName(jyPlatform.getPlatformName());
+                }
+            }
             if(record.getStatus() != -2 && record.getStatus() !=2 && record.getAlgorithmTime()!=null){
                 record.setAlgorithmTime(null);
             }
@@ -419,6 +419,9 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         if(byId.getRoleId() !=1 ){
             Integer loginPlatformId = jyUserPlatformService.getLoginPlatformId();
             param.setPlatformId(loginPlatformId);
+            if(roleService.isSuperAdmin() && param.getSceneType() == 2){
+                param.setPlatformId(null);
+            }
 
             if(byId.getRoleId() == 47L ){
                 param.setUserId(jyUser.getUserId());
@@ -759,12 +762,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Autowired
     ICameraTypeService cameraTypeService;
     @Override
-    public List<GroupByList> selectMeshGroup(String type) {
+    public List<GroupByList> selectMeshGroup(String type,Integer sceneType) {
         String gruopKey = null;
         SceneParam sceneParam = new SceneParam();
+        sceneParam.setSceneType(sceneType);
         if("platform".equals(type)){
             gruopKey = "platform_id";
-            sceneParam.setSceneType(1);
         }
         if("camera".equals(type)){
             gruopKey = "type";
@@ -791,7 +794,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             return groupByLists;
         }
         if("platform".equals(type)){
-
             List<JyPlatform> jyPlatforms = jyPlatformService.listByIds(ids);
             for (JyPlatform jyPlatform : jyPlatforms) {
                 groupByLists.add(new GroupByList(jyPlatform.getId(),jyPlatform.getName()));

+ 3 - 1
src/main/java/com/fdkankan/manage/vo/request/SceneTotalParam.java

@@ -4,6 +4,8 @@ import com.fdkankan.manage.util.Dateutils;
 import lombok.Data;
 import org.apache.commons.lang3.StringUtils;
 
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 
 @Data
@@ -16,7 +18,7 @@ public class SceneTotalParam {
 
 
     private String districtCode;
-    private List<String> districtCodeList;
+    private HashSet<String> districtCodeList = new HashSet<>();
     private List<Integer> cameraTypeList;
     private String jyType;
     private List<String> timeList;

+ 7 - 0
src/main/java/com/fdkankan/manage/vo/request/UploadSceneCheckVo.java

@@ -3,10 +3,17 @@ package com.fdkankan.manage.vo.request;
 import com.fdkankan.manage.common.ResultCode;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 @Data
 @AllArgsConstructor
+@NoArgsConstructor
 public class UploadSceneCheckVo {
     private Integer code;
     private String data;
+
+    public UploadSceneCheckVo(ResultCode resultCode) {
+        this.code = resultCode.code();
+        this.data = resultCode.message();
+    }
 }

+ 22 - 0
src/main/java/com/fdkankan/manage/vo/response/DictEvidenceVoList.java

@@ -0,0 +1,22 @@
+package com.fdkankan.manage.vo.response;
+
+import com.fdkankan.manage.entity.DictEvidence;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class DictEvidenceVoList {
+    private String key;
+    private String name;
+    private List<DictEvidence> list;
+
+    public DictEvidenceVoList(String key, String name, List<DictEvidence> list) {
+        this.key = key;
+        this.name = name;
+        this.list = list;
+    }
+}

+ 3 - 3
src/main/java/com/fdkankan/manage/vo/response/ExportSceneList.java

@@ -19,7 +19,7 @@ public class ExportSceneList {
     private String jyType;
 
     @ExcelProperty("民警所在单位")
-    private String jyDept;
+    private String ryOrgName;
 
     @ExcelProperty("拍摄设备码")
     private String snCode;
@@ -31,7 +31,7 @@ public class ExportSceneList {
     private String kno;
 
     @ExcelProperty("警情编号")
-    private String jqNo;
+    private String jqNumber;
 
     @ExcelProperty("案件编号")
     private String caseNo;
@@ -40,7 +40,7 @@ public class ExportSceneList {
     private String caseAddress;
 
     @ExcelProperty("案件类型")
-    private String caseType;
+    private String caseCategory;
 
     @ExcelProperty("扫描点位数")
     private String shootCount;

+ 2 - 0
src/main/java/com/fdkankan/manage/vo/response/SceneVo.java

@@ -42,6 +42,7 @@ public class SceneVo {
     private String webSite;
 
     private Integer platformId;
+    private String platformName;
 
     private Boolean isShare = false;
     private Boolean inCase = false;
@@ -54,4 +55,5 @@ public class SceneVo {
     private String buildFailReason;
     private Integer isObj;
     private String startBuildTime;
+    private String uploadType;
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/vo/response/SysUserVo.java

@@ -1,5 +1,6 @@
 package com.fdkankan.manage.vo.response;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 
 @Data
@@ -15,4 +16,6 @@ public class SysUserVo {
     private Integer status;
     private Integer platformId;
     private String platformName;
+    private String districtCode;
+    private String districtName;
 }

+ 1 - 1
src/main/resources/mapper/manage/AuthPageMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.fdkankan.manage.mapper.IAuthPageMapper">
 
     <select id="pageList" resultType="com.fdkankan.manage.vo.AuthPageVo">
-        select ap.id,jy.ry_nick_name,jy.ry_no,jp.`name` as platformName from t_auth_page ap
+        select ap.id,jy.ry_nick_name,jy.ry_no,jp.platform_name from t_auth_page ap
                 left join jy_user jy on ap.jy_id = jy.id
                 left join jy_platform jp on jy.platform_id = jp.id
         where ap.rec_status = 'A'

+ 6 - 0
src/main/resources/mapper/manage/CaseMapper.xml

@@ -37,4 +37,10 @@
         order by case_id desc
 
     </select>
+
+    <select id="selectByKnos" resultType="com.fdkankan.manage.entity.Case">
+        select c.*,i.times from  fd_fusion.t_case c
+             left join  fd_fusion.t_case_inquest_info i on c.case_id = i.case_id and i.tb_status = 0
+        where c.tb_status = 0
+    </select>
 </mapper>

+ 23 - 10
src/main/resources/mapper/manage/DataMapper.xml

@@ -60,18 +60,12 @@
         GROUP BY  s.district_code
     </select>
     <select id="getExPortSceneList" resultType="com.fdkankan.manage.vo.response.ExportSceneList">
-        select s.title,jy.ry_nick_name,jy.ry_no,a.sn_code, s.create_time ,e.shoot_count,s.k_no
+        select s.title,jy.ry_nick_name,jy.ry_no,jy.ry_org_name,a.sn_code, s.create_time ,e.shoot_count,s.k_no
         from t_scene_plus s LEFT JOIN t_scene_plus_ext e on s.id =e.plus_id
         left join jy_user jy on s.user_id = jy.user_id
         left join t_camera a on s.camera_id = a.id
         left join t_camera_detail d on s.camera_id = d.camera_id
        <include refid="commonWhere"></include>
-        <if test="param.districtCodeList!=null and param.districtCodeList.size >0">
-            and s.district_code in
-            <foreach item="districtCode" collection="param.districtCodeList" open="(" separator="," close=")">
-                #{districtCode}
-            </foreach>
-        </if>
         <if test="param.cameraTypeList!=null and param.cameraTypeList.size >0">
             and d.type in
             <foreach item="type" collection="param.cameraTypeList" open="(" separator="," close=")">
@@ -103,11 +97,30 @@
         <if test="param.endTime != null and param.endTime!=''">
             and s.create_time &lt;=#{param.endTime}
         </if>
-        <if test="param.districtCode!=null and param.districtCode != ''">
-            and s.district_code = #{param.districtCode}
-        </if>
         <if test="param.cameraType!=null ">
             and d.type = #{param.cameraType}
         </if>
+        <if test="param.districtCodeList!=null and param.districtCodeList.size >0">
+            and s.district_code in
+            <foreach item="districtCode" collection="param.districtCodeList" open="(" separator="," close=")">
+                #{districtCode}
+            </foreach>
+        </if>
     </sql>
+
+
+    <select id="cameraGroupByPlatformId" resultType="com.fdkankan.manage.vo.response.GroupByCount">
+        select d.type as id,count(1) as count from t_scene_plus s
+            left join t_camera_detail d on s.camera_id = d.camera_id and d.rec_status = 'A'
+            left join jy_user ju on s.user_id = ju.user_id  and d.rec_status = 'A'
+        where s.rec_status = 'A'
+        <if test="platformIds!=null and platformIds.size >0">
+            and ju.platform_id in
+            <foreach item="platformId" collection="platformIds" open="(" separator="," close=")">
+                #{platformId}
+            </foreach>
+        </if>
+        group by d.type
+    </select>
+
 </mapper>

+ 5 - 0
src/main/resources/mapper/manage/DictEvidenceMapper.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.IDictEvidenceMapper">
+
+</mapper>

+ 12 - 5
src/main/resources/mapper/manage/SceneProMapper.xml

@@ -57,7 +57,7 @@
         select s.id,'4dkankan' as sceneType,s.title as sceneName ,s.num,s.create_time,c.sn_code,e.space as sceneSize
              ,u.user_name,e.view_count,s.scene_status as status,s.pay_status,'v4' as scene_version,e.web_site , e.thumb
              ,e.algorithm_time,s.user_id,jy.platform_id,s.scene_source,s.three_cam_type,e.is_obj,jy.ry_nick_name as nickName,
-              s.build_fail_reason,s.start_build_time,d.type
+              s.build_fail_reason,s.start_build_time,d.type,s.upload_type
         from t_scene_plus s
                  left join t_scene_plus_ext e on s.id = e.plus_id
                  left join t_user u on s.user_id = u.id
@@ -138,14 +138,17 @@
             )
         </if>
 
-
-
+        <if test="param.sceneType == 2">
+            <if test="param.platform!= null">
+                and jy.platform_id = #{param.platform}
+            </if>
+        </if>
     </sql>
 
     <sql id="selectLaser">
         SELECT s.id,'laser' as sceneType, s.title as sceneName,s.scene_code as num,s.shoot_time as createTime,s.sn_code,s.space as scennSize,s.user_name,s.view_count,s.status,
                s.pay_status,'v4' as scene_version,s.web_site,s.init_pic as thumb,s.algorithm_time,s.user_id,jy.platform_id,s.scene_source,
-               null as asthree_cam_type ,null as is_obj,jy.ry_nick_name as nickName,null as buildFailReason,null as startBuildTime,null as type
+               null as asthree_cam_type ,null as is_obj,jy.ry_nick_name as nickName,null as buildFailReason,null as startBuildTime,null as type,null as upload_type
         from fdkk_laser.t_scene s
                  left join t_user u on s.user_id = u.id
                  left join jy_user jy on u.id = jy.user_id
@@ -211,6 +214,10 @@
             </if>
             )
         </if>
-
+        <if test="param.sceneType == 2">
+            <if test="param.platform!= null">
+                and jy.platform_id = #{param.platform}
+            </if>
+        </if>
     </sql>
 </mapper>