Jelajahi Sumber

综合展示-查询运维情况

yuejiaying 4 tahun lalu
induk
melakukan
1d0c4ab031

+ 29 - 0
operation_manager/src/main/java/com/huaxu/common/Double2Serializer.java

@@ -0,0 +1,29 @@
+package com.huaxu.common;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.io.IOException;
+import java.text.DecimalFormat;
+
+public class Double2Serializer extends JsonSerializer<Double> {
+
+    private DecimalFormat df = new DecimalFormat("0.##");
+
+    /**
+     * 小数保留2位返回给前端序列化器
+     * @param data
+     * @param jsonGenerator
+     * @param serializerProvider
+     * @throws IOException
+     */
+    @Override
+    public void serialize(Double data, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
+            throws IOException {
+        if (data != null) {
+            jsonGenerator.writeNumber(df.format(data));
+        }
+    }
+
+}

+ 21 - 0
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderManageController.java

@@ -789,5 +789,26 @@ public class WorkOrderManageController {
             }
         }
     }
+
+    /**
+     * 综合展示-查询工单执行情况
+     * @return Response对象
+     */
+    @RequestMapping(value = "selectOrderStatus", method = RequestMethod.GET)
+    @ApiOperation(value = "综合展示-查询工单执行情况")
+    public AjaxMessage<List<WorkOrderManageDto>> selectOrderStatus(
+            @ApiParam(value = "公司机构id", required = false)@RequestParam(required = false) Integer companyOrgId) {
+        WorkOrderManageDto workOrderManageDto=new WorkOrderManageDto();
+        workOrderManageDto.setCompanyOrgId(companyOrgId!=null?companyOrgId.toString():null);
+
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        workOrderManageDto.setTenantId(loginUser.getTenantId());
+        workOrderManageDto.setProgramItems(loginUser.getProgramItemList());
+        workOrderManageDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        workOrderManageDto.setPermissonType(loginUser.getPermissonType());
+        List<WorkOrderManageDto> result=workOrderManageService.selectOrderStatus(workOrderManageDto);
+        return new AjaxMessage<>(ResultStatus.OK, result );
+    }
 }
 

+ 2 - 0
operation_manager/src/main/java/com/huaxu/order/dao/WorkOrderManageMapper.java

@@ -51,4 +51,6 @@ public interface WorkOrderManageMapper {
      * 待处理权限
      */
     int selectPendingPower(Map<String,Object> map);
+
+    List<WorkOrderManageDto> selectOrderStatus(WorkOrderManageDto workOrderManageDto);
 }

+ 8 - 0
operation_manager/src/main/java/com/huaxu/order/dto/WorkOrderManageDto.java

@@ -2,6 +2,8 @@ package com.huaxu.order.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.Double2Serializer;
 import com.huaxu.model.ProgramItem;
 import com.huaxu.order.entity.WorkFlowDetail;
 import com.huaxu.order.entity.WorkFlowLog;
@@ -89,4 +91,10 @@ public class WorkOrderManageDto extends WorkOrderManage {
 
     @ApiModelProperty(value = "接单人电话")
     private String orderUserPhone;
+
+    @ApiModelProperty(value = "工单数量")
+    private Integer orderCount;
+
+    @ApiModelProperty(value = "工单状态名称")
+    private String orderStatusName;
 }

+ 4 - 0
operation_manager/src/main/java/com/huaxu/order/service/WorkOrderManageService.java

@@ -81,4 +81,8 @@ public interface WorkOrderManageService {
      * 待处理权限
      */
     int selectPendingPower(Map<String,Object> map);
+    /**
+     * 综合展示-查询工单执行情况
+     */
+    List<WorkOrderManageDto> selectOrderStatus(WorkOrderManageDto workOrderManageDto);
 }

+ 5 - 0
operation_manager/src/main/java/com/huaxu/order/service/impl/WorkOrderManageServiceImpl.java

