xiaoqiao 1 рік тому
батько
коміт
609ecb1cc8

+ 15 - 4
src/main/java/com/bowintek/practice/controller/WellInfoController.java

@@ -48,19 +48,30 @@ public class WellInfoController {
 
     @GetMapping("/getWellInfo")
     public BaseResponse getWellInfo(String well_id) {
+
         HashMap<String, Object> wellInfo = wellInfoService.getWellInfo(well_id);
         List<HashMap<String, Object>> boreholeInterList = wellInfoService.selectBoreholeInterList(well_id);
         List<HashMap<String, Object>> testHistoryList = wellInfoService.selectTestHistoryList(well_id);
+        List<HashMap<String, Object>> testHistorySummary = wellInfoService.selectTestHistorySummary(well_id);
+        HashMap<String, Object> lastTestHistory = wellInfoService.getLastTestHistory(well_id);
         List<HashMap<String, Object>> analyticalAssaysList = wellInfoService.selectAnalyticalAssaysList(well_id);
+        List<HashMap<String, Object>> analyticalAssaysSummary = wellInfoService.selectAnalyticalAssaysSummary(well_id);
         List<HashMap<String, Object>> historyAssignmentList = wellInfoService.selectHistoryAssignmentList(well_id);
+        List<HashMap<String, Object>> historyAssignmentSummary = wellInfoService.selectHistoryAssignmentSummary(well_id);
+        HashMap<String, Object> lastHistoryAssignment = wellInfoService.getLastHistoryAssignment(well_id);
         List<HashMap<String, Object>> dataIndexList = wellInfoService.selectDataIndexList(well_id);
 
         HashMap<String, Object> result = new HashMap<>();
         result.put("dataModel", wellInfo);
-        result.put("boreholeInterList", boreholeInterList);
-        result.put("testHistoryList", testHistoryList);
-        result.put("analyticalAssaysList", analyticalAssaysList);
-        result.put("historyAssignmentList", historyAssignmentList);
+        result.put("boreholeInterList", boreholeInterList);//业务解释列表
+        result.put("testHistoryList", testHistoryList);//测试历史列表
+        result.put("testHistorySummary", testHistorySummary);//测试历史汇总
+        result.put("lastTestHistory", lastTestHistory);//最后一次测试历史
+        result.put("analyticalAssaysList", analyticalAssaysList);//分析化验列表
+        result.put("analyticalAssaysSummary", analyticalAssaysSummary);//分析化验汇总
+        result.put("historyAssignmentList", historyAssignmentList);//作业简史列表
+        result.put("historyAssignmentSummary", historyAssignmentSummary);//作业简史汇总
+        result.put("lastHistoryAssignment", lastHistoryAssignment);//最后一次作业简史记录
         result.put("dataIndexList", dataIndexList);
         return RespGenerstor.success(result);
     }

+ 37 - 0
src/main/java/com/bowintek/practice/mapper/cquery/WellInfoCQuery.java

@@ -36,6 +36,21 @@ public interface WellInfoCQuery {
      */
     List<HashMap<String,Object>> selectTestHistoryList(String well_id);
 
+    /**
+     * 查询测试历史汇总
+     * @param well_id
+     * @return
+     */
+    List<HashMap<String,Object>> selectTestHistorySummary(String well_id);
+
+    /**
+     * 获取最近一次测试历史
+     * @param well_id
+     * @return
+     */
+    HashMap<String,Object> getLastTestHistory(String well_id);
+
+
     /**
      * 查询分析化验列表
      * @param well_id
@@ -43,6 +58,14 @@ public interface WellInfoCQuery {
      */
     List<HashMap<String,Object>> selectAnalyticalAssaysList(String well_id);
 
+    /**
+     * 查询分析化验汇总
+     * @param well_id
+     * @return
+     */
+    List<HashMap<String,Object>> selectAnalyticalAssaysSummary(String well_id);
+
+
     /**
      * 作业简史
      * @param well_id
@@ -50,6 +73,20 @@ public interface WellInfoCQuery {
      */
     List<HashMap<String,Object>> selectHistoryAssignmentList(String well_id);
 
+    /**
+     * 查询作业简史汇总
+     * @param well_id
+     * @return
+     */
+    List<HashMap<String,Object>> selectHistoryAssignmentSummary(String well_id);
+
+    /**
+     * 获取最近一次作业简史
+     * @param well_id
+     * @return
+     */
+    HashMap<String,Object> getLastHistoryAssignment(String well_id);
+
     /**
      * 井资料索引(文档)
      * @param well_id

+ 26 - 1
src/main/java/com/bowintek/practice/services/impl/WellInfoServiceImpl.java

@@ -76,18 +76,43 @@ public class WellInfoServiceImpl implements WellInfoService {
     public List<HashMap<String, Object>> selectTestHistoryList(String well_id) {
         return wellInfoCQuery.selectTestHistoryList(well_id);
     }
-
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public List<HashMap<String, Object>> selectTestHistorySummary(String well_id) {
+        return wellInfoCQuery.selectTestHistorySummary(well_id);
+    }
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public HashMap<String, Object> getLastTestHistory(String well_id) {
+        return wellInfoCQuery.getLastTestHistory(well_id);
+    }
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
     public List<HashMap<String, Object>> selectAnalyticalAssaysList(String well_id) {
         return wellInfoCQuery.selectAnalyticalAssaysList(well_id);
     }
 
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public List<HashMap<String, Object>> selectAnalyticalAssaysSummary(String well_id) {
+        return wellInfoCQuery.selectAnalyticalAssaysSummary(well_id);
+    }
+
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
     public List<HashMap<String, Object>> selectHistoryAssignmentList(String well_id) {
         return wellInfoCQuery.selectHistoryAssignmentList(well_id);
     }
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public List<HashMap<String, Object>> selectHistoryAssignmentSummary(String well_id) {
+        return wellInfoCQuery.selectHistoryAssignmentSummary(well_id);
+    }
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public HashMap<String, Object> getLastHistoryAssignment(String well_id) {
+        return wellInfoCQuery.getLastHistoryAssignment(well_id);
+    }
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)

+ 5 - 0
src/main/java/com/bowintek/practice/services/service/WellInfoService.java

@@ -14,8 +14,13 @@ public interface WellInfoService {
     PageInfo< HashMap<String, Object>> getList(Integer page, Integer rows, WellInfoParams params);
     List<HashMap<String,Object>> selectBoreholeInterList(String well_id);
     List<HashMap<String,Object>> selectTestHistoryList(String well_id);
+    List<HashMap<String, Object>> selectTestHistorySummary(String well_id);
+    HashMap<String, Object> getLastTestHistory(String well_id);
     List<HashMap<String,Object>> selectAnalyticalAssaysList(String well_id);
+    List<HashMap<String,Object>> selectAnalyticalAssaysSummary(String well_id);
     List<HashMap<String,Object>> selectHistoryAssignmentList(String well_id);
+    List<HashMap<String,Object>> selectHistoryAssignmentSummary(String well_id);
+    HashMap<String, Object> getLastHistoryAssignment(String well_id);
     List<HashMap<String,Object>> selectDataIndexList(String well_id);
     int saveExpendSetting(WlUserExpendSetting model);
     WlUserExpendSetting getExpendSetting(String userId ,String wellId);

+ 41 - 35
src/main/resources/META-INF/MANIFEST.MF

@@ -1,38 +1,44 @@
 Manifest-Version: 1.0
 Main-Class: com.bowintek.practice.PracticeApplication
-Class-Path: HikariCP-4.0.3.jar jackson-annotations-2.13.3.jar jul-to-slf
- 4j-1.7.36.jar netty-codec-4.1.79.Final.jar aspectjweaver-1.9.7.jar tomc
- at-embed-el-9.0.65.jar tomcat-embed-core-9.0.65.jar commons-beanutils-1
- .9.4.jar logback-core-1.2.11.jar commons-collections-3.2.2.jar poi-scra
- tchpad-4.0.0.jar spring-data-keyvalue-2.7.2.jar spring-oxm-5.3.22.jar s
- pring-boot-devtools-2.7.2.jar poi-4.0.0.jar commons-compress-1.18.jar h
- ttpcore-4.4.15.jar reactor-core-3.4.21.jar spring-boot-autoconfigure-2.
- 7.2.jar pagehelper-spring-boot-autoconfigure-1.4.3.jar mybatis-3.5.9.ja
- r lombok-1.18.20.jar commons-collections4-4.2.jar checker-qual-3.5.0.ja
- r spring-boot-starter-2.7.2.jar jackson-datatype-jdk8-2.13.3.jar mybati
- s-spring-boot-autoconfigure-2.2.2.jar spring-tx-5.3.22.jar lettuce-core
- -6.1.9.RELEASE.jar spring-jcl-5.3.22.jar jsqlparser-4.2.jar jackson-mod
- ule-parameter-names-2.13.3.jar spring-boot-2.7.2.jar mybatis-spring-boo
- t-starter-2.2.2.jar commons-net-3.6.jar spring-context-5.3.22.jar netty
- -common-4.1.79.Final.jar fastjson-1.2.47.jar json-20190722.jar spring-w
- ebmvc-5.3.22.jar spring-data-commons-2.7.2.jar jackson-core-2.13.3.jar 
- netty-handler-4.1.79.Final.jar mybatis-spring-2.0.7.jar xmlbeans-3.0.1.
- jar jackson-datatype-jsr310-2.13.3.jar commons-pool2-2.11.1.jar java-jw
- t-3.9.0.jar httpclient-4.5.9.jar spring-boot-starter-json-2.7.2.jar spr
- ing-context-support-5.3.22.jar netty-buffer-4.1.79.Final.jar jakarta.an
- notation-api-1.3.5.jar spring-beans-5.3.22.jar netty-transport-4.1.79.F
- inal.jar druid-spring-boot-starter-1.2.11.jar commons-codec-1.15.jar sp
- ring-boot-starter-data-redis-2.7.2.jar poi-ooxml-schemas-4.0.0.jar mysq
- l-connector-java-8.0.29.jar tomcat-embed-websocket-9.0.65.jar druid-1.2
- .11.jar spring-web-5.3.22.jar commons-lang3-3.5.jar spring-data-redis-2
- .7.2.jar aspectjrt-1.9.7.jar poi-ooxml-4.0.0.jar spring-boot-starter-lo
- gging-2.7.2.jar jackson-databind-2.13.3.jar postgresql-42.3.6.jar netty
- -transport-native-unix-common-4.1.79.Final.jar spring-jdbc-5.3.22.jar s
- pring-boot-starter-web-2.7.2.jar spring-core-5.3.22.jar commons-logging
- -1.2.jar spring-expression-5.3.22.jar aspose-words-15.8.0-jdk16.jar spr
- ing-aop-5.3.22.jar pagehelper-5.3.1.jar spring-boot-starter-tomcat-2.7.
- 2.jar logback-classic-1.2.11.jar spring-boot-starter-jdbc-2.7.2.jar net
- ty-resolver-4.1.79.Final.jar log4j-api-2.17.2.jar reactive-streams-1.0.
- 4.jar log4j-to-slf4j-2.17.2.jar pagehelper-spring-boot-starter-1.4.3.ja
- r slf4j-api-1.7.36.jar snakeyaml-1.30.jar curvesapi-1.04.jar
+Class-Path: mybatis-spring-2.0.7.jar reactor-core-3.4.21.jar lettuce-cor
+ e-6.1.9.RELEASE.jar spring-data-keyvalue-2.7.2.jar jackson-databind-2.1
+ 3.3.jar jackson-datatype-jdk8-2.13.3.jar spring-boot-starter-data-redis
+ -2.7.2.jar spring-boot-starter-jdbc-2.7.2.jar lucene-queries-4.7.2.jar 
+ snakeyaml-1.30.jar netty-handler-4.1.79.Final.jar jackson-module-parame
+ ter-names-2.13.3.jar jackson-core-2.13.3.jar poi-4.0.0.jar spring-webmv
+ c-5.3.22.jar commons-collections4-4.2.jar fastjson-1.2.47.jar spring-be
+ ans-5.3.22.jar commons-lang3-3.5.jar httpasyncclient-4.1.5.jar netty-re
+ solver-4.1.79.Final.jar spring-boot-starter-json-2.7.2.jar lombok-1.18.
+ 20.jar spring-boot-autoconfigure-2.7.2.jar reactive-streams-1.0.4.jar a
+ spectjrt-1.9.7.jar spring-expression-5.3.22.jar jul-to-slf4j-1.7.36.jar
+  checker-qual-3.5.0.jar netty-codec-4.1.79.Final.jar parsson-1.0.0.jar 
+ slf4j-api-1.7.36.jar xmlbeans-3.0.1.jar lucene-queryparser-4.7.2.jar to
+ mcat-embed-core-9.0.65.jar opentelemetry-api-1.29.0.jar spring-jdbc-5.3
+ .22.jar mysql-connector-java-8.0.29.jar spring-core-5.3.22.jar poi-ooxm
+ l-4.0.0.jar pagehelper-spring-boot-starter-1.4.3.jar elasticsearch-java
+ -8.11.1.jar mybatis-3.5.9.jar elasticsearch-rest-client-7.17.4.jar jsql
+ parser-4.2.jar netty-common-4.1.79.Final.jar jakarta.annotation-api-1.3
+ .5.jar spring-tx-5.3.22.jar netty-transport-4.1.79.Final.jar ikanalyzer
+ -2012_u6.jar httpcore-4.4.15.jar mybatis-spring-boot-autoconfigure-2.2.
+ 2.jar jakarta.json-api-2.0.1.jar log4j-to-slf4j-2.17.2.jar spring-boot-
+ 2.7.2.jar druid-spring-boot-starter-1.2.11.jar pagehelper-spring-boot-a
+ utoconfigure-1.4.3.jar spring-data-redis-2.7.2.jar commons-beanutils-1.
+ 9.4.jar log4j-api-2.17.2.jar lucene-sandbox-4.7.2.jar httpclient-4.5.9.
+ jar jsr305-3.0.2.jar HikariCP-4.0.3.jar tomcat-embed-websocket-9.0.65.j
+ ar spring-boot-starter-web-2.7.2.jar postgresql-42.3.6.jar commons-coll
+ ections-3.2.2.jar logback-classic-1.2.11.jar logback-core-1.2.11.jar po
+ i-ooxml-schemas-4.0.0.jar spring-boot-devtools-2.7.2.jar netty-buffer-4
+ .1.79.Final.jar pagehelper-5.3.1.jar commons-pool2-2.11.1.jar spring-bo
+ ot-starter-2.7.2.jar spring-data-commons-2.7.2.jar commons-codec-1.15.j
+ ar spring-aop-5.3.22.jar curvesapi-1.04.jar spring-boot-starter-tomcat-
+ 2.7.2.jar opentelemetry-context-1.29.0.jar aspectjweaver-1.9.7.jar spri
+ ng-web-5.3.22.jar commons-logging-1.2.jar aspose-words-15.8.0-jdk16.jar
+  postgresql-42.3.4.jar java-jwt-3.9.0.jar jackson-annotations-2.13.3.ja
+ r lucene-analyzers-common-4.7.2.jar tomcat-embed-el-9.0.65.jar json-201
+ 90722.jar druid-1.2.11.jar jackson-datatype-jsr310-2.13.3.jar mybatis-s
+ pring-boot-starter-2.2.2.jar commons-compress-1.18.jar spring-oxm-5.3.2
+ 2.jar httpcore-nio-4.4.15.jar spring-context-support-5.3.22.jar spring-
+ context-5.3.22.jar netty-transport-native-unix-common-4.1.79.Final.jar 
+ commons-net-3.6.jar poi-scratchpad-4.0.0.jar spring-jcl-5.3.22.jar spri
+ ng-boot-starter-logging-2.7.2.jar lucene-core-4.7.2.jar
 

+ 35 - 0
src/main/resources/mapping/cquery/WellInfoCQuery.xml

@@ -113,16 +113,51 @@
         from public.dws_dm_test_history th
         where th.well_id = #{well_id}
     </select>
+    <select id="selectTestHistorySummary" resultType="java.util.HashMap">
+        select testing_name,count(1) as testing_num from public.dws_dm_test_history th
+        where th.well_id = #{well_id}
+        group by th.testing_name
+    </select>
+    <select id="getLastTestHistory" resultType="java.util.HashMap">
+        select *from  public.dws_dm_test_history th
+        where th.well_id = #{well_id}
+        order by th.testing_date desc
+        limit 1
+    </select>
     <select id="selectAnalyticalAssaysList" resultType="java.util.HashMap">
         select *
         from public.dws_dm_analytical_assays aa
         where aa.well_id = #{well_id}
     </select>
+    <select id="selectAnalyticalAssaysSummary" resultType="java.util.HashMap">
+        SELECT item_code,SUM(CASE WHEN item_code = '井裸眼井基本解释成果' THEN 1 ELSE 0 END)  AS 井裸眼井基本解释成果,
+               SUM(CASE WHEN item_code = '岩石力学参数解释成果' THEN 1 ELSE 0 END)  AS 岩石力学参数解释成果,
+               SUM(CASE WHEN item_code = '储层孔隙结构评价' THEN 1 ELSE 0 END)    AS 储层孔隙结构评价,
+               SUM(CASE WHEN item_code = '裂缝型地层测井解释成果' THEN 1 ELSE 0 END) AS 裂缝型地层测井解释成果,
+               SUM(CASE WHEN item_code = '煤层气测井解释成果' THEN 1 ELSE 0 END)   AS 煤层气测井解释成果,
+               SUM(CASE WHEN item_code = '录井综合解释' THEN 1 ELSE 0 END)      AS 录井综合解释,
+               SUM(CASE WHEN item_code = '气测解释' THEN 1 ELSE 0 END)        AS 气测解释,
+               SUM(CASE WHEN item_code = '定量荧光解释' THEN 1 ELSE 0 END)      AS 定量荧光解释
+        FROM public.dws_dm_analytical_assays
+        where well_id = #{well_id}
+        GROUP BY item_code;
+    </select>
     <select id="selectHistoryAssignmentList" resultType="java.util.HashMap">
         select *
         from public.fact_dwr_brief_history_assignment ha
         where ha.well_id = #{well_id}
     </select>
+    <select id="selectHistoryAssignmentSummary" resultType="java.util.HashMap">
+        select test_processes_name,count(1) as testing_num from public.fact_dwr_brief_history_assignment bha
+        where bha.well_id = #{well_id}
+        group by bha.test_processes_name
+    </select>
+    <select id="getLastHistoryAssignment" resultType="java.util.HashMap">
+        select *from  public.fact_dwr_brief_history_assignment bha
+        where bha.well_id = #{well_id}
+        order by bha.start_time desc
+        limit 1
+    </select>
     <select id="selectDataIndexList" resultType="java.util.HashMap">
         select *
         from public.fact_dwr_well_data_index di

+ 0 - 5
vue/src/views/wellinfo/columns.ts

@@ -1,5 +1,4 @@
 export const boreholeInterColumns=[
-  {title: '井id', dataIndex: 'well_id', key: 'well_id', width: 120},
   {title: '井筒id', dataIndex: 'wellbore_id', key: 'wellbore_id', width: 120},
   {title: '层位id', dataIndex: 'zone_id', key: 'zone_id', width: 120},
   {title: '层号(序号)', dataIndex: 'zone_no', key: 'zone_no', width: 120},
@@ -41,7 +40,6 @@ export const boreholeInterColumns=[
     }}
 ];
 export const testHistoryColumns=[
-  {title: '井id', dataIndex: 'well_id', key: 'well_id', width: 120},
   {title: '测试日期', dataIndex: 'testing_date', key: 'testing_date', width: 120},
   {title: '测试名称', dataIndex: 'testing_name', key: 'testing_name', width: 120},
   {title: '测试单位', dataIndex: 'anal_coy', key: 'anal_coy', width: 120},
@@ -49,7 +47,6 @@ export const testHistoryColumns=[
 ]
 
 export const analyticalAssaysColumns=[
-  {title: '井id', dataIndex: 'well_id', key: 'well_id', width: 120},
   {title: '分析类型', dataIndex: 'item_code', key: 'item_code', width: 120},
   {title: '分析指标', dataIndex: 'item_name', key: 'item_name', width: 120},
   {title: '指标单位', dataIndex: 'meter_unit', key: 'meter_unit', width: 120},
@@ -57,7 +54,6 @@ export const analyticalAssaysColumns=[
   {title: '描述', dataIndex: 'description', key: 'description', width: 120}
 ]
 export const historyAssignmentColumns=[
-  {title: '井id', dataIndex: 'well_id', key: 'well_id', width: 120},
   {title: '井筒id', dataIndex: 'wellbore_id', key: 'wellbore_id', width: 120},
   {title: '作业阶段id', dataIndex: 'event_id', key: 'event_id', width: 120},
   {title: '试油试采id', dataIndex: 'test_id', key: 'test_id', width: 120},
@@ -79,7 +75,6 @@ export const historyAssignmentColumns=[
   {title: '泵深', dataIndex: 'pump_depth', key: 'pump_depth', width: 120},
 ]
 export const dataIndexColumns=[
-  {title: '井id', dataIndex: 'well_id', key: 'well_id', width: 120},
   {title: '日期', dataIndex: 'date', key: 'date', width: 120},
   {title: '文档名', dataIndex: 'file_name', key: 'file_name', width: 120 },
   {title: '文档业务类型', dataIndex: 'file_business_type', key: 'file_business_type', width: 120},

+ 32 - 8
vue/src/views/wellinfo/detail.vue

@@ -55,7 +55,7 @@
       <div v-if="cardSettings.cardBaseInfo.expand">
         <a-divider type="vertical" class="info-title" style="margin-top: 0px" dashed>井身结构</a-divider>
         <a-descriptions bordered>
-          <a-descriptions-item label="井id:">{{ dataModel.well_id }}</a-descriptions-item>
+          <a-descriptions-item  :labelStyle="{'width':'12%'}" :contentStyle="{'width':'21%'}"  label="井id:">{{ dataModel.well_id }}</a-descriptions-item>
           <a-descriptions-item label="井名:">{{ dataModel.well_common_name }}</a-descriptions-item>
           <a-descriptions-item label="井别:">{{ dataModel.well_purpose }}</a-descriptions-item>
           <a-descriptions-item label="井型:">{{ dataModel.well_type }}</a-descriptions-item>
@@ -74,7 +74,7 @@
         </a-descriptions>
         <a-divider type="vertical" class="info-title" dashed>井A1信息</a-divider>
         <a-descriptions bordered>
-          <a-descriptions-item label="采油厂机构:">{{ dataModel.org_name_a1 }}</a-descriptions-item>
+          <a-descriptions-item :labelStyle="{'width':'12%'}" :contentStyle="{'width':'21%'}"  label="采油厂机构:">{{ dataModel.org_name_a1 }}</a-descriptions-item>
           <a-descriptions-item label="单位名称:">{{ dataModel.org_name_a2 }}</a-descriptions-item>
           <a-descriptions-item label="标准井名:">{{ dataModel.well_legal_name }}</a-descriptions-item>
           <a-descriptions-item label="地理位置描述:" :span="3">{{ dataModel.geo_description }}</a-descriptions-item>
@@ -100,7 +100,7 @@
         </a-descriptions>
         <a-divider type="vertical" class="info-title" dashed>井盆地凹陷信息</a-divider>
         <a-descriptions bordered>
-          <a-descriptions-item label="标准盆地:">{{ dataModel.bz_basin }}</a-descriptions-item>
+          <a-descriptions-item :labelStyle="{'width':'12%'}" :contentStyle="{'width':'21%'}"  label="标准盆地:">{{ dataModel.bz_basin }}</a-descriptions-item>
           <a-descriptions-item label="标准地陷:">{{ dataModel.bz_depression }}</a-descriptions-item>
           <a-descriptions-item label="标准凹陷:">{{ dataModel.bz_depressed }}</a-descriptions-item>
           <a-descriptions-item label="标准构造带:">{{ dataModel.bz_structural_belt }}</a-descriptions-item>
@@ -151,9 +151,13 @@
                             :style="cardSettings.buttonStyle"/>
       </template>
       <div v-if="cardSettings.cardTest.expand">
-        <p>本井共实施5次系统试井,4次压恢压降试井,5次工程测井, 11次静压测试, 107次流压测试,
-          2023年10月27日进行最近一次流压测试,油层中部压力33.47MPa,中部温度132.32 ℃<br/>
+        <p  class="info-body">本井共实施
+          <template v-for="it in testHistorySummary">
+            <span>{{it.testing_num}}</span>次{{ it.testing_name }}、
+          </template>
+          <span>{{lastTestHistory.testing_date}}</span>进行最近一次<span>{{lastTestHistory.testing_name}}</span>,   <span>{{lastTestHistory.construction_description}}</span>
         </p>
+        <br/>
         <a-table :columns="testHistoryColumns" :data-source="testHistoryList" :scroll="{ x:'100%', y: 500 }"
                  :pagination="false"
                  bordered>
@@ -168,8 +172,10 @@
                             :style="cardSettings.buttonStyle"/>
       </template>
       <div v-if="cardSettings.cardAnalysis.expand">
-        <p>
-          本井共实监原油全分析共90组,原油族组份分析12组,天然气全分析47组,B2S含量分析19组,油田水分析2组,PVT分析3组:
+        <p class="info-body">
+          <template v-for="it in analyticalAssaysSummary">
+            {{ it.item_code }}<span>{{it[it.item_code]}}</span>组、
+          </template>
         </p>
         <br>
         <a-table :columns="analyticalAssaysColumns" :data-source="analyticalAssaysList" :scroll="{ x:'100%', y: 500 }"
@@ -186,7 +192,13 @@
                             :style="cardSettings.buttonStyle"/>
       </template>
       <div v-if="cardSettings.cardWork.expand">
-        <p>哈23-12井井实施井下作业施工1次,其中油管测试1次;2015年08月23日油管测试,油管测试井段7458m-7613.05m</p>
+        <p  class="info-body">
+          井实施井下作业施工<span>{{historyAssignmentCount}}</span>次,其中
+          <template v-for="it in historyAssignmentSummary">
+            {{ it.test_processes_name }}<span>{{it.testing_num}}</span>次、
+          </template>
+          <span>{{ lastHistoryAssignment.start_time }}{{ lastHistoryAssignment.test_processes_name }}</span>,
+          <span>{{ lastHistoryAssignment.test_processes_name }}</span>井段<span>{{ lastHistoryAssignment.well_production_sections }}</span></p>
         <br/>
         <a-table :columns="historyAssignmentColumns" :data-source="historyAssignmentList" :scroll="{ x:'100%', y: 500 }"
                  :pagination="false"
@@ -249,8 +261,14 @@ export default defineComponent({
       dataModel: {well_id: null},
       boreholeInterList: [],
       testHistoryList: [],
+      testHistorySummary:[],
+      lastTestHistory:{},
       analyticalAssaysList: [],
+      analyticalAssaysSummary:[],
       historyAssignmentList: [],
+      historyAssignmentSummary:[],
+      lastHistoryAssignment:{},
+      historyAssignmentCount:0,
       dataIndexList: []
     });
 
@@ -262,9 +280,15 @@ export default defineComponent({
         wellData.dataModel = data.dataModel;
         wellData.boreholeInterList = data.boreholeInterList;
         wellData.testHistoryList = data.testHistoryList;
+        wellData.testHistorySummary =data.testHistorySummary;
+        wellData.lastTestHistory=data.lastTestHistory;
         wellData.analyticalAssaysList = data.analyticalAssaysList;
+        wellData.analyticalAssaysSummary=data.analyticalAssaysSummary;
         wellData.historyAssignmentList = data.historyAssignmentList;
+        wellData.historyAssignmentSummary=data.historyAssignmentSummary;
+        wellData.lastHistoryAssignment=data.lastHistoryAssignment;
         wellData.dataIndexList = data.dataIndexList;
+        wellData.historyAssignmentCount =wellData.historyAssignmentSummary.reduce((total, it:any) => total + it.testing_num, 0);
       })
       get('wellInfo/getExpendSetting', {wellId: id}).then(data => {
         if (data != null) {

+ 2 - 2
vue/src/views/wellinfo/index.vue

@@ -271,10 +271,10 @@ export default defineComponent({
         width: 60,
         dataIndex: 'index',
         key: 'index',
-        align: "center",
+        align: "center",fixed: 'left',
         customRender: item => `${formState.rows * (formState.page - 1) + item.index + 1}`
       },
-      {title: '井号', dataIndex: 'well_id', key: 'well_id', width: 120},
+      {title: '井号', dataIndex: 'well_id', key: 'well_id', width: 120,fixed: 'left'},
       {title: '井名', dataIndex: 'well_common_name', key: 'well_common_name', width: 120},
       {title: '采油厂机构', dataIndex: 'org_name_a1', key: 'org_name_a1', width: 120},
       {title: '井型', dataIndex: 'well_type', key: 'well_type', width: 120},