Преглед на файлове

修改 删除多余的接口

huZhiHao преди 6 години
родител
ревизия
2cbeb4b8d8

+ 17 - 0
src/main/java/platform/modules/api/dto/SkyImageCount.java

@@ -0,0 +1,17 @@
+package platform.modules.api.dto;
+
+import lombok.Data;
+
+/**
+ * @author kevin
+ * @since 2019/11/13 4:28 PM
+ */
+@Data
+public class SkyImageCount {
+
+    private String no;
+
+    private Double buildingArea;
+
+    private Double rentArea;
+}

+ 144 - 0
src/main/java/platform/modules/api/service/SkyImageCountApiService.java

@@ -0,0 +1,144 @@
+package platform.modules.api.service;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import platform.modules.api.dto.SkyImageCount;
+import platform.modules.carrier.dto.CarrierLibraryResult;
+import platform.modules.carrier.dto.SearchCondition;
+import platform.modules.carrier.entity.Building;
+import platform.modules.carrier.entity.ContractFloor;
+import platform.modules.carrier.entity.Park;
+import platform.modules.carrier.service.BuildingService;
+import platform.modules.carrier.service.CarrierStatisticService;
+import platform.modules.carrier.service.ContractFloorService;
+import platform.modules.carrier.service.ParkService;
+import platform.modules.government.entity.Street;
+import platform.modules.government.service.StreetService;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.*;
+
+/**
+ * @author kevin
+ * @since 2019/11/13 4:27 PM
+ */
+@Service
+public class SkyImageCountApiService {
+
+    @Autowired
+    private BuildingService buildingService;
+
+    @Autowired
+    private ParkService parkService;
+
+    @Autowired
+    private StreetService streetService;
+
+    @Autowired
+    private CarrierStatisticService carrierStatisticService;
+
+    @Autowired
+    private ContractFloorService contractFloorService;
+
+    private ExecutorService threadPool = new ThreadPoolExecutor(
+            10,
+            20,
+            1L,
+            TimeUnit.SECONDS,
+            new LinkedBlockingDeque<>(100),
+            Executors.defaultThreadFactory(),
+            new ThreadPoolExecutor.CallerRunsPolicy());
+
+    /**
+     * 获取厂房统计
+     */
+    public List<SkyImageCount> factoryBuilding() {
+        List<Building> list = buildingService.findList();
+        CopyOnWriteArrayList<SkyImageCount> counts = new CopyOnWriteArrayList<>();
+        for (Building building : list) {
+            SkyImageCount count = new SkyImageCount();
+            count.setNo(building.getNo());
+            if (building.getArea() != null){
+                count.setBuildingArea(building.getArea());
+            }
+            else {
+                //楼栋没有建筑面积获取楼层建筑面积
+                count.setBuildingArea(buildingService.findBuildingTotalArea(building.getId()));
+            }
+            count.setRentArea(buildingService.getBuildRentAreaStatistic(building.getId()));
+            counts.add(count);
+        }
+        return counts;
+    }
+
+    /**
+     * 园区统计
+     *
+     * @return
+     */
+    public List<SkyImageCount> getParkStatistic() {
+        List<Park> parks = parkService.findParkOnUseList();
+        List<SkyImageCount> counts = new ArrayList<>();
+        for (Park park : parks) {
+            SkyImageCount count = new SkyImageCount();
+            count.setNo(park.getNo());
+            double sumBuildingArea = carrierStatisticService.getSumParkBuildingArea(park.getId());
+            count.setBuildingArea(sumBuildingArea);
+            Double sumRentArea = parkService.getParkRentAreaStatistic(park.getId());
+            count.setRentArea(sumRentArea);
+            counts.add(count);
+        }
+        return counts;
+    }
+
+    /**
+     * 街道统计
+     *
+     * @return
+     */
+    public List getStreetStatistic() {
+        List<Street> streets = streetService.findList();
+        List<SkyImageCount> counts = new ArrayList<>();
+        for (Street street : streets) {
+            SkyImageCount count = new SkyImageCount();
+            count.setNo(street.getNo());
+            Double sumRentArea = streetService.getStreetRentAreaStatistic(street.getId());
+            count.setRentArea(sumRentArea);
+            //楼栋建筑面积为空,按楼层建筑面积和算,楼层建筑面积为空按,楼层已租、代租只和算
+            Double sumBuildArea = carrierStatisticService.getSumStreetBuildingArea(street.getId());
+            count.setBuildingArea(sumBuildArea);
+            counts.add(count);
+        }
+        return counts;
+    }
+
+    /**
+     * 租赁接口
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public Object leaseBuilding(String startTime, String endTime) {
+        HashMap<String, List<SkyImageCount>> hashMap = new HashMap<>();
+        List<Building> list = buildingService.findList();
+        List<SkyImageCount> canRents = new CopyOnWriteArrayList<>();
+        List<SkyImageCount> endRents = buildingService.findEndContractByTime(startTime, endTime);
+        for (Building building : list) {
+            SkyImageCount count = new SkyImageCount();
+            count.setNo(building.getNo());
+            CarrierLibraryResult areaStatistic = buildingService.getBuildAreaStatistic(building.getId());
+            //相应时间内合同到期面积
+            List<ContractFloor> contractList =
+                    contractFloorService.findEndContractByTime(startTime, endTime, building.getId());
+            if ((areaStatistic != null && areaStatistic.getSumRestArea() > 0) ||
+                    (contractList != null && contractList.size() > 0)){
+                canRents.add(count);
+            }
+        }
+        hashMap.put("canRents", canRents);
+        hashMap.put("endRents", endRents);
+        return hashMap;
+    }
+}

+ 32 - 4
src/main/java/platform/modules/api/web/SkyImageApiController.java

@@ -1,13 +1,15 @@
 package platform.modules.api.web;
 
+import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import platform.modules.api.dto.SkyImageCount;
 import platform.modules.api.dto.Sync;
 import platform.modules.api.service.SkyImageApiService;
+import platform.modules.api.service.SkyImageCountApiService;
+import platform.modules.carrier.dto.CarrierLibraryResult;
+import platform.modules.carrier.entity.Building;
 import platform.modules.government.entity.User;
 import platform.modules.sys.web.ResponseMessage;
 
@@ -24,6 +26,9 @@ public class SkyImageApiController {
     @Autowired
     private SkyImageApiService skyImageApiService;
 
+    @Autowired
+    private SkyImageCountApiService skyImageCountApiService;
+
     @PostMapping("syncUserInfo")
     public ResponseMessage syncSkyImageUserInfo(@RequestBody List<Sync> syncs){
         if (!ObjectUtils.isEmpty(syncs)){
@@ -34,4 +39,27 @@ public class SkyImageApiController {
         }
         return ResponseMessage.success("success");
     }
+
+    @GetMapping("/factoryBuilding")
+    public ResponseMessage factoryBuilding(){
+        List<SkyImageCount> counts = skyImageCountApiService.factoryBuilding();
+        return ResponseMessage.success("success", counts);
+    }
+
+    @GetMapping("parkCount")
+    public ResponseMessage parkCount(){
+        return ResponseMessage.success("success", skyImageCountApiService.getParkStatistic());
+    }
+
+    @GetMapping("streetCount")
+    public ResponseMessage streetCount(){
+        return ResponseMessage.success("success", skyImageCountApiService.getStreetStatistic());
+    }
+
+    @GetMapping("leaseBuilding")
+    public ResponseMessage leaseBuilding(String startTime, String endTime){
+
+        return ResponseMessage.success("success", skyImageCountApiService.leaseBuilding(startTime, endTime));
+    }
+
 }

+ 5 - 0
src/main/java/platform/modules/carrier/dao/BuildingDao.java

@@ -3,6 +3,7 @@ package platform.modules.carrier.dao;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import platform.common.base.mapper.BaseMapper;
+import platform.modules.api.dto.SkyImageCount;
 import platform.modules.carrier.dto.*;
 import platform.modules.carrier.entity.Building;
 import platform.modules.carrier.entity.CarrierDistribution;
@@ -48,4 +49,8 @@ public interface BuildingDao extends BaseMapper<Building> {
     Double findCarrierEntryArea(@Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<CarrierDistribution> getStreetBuildingDistribution(@Param("condition") SearchCondition condition);
+
+    List<SkyImageCount> factoryBuildingCount();
+
+    List<SkyImageCount> findEndContractByTime(@Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 2 - 0
src/main/java/platform/modules/carrier/dao/ContractFloorDao.java

@@ -27,4 +27,6 @@ public interface ContractFloorDao extends BaseMapper<ContractFloor> {
     Integer findCarrierVolume(@Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<CarrierVolume> findEachParkVolume(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<ContractFloor> findEndContractByTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("id") Integer id);
 }

+ 28 - 0
src/main/java/platform/modules/carrier/service/BuildingService.java

@@ -16,6 +16,7 @@ import platform.common.base.model.Dict;
 import platform.common.base.model.DictionaryItem;
 import platform.common.base.service.BaseService;
 import platform.common.base.service.DictionaryItemService;
+import platform.modules.api.dto.SkyImageCount;
 import platform.modules.build.entity.BuildFloor;
 import platform.modules.build.entity.BuildInfo;
 import platform.modules.build.service.ContractService;
@@ -886,4 +887,31 @@ public class BuildingService extends BaseService<Building> {
     public List<CarrierDistribution> getStreetBuildingDistribution(SearchCondition condition) {
         return buildingDao.getStreetBuildingDistribution(condition);
     }
+
+
+    /**
+     * 获取厂房面积统计
+     *
+     * @return
+     */
+    public List<SkyImageCount> factoryBuildingCount() {
+        List<SkyImageCount> list =  buildingDao.factoryBuildingCount();
+        for (SkyImageCount skyImageCount : list) {
+            if (skyImageCount.getBuildingArea() <= 0){
+                //按楼层建筑面积和算
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 相应时间内合同到期的企业
+     *
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public List<SkyImageCount> findEndContractByTime(String startTime, String endTime) {
+        return buildingDao.findEndContractByTime(startTime, endTime);
+    }
 }

+ 1 - 1
src/main/java/platform/modules/carrier/service/CarrierStatisticService.java

@@ -114,7 +114,7 @@ public class CarrierStatisticService {
      * @param id
      * @return
      */
-    private Double getSumStreetBuildingArea(Integer id) {
+    public Double getSumStreetBuildingArea(Integer id) {
         Double sumBuildArea = buildingService.findStreetTotalArea(id);
 //        List<Building> buildings = buildingService.findBySteetId(id);
 //        for (Building building : buildings) {

+ 11 - 0
src/main/java/platform/modules/carrier/service/ContractFloorService.java

@@ -110,4 +110,15 @@ public class ContractFloorService extends BaseService<ContractFloor> {
     public List<CarrierVolume> findEachParkVolume(String startTime, String endTime) {
         return contractFloorDao.findEachParkVolume(startTime, endTime);
     }
+
+    /**
+     * 查找相应时间内到期的合同
+     *
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public List<ContractFloor> findEndContractByTime(String startTime, String endTime, Integer id) {
+        return contractFloorDao.findEndContractByTime(startTime, endTime, id);
+    }
 }

+ 14 - 0
src/main/java/platform/modules/carrier/service/ParkService.java

@@ -563,6 +563,20 @@ public class ParkService extends BaseService<Park> {
         return parks;
     }
 
+    @Transactional(readOnly = true)
+    public List<Park> findParkOnUseList() {
+        Example example = new Example(Park.class);
+        Example.Criteria criteria = example.createCriteria();
+        criteria.andEqualTo("del_flag", 0);
+        criteria.andEqualTo("is_start", 1);
+        criteria.andEqualTo("is_draft", 1);
+        //倒序
+        //example.orderBy("create_time").desc();
+        example.setOrderByClause("id");
+        List<Park> parks = this.selectByExample(example);
+        return parks;
+    }
+
     public int updateNoBatch(List<Park> parks) {
         return parkDao.updateNoBatch(parks);
     }

+ 3 - 3
src/main/resources/application.yml

@@ -134,7 +134,7 @@ pagehelper:
 #开发环境配置
 server:
   #端口
-  port: 8084
+  port: 8080
   context-path: /myboot
 
 spring:
@@ -185,7 +185,7 @@ carrier_hash_key: industrial_carrier_token
 #test环境配置
 server:
   #端口
-  port: 8084
+  port: 8080
   context-path: /myboot
 spring:
   profiles: test
@@ -231,7 +231,7 @@ service_name: 127.0.0.1
 #阿里环境配置
 server:
   #端口
-  port: 8082
+  port: 8080
   context-path: /myboot
 spring:
   profiles: aliyun

+ 29 - 0
src/main/resources/mapper/carrier/BuildingDao.xml

@@ -603,4 +603,33 @@
         GROUP BY
             s.id
     </select>
+
+    <select id="factoryBuildingCount" resultType="platform.modules.api.dto.SkyImageCount">
+        SELECT
+        b.no,
+        IFNULL(SUM( f.remain_area ), 0) AS buildingArea,
+        IFNULL(SUM( cf.area ),0) AS rentArea
+        FROM
+        ic_building b
+        LEFT JOIN y_floor f ON f.building_id = b.id
+        LEFT JOIN ic_contract_floor cf ON cf.floor_id = f.id
+        WHERE
+        b.del_flag = FALSE AND b.is_use = 1 AND f.del_flag = FALSE AND f.is_use = 1 AND cf.status = 2
+        AND cf.contract_end > NOW( )
+    </select>
+
+    <select id="findEndContractByTime" resultType="platform.modules.api.dto.SkyImageCount">
+        SELECT
+        DISTINCT b.`no` as no
+        FROM
+        ic_building b
+        LEFT JOIN ic_contract_floor cf ON cf.building_id = b.id
+        WHERE b.del_flag = 0 AND b.is_use = 1 AND cf.del_flag = 0
+        <if test="startTime != null and startTime != ''">
+            AND cf.contract_end > #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND cf.contract_end <![CDATA[<]]> #{endTime}
+        </if>
+    </select>
 </mapper>

+ 11 - 0
src/main/resources/mapper/carrier/ContractFloorDao.xml

@@ -62,4 +62,15 @@
         GROUP BY
             s.id
     </select>
+
+    <select id="findEndContractByTime" resultType="platform.modules.carrier.entity.CarrierVolume">
+        SELECT cf.id FROM ic_contract_floor cf
+        WHERE cf.building_id = #{id} AND cf.del_flag = 0
+        <if test="startTime != null and startTime != ''">
+            AND cf.contract_end > #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            AND cf.contract_end <![CDATA[<]]> #{endTime}
+        </if>
+    </select>
 </mapper>