Explorar el Código

App总览-营业数据-环比

wangbo hace 4 años
padre
commit
2655b022c0

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

@@ -345,7 +345,6 @@ public class WorkOrderManageController {
         LoginUser loginUser = UserUtil.getCurrentUser();
         workOrderManageDto.setTaskNo(taskNo);
         workOrderManageDto.setOrderStatus(orderStatus);
-        workOrderManageDto.setOrderStatus(orderStatus);
         workOrderManageDto.setEventType(eventType);
         workOrderManageDto.setTenantId(loginUser.getTenantId());
         workOrderManageDto.setOrderTypeId(orderTypeId);
@@ -365,6 +364,21 @@ public class WorkOrderManageController {
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
 
+    @GetMapping("/maintain/order")
+    @ApiOperation(value = "维护列表/工单")
+    public AjaxMessage<List<WorkOrderManageDto>> selectMaintainOrder(){
+        //根据用户编号,获取用户的权限
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        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());
+        List<WorkOrderManageDto> list = workOrderManageService.selectMaintainOrder(workOrderManageDto);
+        return new AjaxMessage<>(ResultStatus.OK, list);
+    }
+
     @GetMapping("/pending")
     @ApiOperation(value = "查询待处理工单")
     public AjaxMessage<Pagination<WorkOrderManageDto>> selectPendingOrder(
@@ -599,12 +613,13 @@ public class WorkOrderManageController {
                 map.put("deptName", userEntity.getDeptOrgName());
                 if (orderStatusMap != null) {
                     map.put("status", orderStatusMap.get("S").toString());
-                    map.put("address", orderStatusMap.get("X")==null?"-":orderStatusMap.get("X").toString() + "," + orderStatusMap.get("Y")==null?"-":orderStatusMap.get("Y").toString());
+                    String X = orderStatusMap.get("X")==null?"-":orderStatusMap.get("X").toString();
+                    String Y = orderStatusMap.get("Y")==null?"-":orderStatusMap.get("Y").toString();
+                    map.put("address",String.format("%s,%s",X,Y));
                     if(!org.apache.commons.lang3.StringUtils.isEmpty(wkid)
                             && wkid.equals("2360")
                             && orderStatusMap.get("X")!=null
                             && orderStatusMap.get("Y")!=null){
-
                         MyPoint myPoint= ConvertXY.ConvertXYToXian80(orderStatusMap.get("X").toString(),
                                 orderStatusMap.get("Y").toString(),moveXY);
                         map.put("coords",myPoint.getX()+","+myPoint.getY());

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

@@ -43,6 +43,8 @@ public interface WorkOrderManageMapper {
 
     Page<WorkOrderManageDto> findPage(IPage<WorkOrderManageDto> page, @Param("order") WorkOrderManageDto workOrderManageDto);
 
+    List<WorkOrderManageDto> selectMaintainOrder(@Param("order") WorkOrderManageDto workOrderManageDto);
+
     List<WorkOrderManage> selectByPId(Map<String,Object> map);
 
     Map<String,Object> selectOrderUserStatus(@Param("userId") String userId);

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

@@ -85,4 +85,7 @@ public interface WorkOrderManageService {
      * 综合展示-查询工单执行情况
      */
     List<WorkOrderManageDto> selectOrderStatus(WorkOrderManageDto workOrderManageDto);
+
+
+    List<WorkOrderManageDto> selectMaintainOrder(WorkOrderManageDto workOrderManageDto);
 }

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

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

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

@@ -741,4 +741,44 @@
     )tab1
     group by order_status_name
   </select>
+  <!--维修列表-工单情况(未派单,处理中)-->
+  <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
+    from sc_work_order_manage t1
+    <where>
+      t1.order_status !=2 and t1.order_status !=3
+      <if test="order.tenantId != null and order.tenantId != ''">
+        and t1.tenant_id = #{order.tenantId}
+      </if>
+      <if test="order.userType!=null and order.userType!=-999 and order.userType!=-9999 and  order.programItems != null and order.programItems.size() > 0">
+        <if test="order.permissonType == 5 or order.permissonType == 2">
+          and ( t1.department_org_id in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          or
+          t1.COMPANY_ORG_ID in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          )
+        </if>
+        <if test="order.permissonType == 4 or order.permissonType == 3">
+          and t1.department_org_id in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+        </if>
+        <if test="order.permissonType == 1">
+          and t1.COMPANY_ORG_ID in
+          <foreach collection="order.programItems" item="item" open="(" close=")" separator=",">
+            #{item.orgId}
+          </foreach>
+          and (t1.department_org_id is null or t1.department_org_id =0)
+        </if>
+      </if>
+    </where>
+  </select>
 </mapper>

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

@@ -378,11 +378,8 @@ public class AppPageReportController {
     @ApiOperation(value = "App总览——资产情况本月")
     public AjaxMessage<Object> getSceneAmountForSameMonth(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Long companyOrgId){
         Map<String,Object> map = new HashMap<String,Object>();
-        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,null);
-        List<Map<String,Object>> newAount = appPageReportService.findSceneAmount(companyOrgId,1);
-        map.put("assets",amount);
-        map.put("newAssets",newAount);
-        return new AjaxMessage<>(ResultStatus.OK,map);
+        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,1);
+        return new AjaxMessage<>(ResultStatus.OK,amount);
     }
 
     @RequestMapping(value = "getSceneAmountForSameYear",method = RequestMethod.GET)
@@ -390,21 +387,14 @@ public class AppPageReportController {
     public AjaxMessage<Object> getSceneAmountForSameYear(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Long companyOrgId){
         Map<String,Object> map = new HashMap<String,Object>();
         LocalDate now = LocalDate.now();
-        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,null);
-        List<Map<String,Object>> newAount = appPageReportService.findSceneAmount(companyOrgId,now.getMonthValue());
-        map.put("assets",amount);
-        map.put("newAssets",newAount);
-        return new AjaxMessage<>(ResultStatus.OK,map);
+        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,now.getMonthValue());
+        return new AjaxMessage<>(ResultStatus.OK,amount);
     }
 
     @RequestMapping(value = "getSceneAmountForLast12Month",method = RequestMethod.GET)
     @ApiOperation(value = "App总览——资产情况近一年")
     public AjaxMessage<Object> getSceneAmountForLast12Month(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Long companyOrgId){
-        Map<String,Object> map = new HashMap<String,Object>();
-        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,null);
-        List<Map<String,Object>> newAount = appPageReportService.findSceneAmount(companyOrgId,12);
-        map.put("assets",amount);
-        map.put("newAssets",newAount);
-        return new AjaxMessage<>(ResultStatus.OK,map);
+        List<Map<String,Object>> amount = appPageReportService.findSceneAmount(companyOrgId,12);
+        return new AjaxMessage<>(ResultStatus.OK,amount);
     }
 }

+ 82 - 38
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -317,47 +317,91 @@
     </select>
     <!--根据用户权限统计一级场景个数-->
     <select id="findSceneAmount" resultType="map">
-        select count(a.ID) amount,b.SCENE_TYPE_NAME sceneTypeName
-        from sms_scene a INNER JOIN sms_scene_type b on a.SCENE_TYPE_ID=b.ID
-        <where>
-            a.PARENT_SCENE_ID=0
-            and a.STATUS=1
-            <if test="months != null">
-                and a.run_time>=date_sub(date_format(curdate(), '%y-%m-1' ), interval #{months}-1 month)
-            </if>
-            <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>
-                    )
+        select a.sceneTypeName,amount,newAmount from
+        (
+            select count(a.ID) amount,b.SCENE_TYPE_NAME sceneTypeName
+            from sms_scene a INNER JOIN sms_scene_type b on a.SCENE_TYPE_ID=b.ID
+            <where>
+                a.PARENT_SCENE_ID=0
+                and a.STATUS=1
+                <if test="scene.tenantId != null  and scene.tenantId != ''">
+                    and a.tenant_id = #{scene.tenantId}
                 </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 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 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)
+                and SCENE_TYPE_NAME in('水源','水厂','泵站')
+            </where>
+            group by b.SCENE_TYPE_NAME
+        ) a left join
+        (
+            select count(a.ID) newAmount,b.SCENE_TYPE_NAME sceneTypeName
+            from sms_scene a INNER JOIN sms_scene_type b on a.SCENE_TYPE_ID=b.ID
+            <where>
+                a.PARENT_SCENE_ID=0
+                and a.STATUS=1
+                <if test="months != null">
+                    and a.run_time>=date_sub(date_format(curdate(), '%y-%m-1' ), interval #{months}-1 month)
                 </if>
-            </if>
-            and SCENE_TYPE_NAME in('水源','水厂','泵站')
-        </where>
-        group by 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>
+                and SCENE_TYPE_NAME in('水源','水厂','泵站')
+            </where>
+            group by b.SCENE_TYPE_NAME
+        ) b
+        on a.sceneTypeName = b.sceneTypeName
     </select>