Browse Source

领域检索近期访问的井

xiaoqiao 6 months ago
parent
commit
5f64e05e9a

+ 6 - 0
src/main/java/com/bowintek/practice/controller/WellInfoController.java

@@ -1,6 +1,7 @@
 package com.bowintek.practice.controller;
 
 import com.alibaba.druid.support.logging.Log;
+import com.alibaba.fastjson.JSONObject;
 import com.aspose.cells.License;
 import com.aspose.cells.PdfSaveOptions;
 import com.aspose.cells.SaveOptions;
@@ -195,6 +196,11 @@ public class WellInfoController {
     public BaseResponse getOrgProjectList(@RequestBody WellInfoParams params) {
         return RespGenerstor.success(wellInfoService.selectOrgProjectList(params.getOrgList(), params.getUnitList()));
     }
+    @PostMapping("/getoilWaterDailyList")
+    public BaseResponse getoilWaterDailyList(@RequestBody JSONObject reqMap) {
+        List<String> commonWellNameList =reqMap.getJSONArray("commonWellNameList").toJavaList(String.class);
+        return RespGenerstor.success(wellInfoService.selectoilWaterDailyList(commonWellNameList));
+    }
 
     @GetMapping("/downFile")
     public void downFile(HttpServletResponse response, Integer isShow, String filePath, String fileName) throws IOException {

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

@@ -136,4 +136,10 @@ public interface WellInfoCQuery {
      * @return
      */
     List<HashMap<String,Object>> selectOrgProjectList(List<String> orgList,List<String> unitList);
+
+    /**
+     * 获取井最近生产日期的产油产水
+     * @return
+     */
+    List<HashMap<String,Object>> selectoilWaterDailyList(List<String> commonWellNameList);
 }

+ 5 - 0
src/main/java/com/bowintek/practice/services/impl/WellInfoServiceImpl.java

@@ -244,4 +244,9 @@ public class WellInfoServiceImpl implements WellInfoService {
     public List<HashMap<String,Object>> selectOrgProjectList( List<String> orgList,List<String> unitList){
        return wellInfoCQuery.selectOrgProjectList(orgList,unitList);
     }
+    @Override
+    @SwitchDataSource(DBTypeEnum.POSTGRE)
+    public List<HashMap<String,Object>> selectoilWaterDailyList( List<String> commonWellNameList){
+        return wellInfoCQuery.selectoilWaterDailyList(commonWellNameList);
+    }
 }

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

@@ -28,4 +28,5 @@ public interface WellInfoService {
     List<HashMap<String, Object>> getWellPurposeTree();
     List<HashMap<String, Object>> getWellTypeTree();
     List<HashMap<String,Object>> selectOrgProjectList( List<String> orgList,List<String> unitList);
+    List<HashMap<String,Object>> selectoilWaterDailyList( List<String> commonWellNameList);
 }

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

@@ -386,4 +386,14 @@
             </foreach>
         </if>
     </select>
+    <select id="selectoilWaterDailyList" resultType="java.util.HashMap">
+        select *from by_dwr.oil_water_daily owd where 1=1
+
+        <if test="commonWellNameList!=null and commonWellNameList.size>0">
+            and owd.well_common_name in
+            <foreach collection="commonWellNameList" item="name" index="index" open="(" close=")" separator=",">
+                #{name}
+            </foreach>
+        </if>
+    </select>
 </mapper>

+ 39 - 32
vue/src/views/esdomain/result.vue

@@ -60,7 +60,7 @@
             <div>
               <div class="search-body-title">
                 井名:<span v-html="it.well_common_name"></span>
-                <p @click="showWell(it.well_id)">
+                <p @click="showWell(it.well_id,it.well_common_name)">
                   <img src="~@/assets/images/info.png" width="18" height="16"/>查看井筒详情</p>
               </div>
               <div class="search-body-item">
@@ -101,7 +101,7 @@
         <div class="search-sider">
           <div class="search-sider-block">
             <b>近期访问的井</b>
-            <a-list size="small" :data-source="listData">
+            <a-list size="small" :data-source="oilWaterDailyList">
               <template #header>
                 <div style="display: flex;background-color: #bfdedf;justify-content: space-around;padding: 5px;">
                   <span>井号</span>
@@ -111,9 +111,9 @@
               </template>
               <template #renderItem="{ item }">
                 <a-list-item style="display: flex;justify-content: space-around;padding: 5px;">
-                  <span style="color: red">{{ item }}</span>
-                  <span>20/242.3</span>
-                  <span>2024-08-04</span>
+                  <span style="color: #1890FF;cursor: pointer" @click="redirectWell(item.well_id)">{{ item.well_common_name }}</span>
+                  <span>{{ item.oil_prod_daily }}/{{ item.water_pord_daily }}</span>
+                  <span>{{ item.prod_date }}</span>
                 </a-list-item>
               </template>
             </a-list>
@@ -130,18 +130,6 @@
               </template>
             </a-list>
           </div>
-          <div class="search-sider-block">
-            <b>你可能要找的年月报</b>
-            <a-list size="small" :data-source="listData">
-              <template #renderItem="{ item }">
-                <a-list-item>{{ item }}
-                  <template #actions>
-                    <a key="list-loadmore-edit">年报</a>
-                  </template>
-                </a-list-item>
-              </template>
-            </a-list>
-          </div>
         </div>
       </div>
     </a-spin>
@@ -177,6 +165,9 @@ export default defineComponent({
     const indexList = ref<any>([]);
     const keyList = ref<any>([]);
     const relationLogList = ref<any>([]);
+    const wellInfo = ref();
+    const oilWaterDailyList = ref([]);
+
     const formState = reactive({
       page: 1, rows: 10, subjectName: '', tabName: '', tabCode: null, total: 0
     });
@@ -216,13 +207,32 @@ export default defineComponent({
       const result = await get('esindex/getAllList', {});
       indexList.value = result;
     }
-    const showWell = (well_id) => {
+    const showWell = (well_id, well_common_name) => {
       tabsViewStore.addTabByPath('/wellinfo/detail', {id: well_id});
+      storeWell(well_common_name);
     }
     const redirectWell = (well_id) => {
       tabsViewStore.addTabByPath('/domain/well', {id: well_id});
     }
 
+    const storeWell = (well_common_name) => {
+      let nameJson = localStorage.getItem("ls_well_common_name");
+      if (nameJson == null) {
+        localStorage.setItem("ls_well_common_name", JSON.stringify([well_common_name]));
+      } else {
+        let nameList = JSON.parse(nameJson);
+        //只需要记录十条浏览记录,超过了最大长度,就移除末尾元素
+        if (nameList.indexOf(well_common_name) == -1) {
+          nameList.unshift(well_common_name);
+          if (nameList.length > 10) {
+            nameList.pop();
+          }
+        }
+        localStorage.setItem("ls_well_common_name", JSON.stringify(nameList));
+      }
+      getOilWaterDailyList();
+    }
+
     const onQuery = (args) => {
       pageParams.value.current = 1;
       queryObject.value = args;
@@ -265,8 +275,6 @@ export default defineComponent({
       })
     }
 
-    const wellInfo = ref();
-
     const onVisible = (visible, key) => {
       console.log(visible, key);
       if (visible) {
@@ -275,16 +283,14 @@ export default defineComponent({
         })
       }
     }
-
-    const listData: string[] = [
-      '井号1-1.',
-      '井号2-1',
-      '井号3-1',
-      '井号4-1',
-      '井号5-1',
-      '井号5-1',
-      '井号5-1',
-    ];
+    const getOilWaterDailyList = () => {
+      let params = localStorage.getItem("ls_well_common_name");
+      if (params != null) {
+        postData('wellInfo/getoilWaterDailyList', {commonWellNameList: params}).then((data:[]) => {
+          oilWaterDailyList.value = data;
+        })
+      }
+    }
     return {
       router,
       route,
@@ -295,14 +301,14 @@ export default defineComponent({
       showWell,
       redirectWell,
       pageState,
-      listData,
       queryRef,
       loadData,
       dataList,
       handleChange,
       getIndex,
       pageParams,
-      keyList, onVisible, wellInfo,relationLogList,
+      oilWaterDailyList,
+      keyList, onVisible, wellInfo, relationLogList, getOilWaterDailyList,
       queryObject
     };
   },
@@ -315,6 +321,7 @@ export default defineComponent({
         this.loadData();
       }
     });
+    this.getOilWaterDailyList();
   },
   activated() {
   }

+ 7 - 7
vue/src/views/wellinfo/detail.vue

@@ -399,7 +399,7 @@ export default defineComponent({
       loadTestHistoryData();
     };
 
-    function loadTestHistoryData() {
+    const loadTestHistoryData=()=> {
       let id = history.state.params?.id ?? wellData.dataModel.well_id;
       get('wellInfo/getTestHistoryList', {
         page: testHistoryPage.value.current,
@@ -427,7 +427,7 @@ export default defineComponent({
       loadAnalyticalAssaysData();
     };
 
-    function loadAnalyticalAssaysData() {
+    const loadAnalyticalAssaysData=()=> {
       let id = history.state.params?.id ?? wellData.dataModel.well_id;
       get('wellInfo/getAnalyticalAssaysList', {
         page: analyticalAssaysPage.value.current,
@@ -445,7 +445,7 @@ export default defineComponent({
       selectBusinessType: [] as any[]
     })
 
-    function onBusTypeChange(checked, it) {
+    const onBusTypeChange=(checked, it) =>{
       if (checked) {
         fileOptions.selectBusinessType.push(it);
       } else {
@@ -513,7 +513,7 @@ export default defineComponent({
       })
     }
 
-    function checkApplyFile(dataIndexList: any[]) {
+    const checkApplyFile=(dataIndexList: any[]) =>{
       let applyFileList = getStoreFiles();
       dataIndexList.forEach(it => {
         if (!it.isApply) {
@@ -523,7 +523,7 @@ export default defineComponent({
       return dataIndexList;
     }
 
-    function getStoreFiles() {
+    const getStoreFiles=()=> {
       let applyFileList = new Array();
       let storeList = localStorage.getItem("applyFileList");
       if (storeList != null) {
@@ -532,14 +532,14 @@ export default defineComponent({
       return applyFileList;
     }
 
-    function rowSpan(list: any[]) {
+    const rowSpan=(list: any[]) =>{
       for (let i = 0; i < list.length; i++) {
         list[i].rowSpan = getRowSpan(list[i].item_code, i + 1, list);
       }
       return list;
     }
 
-    function getRowSpan(itemCode, starIndex, list: any[]) {
+    const getRowSpan=(itemCode, starIndex, list: any[])=> {
       let rowSpan = 1;
       for (let i = starIndex; i < list.length; i++) {
         if (list[i].item_code != itemCode) {