@@ -138,4 +138,9 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
         return workOrderManageMapper.selectPendingPower(map);
     }
 
+
+    @Override
+    public List<WorkOrderManageDto> selectOrderStatus(WorkOrderManageDto workOrderManageDto) {
+        return workOrderManageMapper.selectOrderStatus(workOrderManageDto);
+    }
 }

+ 26 - 1
operation_manager/src/main/java/com/huaxu/task/controller/PlanManageController.java

@@ -334,7 +334,10 @@ public class PlanManageController {
                     }
                 }
                 Long[] ids = idList.toArray(new Long[0]);
-                Map<Long,String> userMap = userCenterClient.findUserIdsByUserIds(ids).stream().collect(Collectors.toMap(UserEntity::getId, UserEntity::getUsername));
+                Map<Long,String> userMap=new HashMap<>();
+                if(ids.length>0){
+                   userMap = userCenterClient.findUserIdsByUserIds(ids).stream().collect(Collectors.toMap(UserEntity::getId, UserEntity::getUsername));
+                }
                 Map<String,String> dictMap=userCenterClient.selectListByPCodes("SC_WORK_ORDER_TYPE,SC_TASK_TYPE");
                 for(int i=0; i<planManageDtoList.size();i++){
                     PlanManageDto plan = planManageDtoList.get(i);
@@ -386,4 +389,26 @@ public class PlanManageController {
             e.printStackTrace();
         }
     }
+
+    /**
+     * 综合展示-查询任务执行情况
+     * @return Response对象
+     */
+    @RequestMapping(value = "selectTaskFinished", method = RequestMethod.GET)
+    @ApiOperation(value = "综合展示-查询任务执行情况")
+    public AjaxMessage<List<PlanManageDto>> selectTaskFinished(
+            @ApiParam(value = "公司机构id", required = false)@RequestParam(required = false) Integer companyOrgId) {
+        PlanManageDto planManageDto=new PlanManageDto();
+        planManageDto.setCompanyOrgId(companyOrgId!=null?companyOrgId.toString():null);
+
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        planManageDto.setTenantId(loginUser.getTenantId());
+        planManageDto.setProgramItems(loginUser.getProgramItemList());
+        planManageDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        planManageDto.setPermissonType(loginUser.getPermissonType());
+        List<PlanManageDto> result=planManageService.selectTaskFinished(planManageDto);
+        setName(result);
+        return new AjaxMessage<>(ResultStatus.OK, result );
+    }
 }

+ 2 - 0
operation_manager/src/main/java/com/huaxu/task/dao/PlanManageMapper.java

@@ -34,4 +34,6 @@ public interface PlanManageMapper {
     int selectPendingPower(Map<String,Object> map);
 
     List<Map<String,Object>> selectTaskName(Map<String,Object> map);
+
+    List<PlanManageDto> selectTaskFinished(PlanManageDto planManageDto);
 }

+ 6 - 2
operation_manager/src/main/java/com/huaxu/task/dto/PlanManageDto.java

@@ -1,6 +1,8 @@
 package com.huaxu.task.dto;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.huaxu.common.Double2Serializer;
 import com.huaxu.model.ProgramItem;
 import com.huaxu.order.entity.WorkFlowDetail;
 import com.huaxu.order.entity.WorkFlowLog;
@@ -73,7 +75,9 @@ public class PlanManageDto extends PlanManage {
     @JsonIgnore
     private String userType;
 
+    @ApiModelProperty(value = "任务数量")
+    private Integer taskCount;
 
-
-
+    @ApiModelProperty(value = "任务完成数量")
+    private Integer finishedCount;
 }

+ 5 - 0
operation_manager/src/main/java/com/huaxu/task/service/PlanManageService.java

@@ -61,4 +61,9 @@ public interface PlanManageService {
      * 流程节点名称
      */
     List<Map<String,Object>> selectTaskName(Map<String,Object> map);
+
+    /**
+     * 综合展示-查询任务执行情况
+     */
+    List<PlanManageDto> selectTaskFinished(PlanManageDto planManageDto);
 }

