瀏覽代碼

首页地图数据统计

devops 3 月之前
父節點
當前提交
201e78bbd8

+ 147 - 0
src/main/java/com/trs/ggzyexchange/datacentercontroller/DataController.java

@@ -789,6 +789,153 @@ public class DataController {
                 if(!ObjectUtils.isEmpty(count)){
                     cityTradeData.setTotalNumberTransactions(count);
                 }*/
+
+
+
+
+
+
+                // ================== 新增:当年各分类交易额统计 ==================
+                // 获取当前年份的开始和结束时间(例如 2026-01-01 00:00:00 到 2026-12-31 23:59:59)
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+                Calendar cal = Calendar.getInstance();
+                cal.set(Calendar.MONTH, Calendar.JANUARY);
+                cal.set(Calendar.DAY_OF_MONTH, 1);
+                cal.set(Calendar.HOUR_OF_DAY, 0);
+                cal.set(Calendar.MINUTE, 0);
+                cal.set(Calendar.SECOND, 0);
+                cal.set(Calendar.MILLISECOND, 0);
+                String yearStart = sdf.format(cal.getTime());
+                cal.set(Calendar.MONTH, Calendar.DECEMBER);
+                cal.set(Calendar.DAY_OF_MONTH, 31);
+                cal.set(Calendar.HOUR_OF_DAY, 23);
+                cal.set(Calendar.MINUTE, 59);
+                cal.set(Calendar.SECOND, 59);
+                String yearEnd = sdf.format(cal.getTime());
+
+                // 1. 政府采购交易额(当年)
+                QueryWrapper<ZcBidpublicity> zcYearQuery = new QueryWrapper<>();
+                zcYearQuery.select("sum(case when PRICE_UNIT = 0 then WIN_BID_PRICE when PRICE_UNIT = 1 then WIN_BID_PRICE*10000 else WIN_BID_PRICE end) as sumAll");
+//                zcYearQuery.eq("PLATFORM_CODE", platformCode);
+                zcYearQuery.likeRight("region_code",regionCode);
+                zcYearQuery.ge("WIN_BID_BULLETIN_START_TIME", yearStart);
+                zcYearQuery.le("WIN_BID_BULLETIN_START_TIME", yearEnd);
+                ZcBidpublicity zcYearSum = zcBidpublicityService.getOne(zcYearQuery);
+                String zcYearAmount = "0";
+                if (!ObjectUtils.isEmpty(zcYearSum) && !ObjectUtils.isEmpty(zcYearSum.getSumAll())) {
+                    zcYearAmount = zcYearSum.getSumAll();
+                }
+                cityTradeData.setZcTransactionVolume(zcYearAmount);
+
+                // 2. 自然资源交易额(当年)
+                BigDecimal zrzyYearAmount = BigDecimal.ZERO;
+                // ZRZY_TD_BIDWINNOTICE
+                QueryWrapper<ZrzyTdBidwinnotice> tdYearQuery = new QueryWrapper<>();
+                tdYearQuery.select("sum(case when PRICE_UNIT = 0 then DEAL_PRICE when PRICE_UNIT = 1 then DEAL_PRICE*10000 else DEAL_PRICE end) as sumAll");
+//                tdYearQuery.eq("PLATFORM_CODE", platformCode);
+                tdYearQuery.likeRight("region_code",regionCode);
+                tdYearQuery.ge("PUBLISHING_TIME", yearStart);
+                tdYearQuery.le("PUBLISHING_TIME", yearEnd);
+                ZrzyTdBidwinnotice tdYearSum = zrzyTdBidwinnoticeService.getOne(tdYearQuery);
+                if (!ObjectUtils.isEmpty(tdYearSum) && !ObjectUtils.isEmpty(tdYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(tdYearSum.getSumAll()));
+                }
+                // ZRZY_TKQ_BIDWINNOTICE
+                QueryWrapper<ZrzyTkqBidwinnotice> tkqYearQuery = new QueryWrapper<>();
+                tkqYearQuery.select("sum(cast(QT_PUBLIC_PRICE as decimal(9,2)) * 10000) as sumAll");
+//                tkqYearQuery.eq("PLATFORM_CODE", platformCode);
+
+                tkqYearQuery.likeRight("region_code", regionCode);
+                tkqYearQuery.ge("PUBLISHING_TIME", yearStart);
+                tkqYearQuery.le("PUBLISHING_TIME", yearEnd);
+                ZrzyTkqBidwinnotice tkqYearSum = zrzyTkqBidwinnoticeService.getOne(tkqYearQuery);
+                if (!ObjectUtils.isEmpty(tkqYearSum) && !ObjectUtils.isEmpty(tkqYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(tkqYearSum.getSumAll()));
+                }
+                // ZRZY_CKQ_BIDWINNOTICE
+                QueryWrapper<ZrzyCkqBidwinnotice> ckqYearQuery = new QueryWrapper<>();
+                ckqYearQuery.select("sum(cast(QT_PUBLIC_PRICE as decimal(9,2)) * 10000) as sumAll");
+//                ckqYearQuery.eq("PLATFORM_CODE", platformCode);
+
+                ckqYearQuery.likeRight("region_code", regionCode);
+                ckqYearQuery.ge("PUBLISHING_TIME", yearStart);
+                ckqYearQuery.le("PUBLISHING_TIME", yearEnd);
+                ZrzyCkqBidwinnotice ckqYearSum = zrzyCkqBidwinnoticeService.getOne(ckqYearQuery);
+                if (!ObjectUtils.isEmpty(ckqYearSum) && !ObjectUtils.isEmpty(ckqYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(ckqYearSum.getSumAll()));
+                }
+                // ZRZY_DK_BINWIN_NOTICE
+                QueryWrapper<ZrzyDkBinwinNotice> dkYearQuery = new QueryWrapper<>();
+                dkYearQuery.select("sum(cast(ZB_PRICE as decimal(9,2)) * 10000) as sumAll");
+//                dkYearQuery.eq("PLATFORM_CODE", platformCode);
+
+                dkYearQuery.likeRight("zone", regionCode);
+                dkYearQuery.ge("SUBMITS_TIME", yearStart);
+                dkYearQuery.le("SUBMITS_TIME", yearEnd);
+                ZrzyDkBinwinNotice dkYearSum = zrzyDkBinwinNoticeService.getOne(dkYearQuery);
+                if (!ObjectUtils.isEmpty(dkYearSum) && !ObjectUtils.isEmpty(dkYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(dkYearSum.getSumAll()));
+                }
+
+
+                // ZRZY_BG_BIDWIN_NOTICE
+                /*QueryWrapper<ZrzyBgBidwinNotice> bgYearQuery = new QueryWrapper<>();
+                bgYearQuery.select("sum(cast(WIN_BID_PRICE as decimal(9,2)) * 10000) as sumAll");
+//                bgYearQuery.likeRight("zone", regionCode);//mi
+                bgYearQuery.eq("PLATFORM_CODE", platformCode);
+
+                bgYearQuery.ge("ISSUE_TIME", yearStart);
+                bgYearQuery.le("ISSUE_TIME", yearEnd);
+                ZrzyBgBidwinNotice bgYearSum = zrzyBgBidwinNoticeService.getOne(bgYearQuery);
+                if (!ObjectUtils.isEmpty(bgYearSum) && !ObjectUtils.isEmpty(bgYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(bgYearSum.getSumAll()));
+                }*/
+
+                ZrzyBgBidwinNotice bgYearSum = zrzyBgBidwinNoticeService.getSumMoneyByRegionCode2(regionCode,yearStart,yearEnd);
+                if (!ObjectUtils.isEmpty(bgYearSum) && !ObjectUtils.isEmpty(bgYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(bgYearSum.getSumAll()));
+                }
+
+
+                // ZRZY_JYZB_BIDWIN_NOTICE
+                QueryWrapper<ZrzyJyzbBidwinNotice> jyzbYearQuery = new QueryWrapper<>();
+                jyzbYearQuery.select("sum(WIN_BID_PRICE) as sumAll");
+//                jyzbYearQuery.likeRight("zone", regionCode);
+//                jyzbYearQuery.eq("PLATFORM_CODE", platformCode);
+                if("121500004600236091".equals(platformCode)){
+                    jyzbYearQuery.eq("SOURCE_DATA_CODE", "2070");
+                }else{
+                    jyzbYearQuery.eq("SOURCE_DATA_CODE", "20700000");//只有自治区有
+                }
+                jyzbYearQuery.ge("ISSUE_TIME", yearStart);
+                jyzbYearQuery.le("ISSUE_TIME", yearEnd);
+                ZrzyJyzbBidwinNotice jyzbYearSum = zrzyJyzbBidwinNoticeService.getOne(jyzbYearQuery);
+                if (!ObjectUtils.isEmpty(jyzbYearSum) && !ObjectUtils.isEmpty(jyzbYearSum.getSumAll())) {
+                    zrzyYearAmount = zrzyYearAmount.add(new BigDecimal(jyzbYearSum.getSumAll()));
+                }
+                cityTradeData.setZrzyTransactionVolume(zrzyYearAmount.toString());
+
+                // 3. 工程建设交易额(当年)
+                QueryWrapper<GcBidpublicity> gcYearQuery = new QueryWrapper<>();
+                gcYearQuery.select("sum(case when PRICE_UNIT = 0 then BID_AMOUNT when PRICE_UNIT = 1 then BID_AMOUNT*10000 else BID_AMOUNT end) as sumAll");
+                if("152901".equals(platformCode)){
+                    gcYearQuery.in("PLATFORM_CODE", "152901", "12152900085184725H");
+                }else{
+                    gcYearQuery.eq("PLATFORM_CODE", platformCode);
+                }
+                gcYearQuery.ge("NOTICE_SEND_TIME", yearStart);
+                gcYearQuery.le("NOTICE_SEND_TIME", yearEnd);
+                GcBidpublicity gcYearSum = gcBidpublicityService.getOne(gcYearQuery);
+                String gcYearAmount = "0";
+                if (!ObjectUtils.isEmpty(gcYearSum) && !ObjectUtils.isEmpty(gcYearSum.getSumAll())) {
+                    gcYearAmount = gcYearSum.getSumAll();
+                }
+                cityTradeData.setGcTransactionVolume(gcYearAmount);
+
+                // ================== 新增结束 ==================
+
+
+
                 cityTradeDataList.add(cityTradeData);
             }
         }

