wangbo 3 years ago
parent
commit
fc8e367f97

+ 41 - 19
sms_water/src/main/java/com/huaxu/controller/AppPageReportController.java

@@ -157,8 +157,10 @@ public class AppPageReportController {
 
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,1);
         BigDecimal sum = sellerWaterList.get(0).getGeneralUserAmount().add(sellerWaterList.get(0).getBigUserAmount());
-        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:sellerWaterList.get(0).getGeneralUserAmount().multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sum,3);
-
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:sellerWaterList.get(0).getGeneralUserAmount().
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
+        BigDecimal bigUserRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:sellerWaterList.get(0).getBigUserAmount().
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", sellerWaterList.get(0).getReceivableAmount());
         map.put("totalReceived", sellerWaterList.get(0).getReceivedAmount());
@@ -166,8 +168,10 @@ public class AppPageReportController {
         map.put("generalUser",sellerWaterList.get(0).getGeneralUserAmount());
         map.put("bigUser",sellerWaterList.get(0).getBigUserAmount());
         map.put("generalUserRate",generalRate);
-        map.put("bigUserRate",new BigDecimal(100).subtract(generalRate));
-        map.put("recoveryRate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivableAmount(),3));
+        map.put("bigUserRate",bigUserRate);
+        map.put("recoveryRate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).
+                divide(sellerWaterList.get(0).getReceivableAmount(),2, BigDecimal.ROUND_DOWN));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -188,7 +192,9 @@ public class AppPageReportController {
         map.put("receivableAmount", sellerWaterList.get(0).getReceivableAmount());
         map.put("receivedAmount", sellerWaterList.get(0).getReceivedAmount());
         map.put("sellerAmount",sellerAmountList.get(0).getAmount());
-        map.put("recoveryRate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivableAmount(),3));
+        map.put("recoveryRate", sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0? 0 : sellerWaterList.get(0).getReceivedAmount().
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).
+                divide(sellerWaterList.get(0).getReceivableAmount(),2, BigDecimal.ROUND_DOWN));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -213,10 +219,14 @@ public class AppPageReportController {
             totalReceivedAmount=totalReceivedAmount.add(amount.getReceivedAmount());
             totalGeneralUser=totalGeneralUser.add(amount.getGeneralUserAmount());
             totalBigUser=totalBigUser.add(amount.getBigUserAmount());
-            amount.setRecoveryRate(totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? BigDecimal.ZERO : totalReceivedAmount.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,3));
+            amount.setRecoveryRate(totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? BigDecimal.ZERO : totalReceivedAmount.
+                    multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,2, BigDecimal.ROUND_DOWN));
         }
         BigDecimal sum =totalBigUser.add(totalGeneralUser);
-        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sum,2);
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
+        BigDecimal bigUserRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalBigUser.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
@@ -224,8 +234,9 @@ public class AppPageReportController {
         map.put("generalUser",totalGeneralUser);
         map.put("bigUser",totalBigUser);
         map.put("generalUserRate",generalRate);
-        map.put("bigUserRate",new BigDecimal(100).subtract(generalRate));
-        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,3));
+        map.put("bigUserRate",bigUserRate);
+        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,2, BigDecimal.ROUND_DOWN));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -250,12 +261,15 @@ public class AppPageReportController {
             totalReceivedAmount=totalReceivedAmount.add(amount.getReceivedAmount());
             totalGeneralUser=totalGeneralUser.add(amount.getGeneralUserAmount());
             totalBigUser=totalBigUser.add(amount.getBigUserAmount());
-            amount.setRecoveryRate(totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? BigDecimal.ZERO : totalReceivedAmount.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,3));
+            amount.setRecoveryRate(totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? BigDecimal.ZERO : totalReceivedAmount.
+                    multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,2, BigDecimal.ROUND_DOWN));
         }
 
         BigDecimal sum =totalBigUser.add(totalGeneralUser);