+ 17 - 0
operation_manager/src/main/java/com/huaxu/task/service/impl/PlanManageServiceImpl.java

@@ -1,10 +1,12 @@
 package com.huaxu.task.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.model.LoginUser;
 import com.huaxu.task.dao.PlanManageMapper;
 import com.huaxu.task.dto.PlanManageDto;
 import com.huaxu.task.entity.PlanManage;
 import com.huaxu.task.service.PlanManageService;
+import com.huaxu.util.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -66,4 +68,19 @@ public class PlanManageServiceImpl implements PlanManageService {
     public List<Map<String,Object>> selectTaskName(Map<String, Object> map) {
         return planManageMapper.selectTaskName(map);
     }
+
+    @Override
+    public List<PlanManageDto> selectTaskFinished(PlanManageDto planManageDto) {
+        List<PlanManageDto>  result= planManageMapper.selectTaskFinished(planManageDto);
+        PlanManageDto plan=new PlanManageDto();
+        Integer taskCount=0,FinishedCount=0;
+        for (PlanManageDto planDto:result) {
+            taskCount+=planDto.getTaskCount();
+            FinishedCount+=planDto.getFinishedCount();
+        }
+        plan.setTaskCount(taskCount);
+        plan.setFinishedCount(FinishedCount);
+        result.add(plan);
+        return result;
+    }
 }

+ 48 - 0
operation_manager/src/main/resources/mapper/order/WorkOrderManageMapper.xml

@@ -41,6 +41,8 @@
     <result column="scenes_id" property="scenesId" jdbcType="INTEGER" />
     <result column="device_name" property="deviceName" jdbcType="VARCHAR" />
     <result column="scenes_name" property="scenesName" jdbcType="VARCHAR" />
+    <result column="order_status_name" property="orderStatusName" jdbcType="VARCHAR" />
+    <result column="order_count" property="orderCount" jdbcType="VARCHAR" />
   </resultMap>
 
   <resultMap id="workFlowLogResultMap" type="com.huaxu.order.entity.WorkFlowLog">
@@ -681,4 +683,50 @@
     select count(1) from sc_work_order_manage
     where id = #{id,jdbcType=INTEGER} and FIND_IN_SET(#{currentUsers,jdbcType=VARCHAR},current_users)
   </select>
+
+  <!--综合展示-查询工单执行情况-->
+  <select id="selectOrderStatus" resultMap="BaseResultMap" >
+    select order_status_name,sum(order_count) order_count
+    from(
+      select order_status,count(1) order_count ,
+       case when order_status=0 then '未派单' when order_status=1 or order_status=4 then '处理中' else '已完结' end order_status_name
+      from sc_work_order_manage t1
+      where  t1.date_create>=date_format(curdate(), '%Y-%m' )
+      <if test="tenantId != null and tenantId != ''">
+        and t1.tenant_id=#{tenantId}
+      </if>
+      <if test="companyOrgId != null and companyOrgId !=''">
+        and t1.company_org_id=#{companyOrgId}
+      </if>
+      <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+        <if test="permissonType == 5 or permissonType == 2">
+          and ( t1.department_org_id in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          or
+          t1.COMPANY_ORG_ID in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          )
+        </if>
+        <if test="permissonType == 4 or permissonType == 3">
+          and t1.department_org_id in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+        </if>
+        <if test="permissonType == 1">
+          and t1.COMPANY_ORG_ID in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          and (t1.department_org_id is null or t1.department_org_id =0)
+        </if>
+      </if>
+      group by order_status
+    )tab1
+    group by order_status_name
+  </select>
 </mapper>

+ 46 - 0
operation_manager/src/main/resources/mapper/task/PlanManageMapper.xml