+ 7 - 0
src/main/java/com/trs/ggzyexchange/entity/ZcBidpublicity.java

@@ -214,4 +214,11 @@ public class ZcBidpublicity extends BaseEntity {
 
     @TableField(exist = false)
     private String sumAll;
+
+    @TableField("REGION_CODE")
+    private String regionCode;
+
+    @TableField("TRA_PLACE_CODE")
+    private String traPlaceCode;
+
 }

+ 6 - 0
src/main/java/com/trs/ggzyexchange/entity/pagedata/CityTradeData.java

@@ -13,4 +13,10 @@ public class CityTradeData {
     private String totalTransactionVolume;//地图左上角交易额
     private Integer totalNumberTransactions;//地图左上角成交宗数总量
 
+    private String zcTransactionVolume;//政府采购地图左上角交易额
+    private String zrzyTransactionVolume;//自然资源地图左上角交易额
+    private String gcTransactionVolume;//工程地图左上角交易额
+
+
+
 }

+ 4 - 0
src/main/java/com/trs/ggzyexchange/mapper/ZrzyBgBidwinNoticeMapper.java

@@ -29,5 +29,9 @@ public interface ZrzyBgBidwinNoticeMapper extends BaseMapper<ZrzyBgBidwinNotice>
             @Param("regionCode")  String regionCode
     );
 
