wangbo 3 vuotta sitten
vanhempi
commit
c396b1e489

+ 6 - 0
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderStatisticsController.java

@@ -302,8 +302,14 @@ public class WorkOrderStatisticsController {
             @ApiParam(value = "统计时间:月格式(yyyy-MM),年格式(yyyy),自定义统计时间开始日期", required = true) @RequestParam(required = true) String startDate,
             @ApiParam(value = "统计时间:年月统计不用传入此参数,自定义统计截至日期", required = false) @RequestParam(required = false) String endDate) throws ParseException {
         LocalDate localDate = LocalDate.now();
+        LoginUser loginUser = UserUtil.getCurrentUser();
         List<Map<String,Object>> statistics = new ArrayList<Map<String, Object>>();
         WorkOrderManageDto workOrderManageDto = new WorkOrderManageDto();
+        workOrderManageDto.setTenantId(loginUser.getTenantId());
+        workOrderManageDto.setProgramItems(loginUser.getProgramItemList());
+        workOrderManageDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        workOrderManageDto.setPermissonType(loginUser.getPermissonType());
         switch (statsType) {
             case 0:
                 startDate = String.format("%s-01", startDate);

+ 6 - 3
sms_water/src/main/java/com/huaxu/controller/SceneController.java

@@ -226,9 +226,7 @@ public class SceneController {
             @ApiParam(value = "统计类型:0-按月统计,1-按年统计,2-自定义统计", required = true) @RequestParam(required = true) int statsType,
             @ApiParam(value = "统计时间:月格式(yyyy-MM),年格式(yyyy),自定义统计时间开始日期", required = true) @RequestParam(required = true) String startDate,
             @ApiParam(value = "统计时间:年月统计不用传入此参数,自定义统计截至日期", required = false) @RequestParam(required = false) String endDate) throws ParseException {
-
         LocalDate localDate = LocalDate.now();
-
         LoginUser loginUser = UserUtil.getCurrentUser();
         SceneEntity sceneEntity = new SceneEntity();
         sceneEntity.setTenantId(loginUser.getTenantId());
@@ -313,7 +311,6 @@ public class SceneController {
         return new AjaxMessage<>(ResultStatus.OK, list);
     }
 
-
     @RequestMapping(value = "/alarmTimesStatistics", method = RequestMethod.GET)
     @ResponseBody
     @ApiOperation(value = "报警次数统计")
@@ -324,7 +321,13 @@ public class SceneController {
             @ApiParam(value = "统计时间:月格式(yyyy-MM),年格式(yyyy),自定义统计时间开始日期", required = true) @RequestParam(required = true) String startDate,
             @ApiParam(value = "统计时间:年月统计不用传入此参数,自定义统计截至日期", required = false) @RequestParam(required = false) String endDate) throws ParseException {
         LocalDate localDate = LocalDate.now();
+        LoginUser loginUser = UserUtil.getCurrentUser();
         SceneEntity sceneEntity = new SceneEntity();
+        sceneEntity.setTenantId(loginUser.getTenantId());
+        sceneEntity.setProgramItems(loginUser.getProgramItemList());
+        sceneEntity.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        sceneEntity.setPermissonType(loginUser.getPermissonType());
         sceneEntity.setId(Long.parseLong(String.valueOf(id)));
         switch (statsType) {
             case 0:

+ 71 - 7
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -471,9 +471,7 @@
             and SCENE_TYPE_NAME in('水源','水厂','泵站')
         </where>
         group by a.scene_name, a.id, sort
-
         union all
-
         select count(1) amount, d.id,c.scene_id, d.device_name name,1 sort
         from sms_alarm_details c
         INNER JOIN sms_device d on c.DEVICE_ID=d.ID
@@ -484,7 +482,7 @@
             <if test="scene.tenantId != null  and scene.tenantId != ''">
                 and a.tenant_id = #{scene.tenantId}
             </if>
-            <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and  scene.programItems != null and scene.programItems.size() > 0">
+            <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and scene.programItems != null and scene.programItems.size() > 0">
                 <if test="scene.permissonType == 5 or scene.permissonType == 2">
                     and ( a.DEPT_ORG_ID in
                     <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
@@ -527,8 +525,41 @@
                 where a.ID = #{scene.id}
             </if>
             <if test="sort == 1">
-                from sms_alarm_details c
-                where c.device_id = #{scene.id}
+                from sms_scene a inner join sms_scene_type b on a.SCENE_TYPE_ID=b.ID
+                INNER JOIN sms_alarm_details c on c.PARENT_SCENE_ID=a.ID
+                where a.PARENT_SCENE_ID=0 and a.STATUS=1
+                and c.device_id = #{scene.id}
+                and b.SCENE_TYPE_NAME='管网'
+                <if test="scene.tenantId != null  and scene.tenantId != ''">
+                    and a.tenant_id = #{scene.tenantId}
+                </if>
+                <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and scene.programItems != null and scene.programItems.size() > 0">
+                    <if test="scene.permissonType == 5 or scene.permissonType == 2">
+                        and ( a.DEPT_ORG_ID in
+                        <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        or
+                        a.COMPANY_ORG_ID in
+                        <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        )
+                    </if>
+                    <if test="scene.permissonType == 4 or scene.permissonType == 3">
+                        and a.DEPT_ORG_ID in
+                        <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                    </if>
+                    <if test="scene.permissonType == 1">
+                        and a.COMPANY_ORG_ID in
+                        <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                            #{item.orgId}
+                        </foreach>
+                        and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+                    </if>
+                </if>
             </if>
             and c.alarm_start_time &gt;= date_format(#{startDate,jdbcType=VARCHAR},'%Y-%m-%d')
             and c.alarm_start_time &lt; date_format(#{endDate,jdbcType=VARCHAR},'%Y-%m-%d')
@@ -543,8 +574,41 @@
             where a.ID = #{scene.id}
         </if>
         <if test="sort == 1">
-            from sms_alarm_details c
-            where c.device_id = #{scene.id}
+        from sms_scene a inner join  sms_scene_type b on a.SCENE_TYPE_ID=b.ID
+            INNER JOIN sms_alarm_details c on c.PARENT_SCENE_ID=a.ID
+            where a.PARENT_SCENE_ID=0 and a.STATUS=1
+            and c.device_id = #{scene.id}
+            and b.SCENE_TYPE_NAME='管网'
+            <if test="scene.tenantId != null  and scene.tenantId != ''">
+                and a.tenant_id = #{scene.tenantId}
+            </if>
+            <if test="scene.userType!=null and scene.userType!=-999 and scene.userType!=-9999 and scene.programItems != null and scene.programItems.size() > 0">
+                <if test="scene.permissonType == 5 or scene.permissonType == 2">
+                    and ( a.DEPT_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    or
+                    a.COMPANY_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="scene.permissonType == 4 or scene.permissonType == 3">
+                    and a.DEPT_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="scene.permissonType == 1">
+                    and a.COMPANY_ORG_ID in
+                    <foreach collection="scene.programItems" item="item" open="(" close=")" separator=",">
+                        #{item.orgId}
+                    </foreach>
+                    and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
+                </if>
+            </if>
         </if>
         and c.date_create &gt;= date_format(#{startDate,jdbcType=VARCHAR},'%Y-%m-%d')
         and c.date_create &lt; date_format(#{endDate,jdbcType=VARCHAR},'%Y-%m-%d')