wangbo há 4 anos atrás
pai
commit
fdb3baefc3

+ 28 - 3
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderManageController.java

@@ -382,7 +382,9 @@ public class WorkOrderManageController {
 
     @GetMapping("/maintain/user")
     @ApiOperation(value = "维护列表/人员")
-    public AjaxMessage<List<Map<String,Object>>> selectMaintainUser(){
+    public AjaxMessage<List<Map<String,Object>>> selectMaintainUser(
+            @ApiParam(value = "wkid", required = false) @RequestParam(required = false) String wkid,
+            @ApiParam(value = "偏移量(x,y)", required = false) @RequestParam(required = false) String moveXY){
         List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
         AjaxMessage<List<UserEntity>> listAjaxMessage = userCenterClient.findUserListByType();
         for(UserEntity userEntity : listAjaxMessage.getData()){
@@ -394,11 +396,34 @@ public class WorkOrderManageController {
             map.put("deptName", userEntity.getDeptOrgName());
             if (orderStatusMap != null) {
                 map.put("status", orderStatusMap.get("S").toString());
-                map.put("online","在线");
             }
             else {
                 map.put("status", "空闲");
-                map.put("online","离线");
+            }
+            Map<String, Object> onLineStatusMap = workOrderManageService.selectMaintainUserStatus(userEntity.getId().toString());
+            if(onLineStatusMap != null) {
+                if (!org.apache.commons.lang3.StringUtils.isEmpty(wkid)
+                        && wkid.equals("2360")
+                        && onLineStatusMap.get("X") != null
+                        && onLineStatusMap.get("Y") != null) {
+                    MyPoint myPoint = ConvertXY.ConvertXYToXian80(onLineStatusMap.get("X").toString(),
+                            onLineStatusMap.get("Y").toString(), moveXY);
+                    map.put("geo", String.format("[%s,%s]", myPoint.getX(), myPoint.getY()));
+                } else if (!org.apache.commons.lang3.StringUtils.isEmpty(wkid)
+                        && wkid.equals("3857")
+                        && onLineStatusMap.get("X") != null
+                        && onLineStatusMap.get("Y") != null) {
+                    MyPoint myPoint = ConvertXY.ConvertXYToMercato(onLineStatusMap.get("X").toString(),
+                            onLineStatusMap.get("Y").toString(), moveXY);
+                    map.put("geo", String.format("[%s,%s]", myPoint.getX(), myPoint.getY()));
+                } else if (onLineStatusMap.get("X") != null && onLineStatusMap.get("Y") != null) {
+                    map.put("geo", String.format("[%s,%s]", onLineStatusMap.get("X"), onLineStatusMap.get("Y")));
+                }
+                map.put("online", onLineStatusMap.get("L").toString());
+            }
+            else{
+                map.put("coords", null);
+                map.put("online", "离线");
             }
             list.add(map);
         }

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

@@ -49,10 +49,14 @@ public interface WorkOrderManageMapper {
 
     Map<String,Object> selectOrderUserStatus(@Param("userId") String userId);
 
+    Map<String,Object> selectMaintainUserStatus(@Param("userId") String userId);
+
     /**
      * 待处理权限
      */
     int selectPendingPower(Map<String,Object> map);
 
     List<WorkOrderManageDto> selectOrderStatus(WorkOrderManageDto workOrderManageDto);
+
+
 }

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

@@ -77,6 +77,9 @@ public interface WorkOrderManageService {
      */
     Map<String,Object> selectOrderUserStatus(@Param("userId") String userId);
 
+    Map<String,Object> selectMaintainUserStatus(@Param("userId") String userId);
+
+
     /**
      * 待处理权限
      */

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

@@ -133,6 +133,11 @@ public class WorkOrderManageServiceImpl implements WorkOrderManageService {
         return workOrderManageMapper.selectOrderUserStatus(userId);
     }
 
+    @Override
+    public Map<String, Object> selectMaintainUserStatus(String userId) {
+        return workOrderManageMapper.selectMaintainUserStatus(userId);
+    }
+
     @Override
     public int selectPendingPower(Map<String, Object> map) {
         return workOrderManageMapper.selectPendingPower(map);

+ 25 - 10
operation_manager/src/main/resources/mapper/order/WorkOrderManageMapper.xml

@@ -666,21 +666,35 @@
   </select>
 
   <!--查询派单时的用户状态-->
-  <select id="selectOrderUserStatus" parameterType="java.lang.String" resultType="map">
-    select X, Y, CASE WHEN S IS NULL THEN '空闲' WHEN S='0' THEN '空闲' ELSE '执行中' END S FROM
-      (select order_user_id,longtitude X, latitude Y from sc_work_order_manage t1 left join sc_gps_data t2
-          on t1.order_user_id = t2.user_id
-      group by order_user_id,longtitude, latitude) a
-      left JOIN
-      (
+   <select id="selectOrderUserStatus" parameterType="java.lang.String" resultType="map">
+    select X, Y, CASE WHEN S IS NULL THEN '空闲' WHEN S='0' THEN '空闲' ELSE '执行中' END S ,
+    case when offlinetime is null then '离线' when offlinetime>10 then '离线' when offlinetime &lt;= 10 THEN '在线' END L FROM
+    (
+        select order_user_id,longtitude X, latitude Y, TIMESTAMPDIFF(second,upload_date, now()) offlinetime from sc_work_order_manage t1 left join sc_gps_data t2
+        on t1.order_user_id = t2.user_id
+        group by order_user_id,longtitude, latitude,upload_date
+    ) a
+     left join
+    (
       select count(*) S,order_user_id from sc_work_order_manage
       where order_status = 1
       group by order_user_id
-      ) b
-      on a.order_user_id=b.order_user_id
+    ) b
+    on a.order_user_id=b.order_user_id
       where a.order_user_id= #{userId,jdbcType=INTEGER}
   </select>
 
+  <!--查询维修列表的用户状态-->
+  <select id="selectMaintainUserStatus" parameterType="java.lang.String" resultType="map">
+    select X, Y,
+    case when offlinetime is null then '离线' when offlinetime>10 then '离线' when offlinetime &lt;= 10 THEN '在线' END L
+    from (
+        select longtitude X, latitude Y, TIMESTAMPDIFF(second,upload_date, now()) offlinetime from sc_gps_data
+        where  user_id= #{userId,jdbcType=INTEGER}
+    ) a
+  </select>
+
+
   <!--待处理权限-->
   <select id="selectPendingPower" resultType="java.lang.Integer" parameterType="map">
     select count(1) from sc_work_order_manage
@@ -745,7 +759,8 @@
   <select id="selectMaintainOrder" resultMap="BaseResultMap" >
     select t1.task_no,  t1.address,
     case when t1.order_status=0 then '未派单' when t1.order_status =1 or t1.order_status=4 then '处理中' end order_status_name,
-    case when t1.event_type=1 then '运维上报' when t1.event_type=2 then '用户上报' when t1.event_type=3 then '设备告警' end  event_type_name
+    case when t1.event_type=1 then '运维上报' when t1.event_type=2 then '用户上报' when t1.event_type=3 then '设备告警' end  event_type_name,
+    geo
     from sc_work_order_manage t1
     <where>
       t1.order_status !=2 and t1.order_status !=3

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

@@ -213,7 +213,7 @@ public class AppPageReportController {
      * @param companyOrgId 公司ID
      * @return
      */
-    @RequestMapping(value = "getRevenueDataForSameMonth ",method = RequestMethod.GET)
+    @RequestMapping(value = "getRevenueDataForSameMonth",method = RequestMethod.GET)
     @ApiOperation(value = "App——营业数据-应收实收售水回收率数据(本月)")
     public AjaxMessage<Map<String,Object>> getRevenueDataForSameMonth(
             @ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){