-        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sum,3);
-        BigDecimal bigUserRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalBigUser.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sum,3);
+        BigDecimal generalRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalGeneralUser.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
+        BigDecimal bigUserRate =sum.compareTo(BigDecimal.ZERO)==0?BigDecimal.ZERO:totalBigUser.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sum,2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("totalReceivable", totalReceivableAmount);
         map.put("totalReceived",totalReceivedAmount);
@@ -264,7 +278,8 @@ public class AppPageReportController {
         map.put("bigUser",totalBigUser);
         map.put("generalUserRate",generalRate);
         map.put("bigUserRate",bigUserRate);
-        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,3));
+        map.put("recoveryRate", totalReceivableAmount.compareTo(BigDecimal.ZERO)==0? 0 : totalReceivedAmount.
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(totalReceivableAmount,2, BigDecimal.ROUND_DOWN));
         return new AjaxMessage<>(ResultStatus.OK,map);
     }
 
@@ -274,9 +289,11 @@ public class AppPageReportController {
     public AjaxMessage<Object> getSellerComparisonForSameMonth(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
 
         List<DeviceWaterSupply> sellerWaterList = appPageReportService.deviceSellerAmountReportForMonth(companyOrgId,2);
-        BigDecimal receivableComparison = sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(1).getReceivableAmount().subtract(sellerWaterList.get(0).getReceivableAmount()).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivableAmount(),3);
+        BigDecimal receivableComparison = sellerWaterList.get(0).getReceivableAmount().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(1).getReceivableAmount().subtract(sellerWaterList.get(0).getReceivableAmount()).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivableAmount(),2, BigDecimal.ROUND_DOWN);
 
-        BigDecimal receivedComparison = sellerWaterList.get(0).getReceivedAmount().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(1).getReceivedAmount().subtract(sellerWaterList.get(0).getReceivedAmount()).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivedAmount(),3);
+        BigDecimal receivedComparison = sellerWaterList.get(0).getReceivedAmount().compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:sellerWaterList.get(1).getReceivedAmount().subtract(sellerWaterList.get(0).getReceivedAmount()).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(sellerWaterList.get(0).getReceivedAmount(),2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("receivableComparison",receivableComparison);
         map.put("receivedComparison",receivedComparison);
@@ -304,8 +321,10 @@ public class AppPageReportController {
             }
         }
 
-        BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.subtract(receivedLastYearComparison).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(receivedLastYearComparison,3);
-        BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.subtract(receivableLastYearComparison).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(receivableLastYearComparison,3);
+        BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.subtract(receivedLastYearComparison).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(receivedLastYearComparison,2, BigDecimal.ROUND_DOWN);
+        BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.subtract(receivableLastYearComparison).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(receivableLastYearComparison,2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("receivableComparison",receivableComparison);
         map.put("receivedComparison",receivedComparison);
@@ -332,10 +351,13 @@ public class AppPageReportController {
                 receivableLastYearComparison =receivableLastYearComparison.add(sellerWaterList.get(i).getReceivableAmount());
             }
         }
-        BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.subtract(receivedLastYearComparison).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(receivedLastYearComparison,3);
-        BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.subtract(receivableLastYearComparison).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(receivableLastYearComparison,3);
+        BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.subtract(receivedLastYearComparison).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(receivedLastYearComparison,2, BigDecimal.ROUND_DOWN);
+        BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.subtract(receivableLastYearComparison).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(receivableLastYearComparison,2, BigDecimal.ROUND_DOWN);
         Map<String,Object> map = new HashMap<String,Object>();
         map.put("receivableComparison",receivableComparison);
+
         map.put("receivedComparison",receivedComparison);
         return new AjaxMessage<>(ResultStatus.OK,map);
     }

+ 27 - 0
sms_water/src/main/java/com/huaxu/controller/CameraManageController.java