+    ZrzyBgBidwinNotice getSumMoneyByRegionCode2(
+            @Param("regionCode")  String regionCode,@Param("yearStart") String yearStart, @Param("yearEnd") String yearEnd
+    );
+
     ZrzyBgBidwinNotice getSumMoney();
 }

+ 1 - 0
src/main/java/com/trs/ggzyexchange/service/ZrzyBgBidwinNoticeService.java

@@ -18,6 +18,7 @@ public interface ZrzyBgBidwinNoticeService extends IService<ZrzyBgBidwinNotice>
     int countNoticeByRegionCodeAndTime(String region_code, Long resultStartTime, Long resultEndTime);
 
     ZrzyBgBidwinNotice getSumMoneyByRegionCode(String regionCode);
+    ZrzyBgBidwinNotice getSumMoneyByRegionCode2(String code, String yearStart, String yearEnd);
 
     ZrzyBgBidwinNotice getSumMoney();
 }

+ 5 - 0
src/main/java/com/trs/ggzyexchange/service/impl/ZrzyBgBidwinNoticeServiceImpl.java

@@ -37,6 +37,11 @@ public class ZrzyBgBidwinNoticeServiceImpl extends ServiceImpl<ZrzyBgBidwinNotic
         return zrzyBgBidwinNoticeMapper.getSumMoneyByRegionCode(regionCode);
     }
 
+    @Override
+    public ZrzyBgBidwinNotice getSumMoneyByRegionCode2(String regionCode, String yearStart, String yearEnd) {
+        return zrzyBgBidwinNoticeMapper.getSumMoneyByRegionCode2(regionCode,yearStart,yearEnd);
+    }
+
     @Override
     public ZrzyBgBidwinNotice getSumMoney() {
         return zrzyBgBidwinNoticeMapper.getSumMoney();

+ 1 - 0
src/main/resources/application.yml

@@ -35,6 +35,7 @@ spring:
     host: 127.0.0.1
     port: 6379
     password: GGZYadmin123!@#
+#    password:
   data:
     elasticsearch:
       client:

+ 10 - 0
src/main/resources/mapper/ZrzyBgBidwinNoticeMapper.xml

@@ -42,6 +42,16 @@
         where
             zbn.zone like CONCAT(#{regionCode}, '%')
 
+    </select>
+    <select id="getSumMoneyByRegionCode2" resultType="com.trs.ggzyexchange.entity.ZrzyBgBidwinNotice">
+        select
+            sum(cast(zbbn.WIN_BID_PRICE as decimal(9,2)) * 10000) as sumAll
+        from ZRZY_BG_BIDWIN_NOTICE zbbn
+                 left join zrzy_bg_notice zbn on zbbn.PROJECT_CODE = zbn.PROJECT_CODE
+        where
+            zbbn.ISSUE_TIME &gt;= #{yearStart} and zbbn.ISSUE_TIME &lt;= #{yearEnd}
+            and zbn.zone like CONCAT(#{regionCode}, '%')
+
     </select>
     <select id="getSumMoney" resultType="com.trs.ggzyexchange.entity.ZrzyBgBidwinNotice">
         select