@@ -29,6 +29,8 @@
     <result column="department_org_id" property="departmentOrgId" jdbcType="VARCHAR" />
     <result column="task_checked" property="taskChecked" jdbcType="LONGVARCHAR" />
     <result column="flow_detail" property="flowDetail" jdbcType="VARCHAR" />
+    <result column="task_count" property="taskCount" jdbcType="VARCHAR" />
+    <result column="finished_count" property="finishedCount" jdbcType="VARCHAR" />
   </resultMap>
 
   <resultMap id="workFlowLogResultMap" type="com.huaxu.order.entity.WorkFlowLog">
@@ -481,4 +483,48 @@
     where t1.id = #{id,jdbcType=INTEGER}
   </select>
 
+  <select id="selectTaskFinished" resultMap="BaseResultMap" >
+    select task_type,sum(task_count) task_count,sum(case when plan_status=2 or plan_status=3 then task_count else 0 end) finished_count
+    from(
+      select task_type,plan_status,count(1) task_count
+      from sc_plan_manage t1
+      where  t1.date_create>=date_format(curdate(), '%Y-%m' )
+      <if test="tenantId != null and tenantId != ''">
+        and t1.tenant_id=#{tenantId}
+      </if>
+      <if test="companyOrgId != null and companyOrgId !=''">
+        and t1.company_org_id=#{companyOrgId}
+      </if>
+      <if test="userType!=null and userType!=-999 and userType!=-9999 and  programItems != null and programItems.size() > 0">
+        <if test="permissonType == 5 or permissonType == 2">
+          and ( t1.department_org_id in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          or
+          t1.COMPANY_ORG_ID in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          )
+        </if>
+        <if test="permissonType == 4 or permissonType == 3">
+          and t1.department_org_id in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+        </if>
+        <if test="permissonType == 1">
+          and t1.COMPANY_ORG_ID in
+          <foreach collection="programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          and (t1.department_org_id is null or t1.department_org_id =0)
+        </if>
+      </if>
+      group by task_type,plan_status
+    )tab1
+    group by task_type
+  </select>
+
 </mapper>

+ 3 - 1
sms_water/src/main/java/com/huaxu/controller/OnlineMonitorController.java

@@ -49,10 +49,12 @@ public class OnlineMonitorController {
     @ApiOperation(value = "查询实时报警信息")
     public AjaxMessage<List<AlarmDetailsDto>> selectAlarmDetails(
             @ApiParam(value = "一级场景类型名称", required = false) @RequestParam(required = false) String sceneTypeName,
-            @ApiParam(value = "场景名称", required = false) @RequestParam(required = false) String sceneName){
+            @ApiParam(value = "场景名称", required = false) @RequestParam(required = false) String sceneName,
+            @ApiParam(value = "公司机构id", required = false)@RequestParam(required = false) Integer companyOrgId){
         AlarmDetailsDto alarmDetailsDto=new AlarmDetailsDto();
         alarmDetailsDto.setSceneTypeName(sceneTypeName);
         alarmDetailsDto.setSceneName(sceneName);
+        alarmDetailsDto.setCompanyOrgId(companyOrgId);
         alarmDetailsDto.setSceneIds(sceneService.findByParentIdsLike(null));
         return new AjaxMessage<>(ResultStatus.OK, onlineMonitorService.selectAlarmDetails(alarmDetailsDto));
     }

+ 3 - 0
sms_water/src/main/resources/mapper/OnlineMonitorMapper.xml

@@ -133,6 +133,9 @@
         <if test="sceneTypeName != null and sceneTypeName != ''">
             and t3.scene_type_name = #{sceneTypeName}
         </if>
+        <if test="companyOrgId != null and companyOrgId !=''">
+            and t6.company_org_id=#{companyOrgId}
+        </if>
         <if test="sceneIds != null and sceneIds.size() > 0">
             and t1.id  in
             <foreach collection="sceneIds" item="item" open="(" close=")" separator=",">