@@ -109,6 +109,33 @@ public class CameraManageController {
         Pagination<CameraManage> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+
+
+    /**
+     * app视频列表分页查询
+     *
+     * @param pageNum  偏移
+     * @param pageSize 条数
+     * @return Response对象
+     */
+    @RequestMapping(value = "appSelectPage", method = RequestMethod.POST)
+    @ApiOperation(value = "查询摄像头列表")
+    public AjaxMessage<Pagination<CameraManage>> appSelectPage(@RequestParam(required = false) Integer pageNum,
+                                                            @RequestParam(required = false)Integer pageSize,
+                                                            @RequestParam(required = false) Integer companyOrgId,
+                                                            @RequestParam(required = false)Integer deptOrgId,
+                                                            @RequestParam(required = false) Integer sceneId,
+                                                            @RequestParam(required = false) String name) {
+        CameraManage cameraManage = new CameraManage();
+        cameraManage.setCompanyOrgId(companyOrgId);
+        cameraManage.setDeptOrgId(deptOrgId);
+        cameraManage.setParentSceneId(sceneId);
+        cameraManage.setName(name);
+        IPage<CameraManage> iPage = new Page<>(pageNum, pageSize);
+        iPage = cameraManageService.appSelectPage(cameraManage, iPage);
+        Pagination<CameraManage> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
     /**
      * 查询场景树下的摄像头
      *

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/CameraManageMapper.java

@@ -81,6 +81,8 @@ public interface CameraManageMapper {
 
     IPage<CameraManage> selectPage(IPage<CameraManage> page, CameraManage cameraManage);
 
+    IPage<CameraManage> appSelectPage(IPage<CameraManage> page, CameraManage cameraManage);
+
     int deleteAll(List<Integer> ids);
 
     List<CameraManage> getAllCameras(Integer id);

+ 4 - 0
sms_water/src/main/java/com/huaxu/entity/CameraManage.java

@@ -45,6 +45,10 @@ public class CameraManage implements Serializable {
      */
     @ApiModelProperty(value = "场景id")
     private Integer sceneId;
+
+    @ApiModelProperty(value = "上级场景id")
+    private Integer parentSceneId;
+
     /**
      * 地址
      */

+ 2 - 0
sms_water/src/main/java/com/huaxu/service/CameraManageService.java

@@ -79,6 +79,8 @@ public interface CameraManageService {
 
     IPage<CameraManage> selectPage(CameraManage cameraManage, IPage<CameraManage> page);
 
+    IPage<CameraManage> appSelectPage(CameraManage cameraManage, IPage<CameraManage> page);
+
     int deleteAll(List<Integer> ids);
 
     List<CameraDto> getCameraTree(Long typeId);

+ 6 - 3
sms_water/src/main/java/com/huaxu/service/impl/AppPageReportServiceImpl.java

@@ -158,7 +158,8 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         for(DeviceWaterSupply water : sellerWaterList){
             sellerWaterAmount = sellerWaterAmount.add(water.getAmount());
         }
-        BigDecimal nrw = makingWaterAmount.compareTo(BigDecimal.ZERO) == 0  ? BigDecimal.ZERO : makingWaterAmount.subtract(sellerWaterAmount).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(makingWaterAmount,2);
+        BigDecimal nrw = makingWaterAmount.compareTo(BigDecimal.ZERO) == 0  ? BigDecimal.ZERO : makingWaterAmount.subtract(sellerWaterAmount).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(makingWaterAmount,2, BigDecimal.ROUND_DOWN);
         map.put("totalIntake",supplyWaterAmount);
         map.put("totalMaking",makingWaterAmount);
         map.put("totallSeller",sellerWaterAmount);
@@ -181,7 +182,8 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         for(DeviceWaterSupply water : lastWaterList){
             lastWaterAmount = lastWaterAmount.add(water.getAmount());
         }
-        BigDecimal comparison = lastWaterAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameWaterAmount.subtract(lastWaterAmount).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(lastWaterAmount,2);
+        BigDecimal comparison = lastWaterAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameWaterAmount.subtract(lastWaterAmount).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(lastWaterAmount,2, BigDecimal.ROUND_DOWN);
         return comparison;
     }
 
@@ -210,7 +212,8 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         }
 
 
-        BigDecimal comparison = lastWaterAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameWaterAmount.subtract(lastWaterAmount).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP).divide(lastWaterAmount,2);
+        BigDecimal comparison = lastWaterAmount.compareTo(BigDecimal.ZERO) == 0 ? BigDecimal.ZERO : sameWaterAmount.subtract(lastWaterAmount).
+                multiply(new BigDecimal(100)).setScale(3,BigDecimal.ROUND_HALF_UP).divide(lastWaterAmount,2, BigDecimal.ROUND_HALF_UP);
         return comparison;
     }
 

