Browse Source

App总览-营业数据-环比

wangbo 4 years ago
parent
commit
5bbdd165de

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

@@ -1,10 +1,9 @@
 package com.huaxu.controller;
-import com.huaxu.dto.MonthRevenueDto;
+import com.huaxu.dao.SceneMapper;
 import com.huaxu.dto.generalView.DeviceWaterSupply;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.ResultStatus;
 import com.huaxu.service.AppPageReportService;
-import com.huaxu.service.RevenueService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -14,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.HashMap;
@@ -29,10 +29,11 @@ import java.util.Map;
 @RequestMapping("/appPageReport")
 @Api(tags = "App总览报表")
 public class AppPageReportController {
-    @Autowired
-    private RevenueService revenueService;
     @Autowired
     private AppPageReportService appPageReportService;
+    @Resource
+    private SceneMapper sceneMapper;
+
 
     /**
      * @Author wangbo
@@ -345,7 +346,6 @@ public class AppPageReportController {
                 receivableLastYearComparison =receivableLastYearComparison.add(sellerWaterList.get(i).getReceivableAmount());
             }
         }
-
         BigDecimal receivedComparison = receivedLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivedSameYearComparison.multiply(new BigDecimal(100)).divide(receivedLastYearComparison,2);
         BigDecimal receivableComparison = receivableLastYearComparison.compareTo(BigDecimal.ZERO)==0 ?BigDecimal.ZERO:receivableSameYearComparison.multiply(new BigDecimal(100)).divide(receivableLastYearComparison,2);
         Map<String,Object> map = new HashMap<String,Object>();
@@ -355,4 +355,16 @@ public class AppPageReportController {
     }
 
 
+
+    @RequestMapping(value = "getSceneAmount",method = RequestMethod.GET)
+    @ApiOperation(value = "App总览——资产情况")
+    public AjaxMessage<Object> getSceneAmount(@ApiParam(value = "公司id,总公司传空值") @RequestParam(required = false) Integer companyOrgId){
+
+        Map<String,Object> map = sceneMapper.findSceneAmount(companyOrgId);
+
+
+        return new AjaxMessage<>(ResultStatus.OK,map);
+    }
+
+
 }

+ 5 - 0
sms_water/src/main/java/com/huaxu/dao/SceneMapper.java

@@ -3,7 +3,10 @@ package com.huaxu.dao;
 import com.huaxu.entity.SceneEntity;
 import java.io.Serializable;
 import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaxu.entity.SceneTypeEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -41,5 +44,7 @@ public interface SceneMapper extends BaseMapper<SceneEntity> {
 
     SceneEntity findParentSceneById(@Param(value = "id")Long id);
 
+    Map<String,Object> findSceneAmount(@Param("scene") SceneEntity sceneEntity);
+
     /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 3 - 2
sms_water/src/main/java/com/huaxu/dao/SceneTypeMapper.java

@@ -3,6 +3,8 @@ package com.huaxu.dao;
 import com.huaxu.entity.SceneTypeEntity;
 import java.io.Serializable;
 import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -26,10 +28,9 @@ public interface SceneTypeMapper extends BaseMapper<SceneTypeEntity> {
 
      SceneTypeEntity findSceneTypeById(Serializable id);
 
-
      List<SceneTypeEntity> findList(SceneTypeEntity sceneTypeEntity);
 
-    List<SceneTypeEntity> findByParentSceneTypeIds(@Param(value = "Ids") Long[] Ids);
+     List<SceneTypeEntity> findByParentSceneTypeIds(@Param(value = "Ids") Long[] Ids);
 
      /**删除相关方法  使用mybatis-plus集成的 **/
 }

+ 4 - 0
sms_water/src/main/java/com/huaxu/service/AppPageReportService.java

@@ -1,6 +1,8 @@
 package com.huaxu.service;
 
 import com.huaxu.dto.generalView.DeviceWaterSupply;
+import com.huaxu.entity.SceneEntity;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -23,5 +25,7 @@ public interface AppPageReportService {
 
     BigDecimal CalculationComparison(List<DeviceWaterSupply> sameWaterList, List<DeviceWaterSupply> lastWaterList);
 
+    Map<String,Object> findSceneAmount(Long companyOrgId);
+
     void CalculationNrw(List<DeviceWaterSupply> supplyWaterList, List<DeviceWaterSupply> makingWaterList,List<DeviceWaterSupply> sellerWaterList,Map<String,Object> map);
 }

+ 20 - 0
sms_water/src/main/java/com/huaxu/service/impl/AppPageReportServiceImpl.java

@@ -3,8 +3,10 @@ package com.huaxu.service.impl;
 
 import com.huaxu.dao.HomePageReportMapper;
 
+import com.huaxu.dao.SceneMapper;
 import com.huaxu.dto.MonthRevenueDto;
 import com.huaxu.dto.generalView.DeviceWaterSupply;
+import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.service.AppPageReportService;
 import com.huaxu.service.MonitorDataReportService;
@@ -37,6 +39,9 @@ public class AppPageReportServiceImpl implements AppPageReportService {
     @Resource
     private HomePageReportMapper homePageReportMapper;
 
+    @Resource
+    private SceneMapper sceneMapper;
+
     /**
      * App 总览 前N个月的售水量
      * @param companyOrgId
@@ -182,6 +187,21 @@ public class AppPageReportServiceImpl implements AppPageReportService {
         return comparison;
     }
 
+    @Override
+    public Map<String, Object> findSceneAmount(Long companyOrgId) {
+        SceneEntity sceneEntity = new SceneEntity();
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        if (currentUser != null) {
+            sceneEntity.setTenantId(currentUser.getTenantId());
+            sceneEntity.setProgramItems(currentUser.getProgramItemList());
+            sceneEntity.setUserType(currentUser.getType());
+            //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+            sceneEntity.setPermissonType(currentUser.getPermissonType());
+        }
+        sceneEntity.setCompanyOrgId(companyOrgId);
+        return sceneMapper.findSceneAmount(sceneEntity);
+    }
+
     /**
      * App 总览 前N个月的应收实收金额
      * @param companyOrgId

+ 43 - 0
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -315,4 +315,47 @@
         left join sms_scene t2 on substring_index(substring_index(t1.parent_scene_ids, ',', 2), ',', -1)=t2.id
         where t1.id=#{id}
     </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="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;
+    </select>
+
+
 </mapper>