+ 16 - 0
sms_water/src/main/java/com/huaxu/service/impl/CameraManageServiceImpl.java

@@ -295,6 +295,22 @@ public class CameraManageServiceImpl implements CameraManageService {
         return cameraManageIPage;
     }
 
+
+    @Override
+    public IPage<CameraManage> appSelectPage(CameraManage cameraManage, IPage<CameraManage> page){
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        cameraManage.setTenantId(currentUser.getTenantId());
+        cameraManage.setProgramItems(currentUser.getProgramItemList());
+        cameraManage.setPermissonType(currentUser.getPermissonType());
+        Map<String, String> allOrgName = util.getAllOrgName();
+        IPage<CameraManage> cameraManageIPage = this.cameraManageMapper.appSelectPage(page, cameraManage);
+        cameraManageIPage.getRecords().forEach(record->{
+            record.setDepartName(allOrgName.get(String.valueOf(record.getDeptOrgId())));
+            record.setCompanyName(allOrgName.get(String.valueOf(record.getCompanyOrgId())));
+        });
+        return cameraManageIPage;
+    }
+
     @Override
     public int deleteAll(List<Integer> ids) {
         cameraManageMapper.deleteAll(ids);

+ 53 - 0
sms_water/src/main/resources/mapper/CameraManageMapper.xml

@@ -239,6 +239,59 @@
         select count(*)
         from sms_camera_manage
     </select>
+
+    <select id="appSelectPage" resultMap="CameraManageMap">
+        select
+         a.ID, a.TENANT_ID, a.COMPANY_ORG_ID, a.DEPT_ORG_ID, a.SCENE_ID, a.address, geo, PALY_URL, REPLAY_URL, APPKEY, SCRERT, a.CREATE_BY, a.DATE_UPDATE,
+         a.UPDATE_BY, a.DATE_CREATE, a.name, device_serial, channel_no, b.SCENE_NAME, c.image_path
+        from sms_camera_manage a join sms_scene b on a.SCENE_ID=b.ID
+        left join sms_scene_image c on c.SCENE_ID=a.SCENE_ID and c.image_type=3 and c.STATUS =1
+        <where>
+            a.status=1
+            <if test="cameraManage.permissonType == 5 or cameraManage.permissonType == 2">
+                and ( a.DEPT_ORG_ID in
+                <foreach collection="cameraManage.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                a.COMPANY_ORG_ID in
+                <foreach collection="cameraManage.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="cameraManage.permissonType == 4 or cameraManage.permissonType == 3">
+                and a.DEPT_ORG_ID in
+                <foreach collection="cameraManage.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="cameraManage.permissonType == 1">
+                and a.COMPANY_ORG_ID in
+                <foreach collection="cameraManage.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+            </if>
+            <if test="cameraManage.tenantId != null and cameraManage.tenantId != ''">
+                and a.TENANT_ID = #{cameraManage.tenantId}
+            </if>
+            <if test="cameraManage.companyOrgId != null">
+                and a.COMPANY_ORG_ID = #{cameraManage.companyOrgId}
+            </if>
+            <if test="cameraManage.deptOrgId != null">
+                and a.DEPT_ORG_ID = #{cameraManage.deptOrgId}
+            </if>
+            <if test="cameraManage.name != null and cameraManage.name != ''">
+                and name LIKE concat('%',#{cameraManage.name},'%')
+            </if>
+            <if test="cameraManage.parentSceneId != null">
+                and FIND_IN_SET( #{cameraManage.parentSceneId},b.PARENT_SCENE_IDS)
+            </if>
+        </where>
+    </select>
+
+
     <select id="selectPage" resultMap="CameraManageMap">
         select
         <include refid="Base_Column_List"/> ,b.SCENE_NAME