xiaoqiao 1 سال پیش
والد
کامیت
a4e408f283

+ 10 - 0
doc/待更新脚本

@@ -0,0 +1,10 @@
+create table wl_user_expend_setting
+(
+   expendID             varchar(50) not null,
+   userID               varchar(50) comment '用户ID',
+   well_id              varchar(50) comment '井ID',
+   setting_json         varchar(500) comment '配置信息setting_json',
+   primary key (expendID)
+);
+
+alter table wl_user_expend_setting comment '井筒全息信息页折叠配置';

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1120 - 588
lib/华北油田Ai检索.PDM


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1117 - 588
lib/华北油田Ai检索.pdb


+ 38 - 11
src/main/java/com/bowintek/practice/controller/WellInfoController.java

@@ -1,10 +1,15 @@
 package com.bowintek.practice.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.bowintek.practice.filter.exception.BaseResponse;
 import com.bowintek.practice.filter.exception.RespGenerstor;
 import com.bowintek.practice.model.WellBasicInformation;
+import com.bowintek.practice.model.WlUserExpendSetting;
+import com.bowintek.practice.services.service.AccountService;
 import com.bowintek.practice.services.service.OrganizationService;
 import com.bowintek.practice.services.service.WellInfoService;
+import com.bowintek.practice.vo.SubjectVo;
+import com.bowintek.practice.vo.SubjectfieldVo;
 import com.bowintek.practice.vo.cd.CdOrganizationTreeVo;
 import com.bowintek.practice.vo.query.WellInfoParams;
 import com.github.pagehelper.PageInfo;
@@ -23,11 +28,13 @@ public class WellInfoController {
     private WellInfoService wellInfoService;
     @Autowired
     private OrganizationService organizationService;
+    @Autowired
+    private AccountService accountService;
 
     @ResponseBody
     @GetMapping("/getList")
     public BaseResponse<PageInfo<HashMap<String, Object>>> getList(@RequestParam("page") int page, @RequestParam("rows") int rows,
-                                                                         WellInfoParams params) throws Exception {
+                                                                   WellInfoParams params) throws Exception {
 
         PageInfo<HashMap<String, Object>> result = wellInfoService.getList(page, rows, params);
 
@@ -35,23 +42,43 @@ public class WellInfoController {
     }
 
     @GetMapping("/getOrganizationTree")
-    public BaseResponse getDictionaryList() {
-        List<CdOrganizationTreeVo> treeVoList = organizationService.getListTree();
+    public BaseResponse getOrganizationTree() {
         return RespGenerstor.success(organizationService.getListTree());
     }
 
     @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>>  analyticalAssaysList =wellInfoService.selectAnalyticalAssaysList(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>> analyticalAssaysList = wellInfoService.selectAnalyticalAssaysList(well_id);
+        List<HashMap<String, Object>> historyAssignmentList = wellInfoService.selectHistoryAssignmentList(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("dataModel", wellInfo);
+        result.put("boreholeInterList", boreholeInterList);
+        result.put("testHistoryList", testHistoryList);
+        result.put("analyticalAssaysList", analyticalAssaysList);
+        result.put("historyAssignmentList", historyAssignmentList);
+        result.put("dataIndexList", dataIndexList);
         return RespGenerstor.success(result);
     }
+
+    @ResponseBody
+    @PostMapping("/saveExpendSetting")
+    public BaseResponse saveExpendSetting(@RequestBody WlUserExpendSetting model) {
+        int count = 0;
+        try {
+            model.setUserID(accountService.getLoginUserID());
+            count = wellInfoService.saveExpendSetting(model);
+        } catch (Exception e) {
+            return RespGenerstor.fail("-1", "程序异常:" + e.getMessage());
+        }
+        return RespGenerstor.success(count);
+    }
+    @GetMapping("/getExpendSetting")
+    public BaseResponse getExpendSetting(String wellId) {
+        return RespGenerstor.success(wellInfoService.getExpendSetting(wellId,accountService.getLoginUserID()));
+    }
 }

+ 30 - 0
src/main/java/com/bowintek/practice/mapper/WlUserExpendSettingMapper.java

@@ -0,0 +1,30 @@
+package com.bowintek.practice.mapper;
+
+import com.bowintek.practice.model.WlUserExpendSetting;
+import com.bowintek.practice.model.WlUserExpendSettingExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface WlUserExpendSettingMapper {
+    long countByExample(WlUserExpendSettingExample example);
+
+    int deleteByExample(WlUserExpendSettingExample example);
+
+    int deleteByPrimaryKey(String expendID);
+
+    int insert(WlUserExpendSetting row);
+
+    int insertSelective(WlUserExpendSetting row);
+
+    List<WlUserExpendSetting> selectByExample(WlUserExpendSettingExample example);
+
+    WlUserExpendSetting selectByPrimaryKey(String expendID);
+
+    int updateByExampleSelective(@Param("row") WlUserExpendSetting row, @Param("example") WlUserExpendSettingExample example);
+
+    int updateByExample(@Param("row") WlUserExpendSetting row, @Param("example") WlUserExpendSettingExample example);
+
+    int updateByPrimaryKeySelective(WlUserExpendSetting row);
+
+    int updateByPrimaryKey(WlUserExpendSetting row);
+}

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

@@ -42,4 +42,18 @@ public interface WellInfoCQuery {
      * @return
      */
     List<HashMap<String,Object>> selectAnalyticalAssaysList(String well_id);
+
+    /**
+     * 作业简史
+     * @param well_id
+     * @return
+     */
+    List<HashMap<String,Object>> selectHistoryAssignmentList(String well_id);
+
+    /**
+     * 井资料索引(文档)
+     * @param well_id
+     * @return
+     */
+    List<HashMap<String,Object>> selectDataIndexList(String well_id);
 }

+ 43 - 0
src/main/java/com/bowintek/practice/model/WlUserExpendSetting.java

@@ -0,0 +1,43 @@
+package com.bowintek.practice.model;
+
+public class WlUserExpendSetting {
+    private String expendID;
+
+    private String userID;
+
+    private String well_id;
+
+    private String setting_json;
+
+    public String getExpendID() {
+        return expendID;
+    }
+
+    public void setExpendID(String expendID) {
+        this.expendID = expendID == null ? null : expendID.trim();
+    }
+
+    public String getUserID() {
+        return userID;
+    }
+
+    public void setUserID(String userID) {
+        this.userID = userID == null ? null : userID.trim();
+    }
+
+    public String getWell_id() {
+        return well_id;
+    }
+
+    public void setWell_id(String well_id) {
+        this.well_id = well_id == null ? null : well_id.trim();
+    }
+
+    public String getSetting_json() {
+        return setting_json;
+    }
+
+    public void setSetting_json(String setting_json) {
+        this.setting_json = setting_json == null ? null : setting_json.trim();
+    }
+}

+ 479 - 0
src/main/java/com/bowintek/practice/model/WlUserExpendSettingExample.java

@@ -0,0 +1,479 @@
+package com.bowintek.practice.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class WlUserExpendSettingExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public WlUserExpendSettingExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andExpendIDIsNull() {
+            addCriterion("expendID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDIsNotNull() {
+            addCriterion("expendID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDEqualTo(String value) {
+            addCriterion("expendID =", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDNotEqualTo(String value) {
+            addCriterion("expendID <>", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDGreaterThan(String value) {
+            addCriterion("expendID >", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDGreaterThanOrEqualTo(String value) {
+            addCriterion("expendID >=", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDLessThan(String value) {
+            addCriterion("expendID <", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDLessThanOrEqualTo(String value) {
+            addCriterion("expendID <=", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDLike(String value) {
+            addCriterion("expendID like", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDNotLike(String value) {
+            addCriterion("expendID not like", value, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDIn(List<String> values) {
+            addCriterion("expendID in", values, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDNotIn(List<String> values) {
+            addCriterion("expendID not in", values, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDBetween(String value1, String value2) {
+            addCriterion("expendID between", value1, value2, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andExpendIDNotBetween(String value1, String value2) {
+            addCriterion("expendID not between", value1, value2, "expendID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDIsNull() {
+            addCriterion("userID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDIsNotNull() {
+            addCriterion("userID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDEqualTo(String value) {
+            addCriterion("userID =", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDNotEqualTo(String value) {
+            addCriterion("userID <>", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDGreaterThan(String value) {
+            addCriterion("userID >", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDGreaterThanOrEqualTo(String value) {
+            addCriterion("userID >=", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDLessThan(String value) {
+            addCriterion("userID <", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDLessThanOrEqualTo(String value) {
+            addCriterion("userID <=", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDLike(String value) {
+            addCriterion("userID like", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDNotLike(String value) {
+            addCriterion("userID not like", value, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDIn(List<String> values) {
+            addCriterion("userID in", values, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDNotIn(List<String> values) {
+            addCriterion("userID not in", values, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDBetween(String value1, String value2) {
+            addCriterion("userID between", value1, value2, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andUserIDNotBetween(String value1, String value2) {
+            addCriterion("userID not between", value1, value2, "userID");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idIsNull() {
+            addCriterion("well_id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idIsNotNull() {
+            addCriterion("well_id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idEqualTo(String value) {
+            addCriterion("well_id =", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idNotEqualTo(String value) {
+            addCriterion("well_id <>", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idGreaterThan(String value) {
+            addCriterion("well_id >", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idGreaterThanOrEqualTo(String value) {
+            addCriterion("well_id >=", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idLessThan(String value) {
+            addCriterion("well_id <", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idLessThanOrEqualTo(String value) {
+            addCriterion("well_id <=", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idLike(String value) {
+            addCriterion("well_id like", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idNotLike(String value) {
+            addCriterion("well_id not like", value, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idIn(List<String> values) {
+            addCriterion("well_id in", values, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idNotIn(List<String> values) {
+            addCriterion("well_id not in", values, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idBetween(String value1, String value2) {
+            addCriterion("well_id between", value1, value2, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_idNotBetween(String value1, String value2) {
+            addCriterion("well_id not between", value1, value2, "well_id");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonIsNull() {
+            addCriterion("setting_json is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonIsNotNull() {
+            addCriterion("setting_json is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonEqualTo(String value) {
+            addCriterion("setting_json =", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonNotEqualTo(String value) {
+            addCriterion("setting_json <>", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonGreaterThan(String value) {
+            addCriterion("setting_json >", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonGreaterThanOrEqualTo(String value) {
+            addCriterion("setting_json >=", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonLessThan(String value) {
+            addCriterion("setting_json <", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonLessThanOrEqualTo(String value) {
+            addCriterion("setting_json <=", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonLike(String value) {
+            addCriterion("setting_json like", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonNotLike(String value) {
+            addCriterion("setting_json not like", value, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonIn(List<String> values) {
+            addCriterion("setting_json in", values, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonNotIn(List<String> values) {
+            addCriterion("setting_json not in", values, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonBetween(String value1, String value2) {
+            addCriterion("setting_json between", value1, value2, "setting_json");
+            return (Criteria) this;
+        }
+
+        public Criteria andSetting_jsonNotBetween(String value1, String value2) {
+            addCriterion("setting_json not between", value1, value2, "setting_json");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 58 - 13
src/main/java/com/bowintek/practice/services/impl/WellInfoServiceImpl.java

@@ -2,9 +2,12 @@ package com.bowintek.practice.services.impl;
 
 import com.bowintek.practice.mapper.SrSubjectMapper;
 import com.bowintek.practice.mapper.WellBasicInformationMapper;
+import com.bowintek.practice.mapper.WlUserExpendSettingMapper;
 import com.bowintek.practice.mapper.cquery.WellInfoCQuery;
 import com.bowintek.practice.model.WellBasicInformation;
 import com.bowintek.practice.model.WellBasicInformationExample;
+import com.bowintek.practice.model.WlUserExpendSetting;
+import com.bowintek.practice.model.WlUserExpendSettingExample;
 import com.bowintek.practice.services.service.WellInfoService;
 import com.bowintek.practice.util.multipdb.DBTypeEnum;
 import com.bowintek.practice.util.multipdb.SwitchDataSource;
@@ -17,6 +20,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.UUID;
 
 import static com.bowintek.practice.util.Constant.BOREHOLE_INTER_TYPE;
 import static com.bowintek.practice.util.Constant.FACT_CURRENT_STATE;
@@ -28,19 +32,21 @@ public class WellInfoServiceImpl implements WellInfoService {
     private WellBasicInformationMapper wellBasicInformationMapper;
     @Autowired
     private WellInfoCQuery wellInfoCQuery;
+    @Autowired
+    private WlUserExpendSettingMapper expendSettingMapper;
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
     public PageInfo<HashMap<String, Object>> getList(Integer page, Integer rows, WellInfoParams params) {
         PageHelper.startPage(page, rows);
 
-        List<HashMap<String,Object>> dataList = wellInfoCQuery.getWellInfoList(params);
+        List<HashMap<String, Object>> dataList = wellInfoCQuery.getWellInfoList(params);
 
-        PageInfo< HashMap<String, Object>> result = new PageInfo(dataList);
+        PageInfo<HashMap<String, Object>> result = new PageInfo(dataList);
 
-        result.getList().forEach(it->{
-            if(FACT_CURRENT_STATE.keySet().contains(it.get("current_state"))){
-                it.put("current_state_name",FACT_CURRENT_STATE.get(it.get("current_state")));
+        result.getList().forEach(it -> {
+            if (FACT_CURRENT_STATE.keySet().contains(it.get("current_state"))) {
+                it.put("current_state_name", FACT_CURRENT_STATE.get(it.get("current_state")));
             }
         });
         return result;
@@ -48,18 +54,18 @@ public class WellInfoServiceImpl implements WellInfoService {
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
-    public HashMap<String,Object> getWellInfo(String well_id){
+    public HashMap<String, Object> getWellInfo(String well_id) {
         return wellInfoCQuery.getWellInfo(well_id);
     }
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
-    public List<HashMap<String,Object>> selectBoreholeInterList(String well_id){
-        List<HashMap<String,Object>> dataList = wellInfoCQuery.selectBoreholeInterList(well_id);
+    public List<HashMap<String, Object>> selectBoreholeInterList(String well_id) {
+        List<HashMap<String, Object>> dataList = wellInfoCQuery.selectBoreholeInterList(well_id);
 
-        dataList.forEach(it->{
-            if(BOREHOLE_INTER_TYPE.keySet().contains(it.get("borehole_inter_type"))){
-                it.put("borehole_inter_type_name",BOREHOLE_INTER_TYPE.get(it.get("borehole_inter_type")));
+        dataList.forEach(it -> {
+            if (BOREHOLE_INTER_TYPE.keySet().contains(it.get("borehole_inter_type"))) {
+                it.put("borehole_inter_type_name", BOREHOLE_INTER_TYPE.get(it.get("borehole_inter_type")));
             }
         });
         return dataList;
@@ -67,13 +73,52 @@ public class WellInfoServiceImpl implements WellInfoService {
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
-    public List<HashMap<String,Object>> selectTestHistoryList(String well_id){
+    public List<HashMap<String, Object>> selectTestHistoryList(String well_id) {
         return wellInfoCQuery.selectTestHistoryList(well_id);
     }
 
     @Override
     @SwitchDataSource(DBTypeEnum.POSTGRE)
-    public List<HashMap<String,Object>> selectAnalyticalAssaysList(String well_id){
+    public List<HashMap<String, Object>> selectAnalyticalAssaysList(String well_id) {
         return wellInfoCQuery.selectAnalyticalAssaysList(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>> selectDataIndexList(String well_id) {
+        return wellInfoCQuery.selectDataIndexList(well_id);
+    }
+
+    @Override
+    public int saveExpendSetting(WlUserExpendSetting model) {
+        WlUserExpendSettingExample example = new WlUserExpendSettingExample();
+        example.or().andUserIDEqualTo(model.getUserID()).andWell_idEqualTo(model.getWell_id());
+        List<WlUserExpendSetting> list = expendSettingMapper.selectByExample(example);
+        if (list.size() > 0) {
+            WlUserExpendSetting dbEntity = list.get(0);
+            dbEntity.setSetting_json(model.getSetting_json());
+            expendSettingMapper.updateByPrimaryKeySelective(dbEntity);
+        } else {
+            model.setExpendID(UUID.randomUUID().toString());
+            expendSettingMapper.insert(model);
+        }
+        return 1;
+    }
+    @Override
+    public WlUserExpendSetting getExpendSetting(String wellId,String userId) {
+        WlUserExpendSettingExample example = new WlUserExpendSettingExample();
+        example.or().andUserIDEqualTo(userId).andWell_idEqualTo(wellId);
+        List<WlUserExpendSetting> list = expendSettingMapper.selectByExample(example);
+        if(list.size()>0)
+        {
+            return  list.get(0);
+        }
+        return  null;
+    }
 }

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

@@ -1,6 +1,7 @@
 package com.bowintek.practice.services.service;
 
 import com.bowintek.practice.model.WellBasicInformation;
+import com.bowintek.practice.model.WlUserExpendSetting;
 import com.bowintek.practice.vo.query.WellInfoParams;
 import com.github.pagehelper.PageInfo;
 
@@ -14,4 +15,8 @@ public interface WellInfoService {
     List<HashMap<String,Object>> selectBoreholeInterList(String well_id);
     List<HashMap<String,Object>> selectTestHistoryList(String well_id);
     List<HashMap<String,Object>> selectAnalyticalAssaysList(String well_id);
+    List<HashMap<String,Object>> selectHistoryAssignmentList(String well_id);
+    List<HashMap<String,Object>> selectDataIndexList(String well_id);
+    int saveExpendSetting(WlUserExpendSetting model);
+    WlUserExpendSetting getExpendSetting(String userId ,String wellId);
 }

+ 6 - 11
src/main/resources/generatorConfig.xml

@@ -4,7 +4,8 @@
 
 <generatorConfiguration>
     <!--mysql 连接数据库jar 这里选择自己本地位置-->
-    <classPathEntry location="./lib/postgresql-42.3.4.jar"/>
+   <!-- <classPathEntry location="./lib/postgresql-42.3.4.jar"/>-->
+    <classPathEntry location=".\lib\mysql-connector-java-5.1.46.jar"/>
     <context id="testTables" targetRuntime="MyBatis3">
         <!-- 运行环境配置 -->
         <!--<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>-->
@@ -17,20 +18,14 @@
             <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/>
         </commentGenerator>
         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
-        <!-- mysql
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
-                        connectionURL="jdbc:mysql://192.168.0.29:3306/zci_db" userId="root"
-                        password="bowin123">
-        </jdbcConnection>
-        -->
-  <!--      <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                         connectionURL="jdbc:mysql://office.bowintek.com:3306/smartSearchDB?useSSL=false" userId="root"
-                        password="bowin123">-->
-        <jdbcConnection driverClass="org.postgresql.Driver"
+                        password="bowin123"/>
+      <!--  <jdbcConnection driverClass="org.postgresql.Driver"
                         connectionURL="jdbc:postgresql://office.bowintek.com:5432/postgres"
                         userId="postgres"
                         password="bowin123">
-        </jdbcConnection>
+        </jdbcConnection>-->
 
         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
@@ -123,6 +118,6 @@
             <columnOverride column="StandardMajorID" javaType="java.lang.Integer" jdbcType="INTEGER" />
             <table schema="" tableName="Sys_Log"><property name="useActualColumnNames" value="true"/></table>
         </table>-->
-        <table schema="" tableName="well_basic_information"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="wl_user_expend_setting"><property name="useActualColumnNames" value="true"/></table>
     </context>
 </generatorConfiguration>

+ 196 - 0
src/main/resources/mapping/WlUserExpendSettingMapper.xml

@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.bowintek.practice.mapper.WlUserExpendSettingMapper">
+  <resultMap id="BaseResultMap" type="com.bowintek.practice.model.WlUserExpendSetting">
+    <id column="expendID" jdbcType="VARCHAR" property="expendID" />
+    <result column="userID" jdbcType="VARCHAR" property="userID" />
+    <result column="well_id" jdbcType="VARCHAR" property="well_id" />
+    <result column="setting_json" jdbcType="VARCHAR" property="setting_json" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    expendID, userID, well_id, setting_json
+  </sql>
+  <select id="selectByExample" parameterType="com.bowintek.practice.model.WlUserExpendSettingExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from wl_user_expend_setting
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from wl_user_expend_setting
+    where expendID = #{expendID,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from wl_user_expend_setting
+    where expendID = #{expendID,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.bowintek.practice.model.WlUserExpendSettingExample">
+    delete from wl_user_expend_setting
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.bowintek.practice.model.WlUserExpendSetting">
+    insert into wl_user_expend_setting (expendID, userID, well_id, 
+      setting_json)
+    values (#{expendID,jdbcType=VARCHAR}, #{userID,jdbcType=VARCHAR}, #{well_id,jdbcType=VARCHAR}, 
+      #{setting_json,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.bowintek.practice.model.WlUserExpendSetting">
+    insert into wl_user_expend_setting
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="expendID != null">
+        expendID,
+      </if>
+      <if test="userID != null">
+        userID,
+      </if>
+      <if test="well_id != null">
+        well_id,
+      </if>
+      <if test="setting_json != null">
+        setting_json,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="expendID != null">
+        #{expendID,jdbcType=VARCHAR},
+      </if>
+      <if test="userID != null">
+        #{userID,jdbcType=VARCHAR},
+      </if>
+      <if test="well_id != null">
+        #{well_id,jdbcType=VARCHAR},
+      </if>
+      <if test="setting_json != null">
+        #{setting_json,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.bowintek.practice.model.WlUserExpendSettingExample" resultType="java.lang.Long">
+    select count(*) from wl_user_expend_setting
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update wl_user_expend_setting
+    <set>
+      <if test="row.expendID != null">
+        expendID = #{row.expendID,jdbcType=VARCHAR},
+      </if>
+      <if test="row.userID != null">
+        userID = #{row.userID,jdbcType=VARCHAR},
+      </if>
+      <if test="row.well_id != null">
+        well_id = #{row.well_id,jdbcType=VARCHAR},
+      </if>
+      <if test="row.setting_json != null">
+        setting_json = #{row.setting_json,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update wl_user_expend_setting
+    set expendID = #{row.expendID,jdbcType=VARCHAR},
+      userID = #{row.userID,jdbcType=VARCHAR},
+      well_id = #{row.well_id,jdbcType=VARCHAR},
+      setting_json = #{row.setting_json,jdbcType=VARCHAR}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bowintek.practice.model.WlUserExpendSetting">
+    update wl_user_expend_setting
+    <set>
+      <if test="userID != null">
+        userID = #{userID,jdbcType=VARCHAR},
+      </if>
+      <if test="well_id != null">
+        well_id = #{well_id,jdbcType=VARCHAR},
+      </if>
+      <if test="setting_json != null">
+        setting_json = #{setting_json,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where expendID = #{expendID,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bowintek.practice.model.WlUserExpendSetting">
+    update wl_user_expend_setting
+    set userID = #{userID,jdbcType=VARCHAR},
+      well_id = #{well_id,jdbcType=VARCHAR},
+      setting_json = #{setting_json,jdbcType=VARCHAR}
+    where expendID = #{expendID,jdbcType=VARCHAR}
+  </update>
+</mapper>

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

@@ -3,8 +3,23 @@
 <mapper namespace="com.bowintek.practice.mapper.cquery.WellInfoCQuery">
 
     <select id="getWellInfo" resultType="java.util.HashMap">
-        select *
-        from well_basic_information well
+        select well.*,fact_daily.fluid_prod_daily,fact_daily.oil_prod_daily,fact_daily.water_cut,fact_daily.oil_prod_cum,
+               fact_intr.start_prod_date,fact_intr.prod_horizon,fact_intr.recent_testing_date,fact_intr.recent_testing_name,
+               fact_intr.construction_description,fact_intr.recent_prod_date,fact_intr.oil_nozzle,fact_intr.tubing_pres,
+               fact_intr.casing_pres,fact_intr.start_pump_liq_level
+        from public.well_basic_information well
+                 left join (
+            select daily.* from public.fact_dwr_pc_pro_well_vol_d daily
+                                    inner join(
+                select well_id, max(prod_time) prod_time from public.fact_dwr_pc_pro_well_vol_d group by well_id
+            ) maxdaily on daily.well_id=maxdaily.well_id and daily.prod_time=maxdaily.prod_time
+        )fact_daily on well.well_id= fact_daily.well_id
+                 left join (
+            select intr.* from public.fact_dwr_well_history_introduction intr
+                                   inner join(
+                select well_id, max(start_prod_date) start_prod_date from public.fact_dwr_well_history_introduction group by well_id
+            ) maxintr on intr.well_id=maxintr.well_id and intr.start_prod_date=maxintr.start_prod_date
+        )fact_intr on well.well_id= fact_intr.well_id
         where well.well_id = #{well_id}
     </select>
     <select id="getWellInfoList" parameterType="com.bowintek.practice.vo.query.WellInfoParams"
@@ -12,17 +27,17 @@
         select
         well.*,fact_daily.oil_prod_begin_date,fact_daily.oil_prod_recent_date,fact_daily.current_state,fact_daily.water_cut,
         fact_mon.oil_prod_mon,fact_mon.gas_prod_mon,fact_mon.gas_prod_year,fact_mon.oil_prod_year
-        from well_basic_information well
+        from public.well_basic_information well
         left join (
-        select daily.* from FACT_DWR_PC_PRO_WELL_VOL_DAILY daily
+        select daily.* from public.fact_dwr_pc_pro_well_vol_d daily
         inner join(
-        select well_id, max(prod_time) prod_time from FACT_DWR_PC_PRO_WELL_VOL_DAILY group by well_id
+        select well_id, max(prod_time) prod_time from public.fact_dwr_pc_pro_well_vol_d group by well_id
         ) maxdaily on daily.well_id=maxdaily.well_id and daily.prod_time=maxdaily.prod_time
         )fact_daily on well.well_id= fact_daily.well_id
         left join (
-        select mon.* from fact_dwr_pc_pro_well_vol_monthly mon
+        select mon.* from public.fact_dwr_pc_pro_well_vol_monthly mon
         inner join(
-        select well_id, max(prod_time) prod_time from fact_dwr_pc_pro_well_vol_monthly group by well_id
+        select well_id, max(prod_time) prod_time from public.fact_dwr_pc_pro_well_vol_monthly group by well_id
         ) maxmon on mon.well_id=maxmon.well_id and mon.prod_time=maxmon.prod_time
         )fact_mon on well.well_id= fact_mon.well_id
         where 1=1
@@ -64,17 +79,27 @@
     </select>
     <select id="selectBoreholeInterList" resultType="java.util.HashMap">
         select *
-        from fact_dwr_wl_ach_borehole_inter bi
+        from public.fact_dwr_wl_ach_borehole_inter bi
         where bi.well_id = #{well_id}
     </select>
     <select id="selectTestHistoryList" resultType="java.util.HashMap">
         select *
-        from dws_dm_test_history th
+        from public.dws_dm_test_history th
         where th.well_id = #{well_id}
     </select>
     <select id="selectAnalyticalAssaysList" resultType="java.util.HashMap">
         select *
-        from dws_dm_analytical_assays aa
+        from public.dws_dm_analytical_assays aa
         where aa.well_id = #{well_id}
     </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="selectDataIndexList" resultType="java.util.HashMap">
+        select *
+        from public.fact_dwr_well_data_index di
+        where di.well_id = #{well_id}
+    </select>
 </mapper>

+ 6 - 11
target/classes/generatorConfig.xml

@@ -4,7 +4,8 @@
 
 <generatorConfiguration>
     <!--mysql 连接数据库jar 这里选择自己本地位置-->
-    <classPathEntry location="./lib/postgresql-42.3.4.jar"/>
+   <!-- <classPathEntry location="./lib/postgresql-42.3.4.jar"/>-->
+    <classPathEntry location=".\lib\mysql-connector-java-5.1.46.jar"/>
     <context id="testTables" targetRuntime="MyBatis3">
         <!-- 运行环境配置 -->
         <!--<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>-->
@@ -17,20 +18,14 @@
             <property name="dateFormat" value="yyyy-MM-dd HH:mm:ss"/>
         </commentGenerator>
         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
-        <!-- mysql
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
-                        connectionURL="jdbc:mysql://192.168.0.29:3306/zci_db" userId="root"
-                        password="bowin123">
-        </jdbcConnection>
-        -->
-  <!--      <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                         connectionURL="jdbc:mysql://office.bowintek.com:3306/smartSearchDB?useSSL=false" userId="root"
-                        password="bowin123">-->
-        <jdbcConnection driverClass="org.postgresql.Driver"
+                        password="bowin123"/>
+      <!--  <jdbcConnection driverClass="org.postgresql.Driver"
                         connectionURL="jdbc:postgresql://office.bowintek.com:5432/postgres"
                         userId="postgres"
                         password="bowin123">
-        </jdbcConnection>
+        </jdbcConnection>-->
 
         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
@@ -123,6 +118,6 @@
             <columnOverride column="StandardMajorID" javaType="java.lang.Integer" jdbcType="INTEGER" />
             <table schema="" tableName="Sys_Log"><property name="useActualColumnNames" value="true"/></table>
         </table>-->
-        <table schema="" tableName="well_basic_information"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="wl_user_expend_setting"><property name="useActualColumnNames" value="true"/></table>
     </context>
 </generatorConfiguration>

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

@@ -56,3 +56,32 @@ export const analyticalAssaysColumns=[
   {title: '指标值', dataIndex: 'idx_value', key: 'idx_value', width: 120},
   {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},
+  {title: '开始时间', dataIndex: 'start_time', key: 'start_time', width: 120},
+  {title: '结束时间', dataIndex: 'end_time', key: 'end_time', width: 120},
+  {title: '施工简述', dataIndex: 'constr_description', key: 'constr_description', width: 120},
+  {title: '备注', dataIndex: 'remarks', key: 'remarks', width: 120},
+  {title: '生产井段', dataIndex: 'well_production_sections', key: 'well_production_sections', width: 120},
+  {title: '层位', dataIndex: 'formation_name', key: 'formation_name', width: 120},
+  {title: '井段顶深', dataIndex: 'top_md', key: 'top_md', width: 120},
+  {title: '井段底深', dataIndex: 'btm_md', key: 'btm_md', width: 120},
+  {title: '厚度', dataIndex: 'thickness', key: 'thickness', width: 120},
+  {title: '层序号', dataIndex: 'layer_no', key: 'layer_no', width: 120},
+  {title: '作业类型', dataIndex: 'working_type', key: 'working_type', width: 120},
+  {title: '作业工序名称', dataIndex: 'test_processes_name', key: 'test_processes_name', width: 120},
+  {title: '作业工作内容', dataIndex: 'worksummary', key: 'worksummary', width: 120},
+  {title: '施工次序', dataIndex: 'construct_no', key: 'construct_no', width: 120},
+  {title: '作业队伍', dataIndex: 'work_team', key: 'work_team', width: 120},
+  {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},
+  {title: '存储类型', dataIndex: 'storage_type', key: 'storage_type', width: 120}
+]

+ 236 - 192
vue/src/views/wellinfo/detail.vue

@@ -1,195 +1,216 @@
 <template>
 
- <div>
-   <a-card title="井史简介" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardSummary.expand" @click="cardSettings.cardSummary.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardSummary.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardSummary.expand" class="info-body">
-       <p>井名宁<span>13-23</span>构造位置<span>XXXXXXXX</span>,于<span>2015年02月03日</span>开钻,2015年08月22日完钻,采取<span>先期裸眼完并</span>方式完井。
-       </p>
+  <div>
+    <a-card title="井史简介" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardSummary.expand" @click="cardSettings.cardSummary.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardSummary.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardSummary.expand" class="info-body">
+        <p>井名<span>{{ dataModel.well_common_name }}</span>构造位置<span>{{
+            dataModel.structure_pos
+          }}</span>,于<span>{{ dataModel.spud_date }}</span>开钻,<span>{{ dataModel.end_drilling_date }}</span>完钻,采取<span>{{
+            dataModel.completion_method
+          }}</span>方式完井。
+        </p>
 
-       <p>投产于<span>2015年09月09日</span>,生产层位<span>XXX</span>层位 <span>2023年10月27日</span>进行最近一次流压测试,油层中部压力<span>33.4</span>MPa,中部温度<span>166.85</span>°C,<span>2023年11月07日</span>,油嘴<span>6.5</span>mm,
-       </p>
-       <p>
-         油压<span>14.66</span>MPa,套压<span>0.4</span>MPa,日产液量<span>38.2</span>t/d,日产油量<span>22.58</span>t/d,含水<span>40.88</span>%,动液面<span>788</span>m,截止目前累产油<span>290594.34</span>吨。
-       </p>
-     </div>
-   </a-card>
-   <a-card title="生产动态" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardChat.expand" @click="cardSettings.cardChat.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardChat.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardChat.expand">
-       <p>Card content</p>
-       <p>Card content</p>
-       <p>Card content</p>
-     </div>
-   </a-card>
-   <a-card title="基本信息" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardBaseInfo.expand" @click="cardSettings.cardBaseInfo.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardBaseInfo.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <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 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>
-         <a-descriptions-item label="开钻日期:">{{dataModel.spud_date }}</a-descriptions-item>
-         <a-descriptions-item label="完钻日期:">{{dataModel.end_drilling_date }}</a-descriptions-item>
-         <a-descriptions-item label="设计井深:">{{dataModel.budgeted_md }}</a-descriptions-item>
-         <a-descriptions-item label="完钻层位:">{{dataModel.completion_formation }}</a-descriptions-item>
-         <a-descriptions-item label="完井方式:">{{dataModel.completion_method }}</a-descriptions-item>
-       </a-descriptions>
-       <a-divider type="vertical" class="info-title" dashed>井信息</a-divider>
-       <a-descriptions bordered>
-         <a-descriptions-item 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>
-         <a-descriptions-item label="构造位置描述:" :span="3">{{dataModel.structure_pos }}</a-descriptions-item>
-         <a-descriptions-item label="创建/更新日期:">
-           {{dataModel.update_date == null ? dataModel.create_date : dataModel.update_date }}
-         </a-descriptions-item>
-         <a-descriptions-item label="井筒生命阶段:">{{dataModel.phase }}</a-descriptions-item>
-         <a-descriptions-item label="通用井筒名:">{{dataModel.wellbore_common_name }}</a-descriptions-item>
-         <a-descriptions-item label="目的层:">{{dataModel.target_formation }}</a-descriptions-item>
-         <a-descriptions-item label="审定测量深度:">{{dataModel.authorized_md }}</a-descriptions-item>
-         <a-descriptions-item label="审定真垂直深度:">{{dataModel.authorized_tvd }}</a-descriptions-item>
+        <p>投产于<span>{{ dataModel.start_prod_date }}</span>,生产层位<span>{{ dataModel.prod_horizon }}</span>层位
+          <span>{{ dataModel.recent_testing_date }}</span>进行最近一次<span>{{ dataModel.recent_testing_name }}</span>测试,最近一次产油时间<span>{{
+              dataModel.recent_prod_date
+            }}</span>,油嘴<span>{{ dataModel.oil_nozzle }}</span>mm,
+        </p>
+        <p>
+          油压<span>{{ dataModel.tubing_pres }}</span>MPa,套压<span>{{
+            dataModel.casing_pres
+          }}</span>MPa,日产液量<span>{{ dataModel.fluid_prod_daily }}</span>t/d,日产油量<span>{{
+            dataModel.oil_prod_daily
+          }}</span>t/d,含水<span>{{ dataModel.water_cut }}</span>%,动液面<span>{{ dataModel.start_pump_liq_level }}</span>m,截止目前累产油<span>{{
+            dataModel.oil_prod_cum
+          }}</span>吨。
+        </p>
+      </div>
+    </a-card>
+    <a-card title="生产动态" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardChat.expand" @click="cardSettings.cardChat.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardChat.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardChat.expand">
+        <p>Card content</p>
+        <p>Card content</p>
+        <p>Card content</p>
+      </div>
+    </a-card>
+    <a-card title="基本信息" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardBaseInfo.expand" @click="cardSettings.cardBaseInfo.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardBaseInfo.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <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 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>
+          <a-descriptions-item label="开钻日期:">{{ dataModel.spud_date }}</a-descriptions-item>
+          <a-descriptions-item label="完钻日期:">{{ dataModel.end_drilling_date }}</a-descriptions-item>
+          <a-descriptions-item label="设计井深:">{{ dataModel.budgeted_md }}</a-descriptions-item>
+          <a-descriptions-item label="完钻层位:">{{ dataModel.completion_formation }}</a-descriptions-item>
+          <a-descriptions-item label="完井方式:">{{ dataModel.completion_method }}</a-descriptions-item>
+        </a-descriptions>
+        <a-divider type="vertical" class="info-title" dashed>井信息</a-divider>
+        <a-descriptions bordered>
+          <a-descriptions-item 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>
+          <a-descriptions-item label="构造位置描述:" :span="3">{{ dataModel.structure_pos }}</a-descriptions-item>
+          <a-descriptions-item label="创建/更新日期:">
+            {{ dataModel.update_date == null ? dataModel.create_date : dataModel.update_date }}
+          </a-descriptions-item>
+          <a-descriptions-item label="井筒生命阶段:">{{ dataModel.phase }}</a-descriptions-item>
+          <a-descriptions-item label="通用井筒名:">{{ dataModel.wellbore_common_name }}</a-descriptions-item>
+          <a-descriptions-item label="目的层:">{{ dataModel.target_formation }}</a-descriptions-item>
+          <a-descriptions-item label="审定测量深度:">{{ dataModel.authorized_md }}</a-descriptions-item>
+          <a-descriptions-item label="审定真垂直深度:">{{ dataModel.authorized_tvd }}</a-descriptions-item>
 
-         <a-descriptions-item label="井底测量深度:">{{dataModel.bh_md }}</a-descriptions-item>
-         <a-descriptions-item label="井底位置描述信息:" :span="2">{{dataModel.geo_description_bh }}</a-descriptions-item>
-         <a-descriptions-item label="井底真垂直深度:">{{dataModel.bh_tvd }}</a-descriptions-item>
-         <a-descriptions-item label="相对于参考面的造斜点深度:">{{dataModel.ko_md }}</a-descriptions-item>
-         <a-descriptions-item label="实际造斜点真垂直深度:">{{dataModel.ko_tvd }}</a-descriptions-item>
-         <a-descriptions-item label="地质单元:">{{dataModel.project_name }}</a-descriptions-item>
-         <a-descriptions-item label="单元类型:">{{dataModel.project_type }}</a-descriptions-item>
-         <a-descriptions-item label="单元等级:">{{dataModel.project_level }}</a-descriptions-item>
-         <a-descriptions-item label="备注:" :span="3">{{dataModel.remarks }}</a-descriptions-item>
-       </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 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>
-         <a-descriptions-item label="标准区块:">{{dataModel.bz_qkdy }}</a-descriptions-item>
-         <a-descriptions-item label="标准组织机构:">{{dataModel.bz_org_name }}</a-descriptions-item>
-         <a-descriptions-item label="标准作业区名:">{{dataModel.bz_dwmc }}</a-descriptions-item>
-       </a-descriptions>
-     </div>
-   </a-card>
-   <a-card title="业务解释" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardExplain.expand" @click="cardSettings.cardExplain.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardExplain.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardExplain.expand">
-       <a-table :columns="boreholeInterColumns" :data-source="boreholeInterList" :scroll="{ x:'100%', y: 500 }"
-                :pagination="false"
-                bordered>
-       </a-table>
-     </div>
-   </a-card>
-   <a-card title="相关文档" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardFile.expand" @click="cardSettings.cardFile.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardFile.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardFile.expand">
-       <p>Card content</p>
-       <p>Card content</p>
-       <p>Card content</p>
-     </div>
-   </a-card>
-   <a-card title="测试历史" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardTest.expand" @click="cardSettings.cardTest.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardTest.expand=true"
-                           :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>
-       <a-table :columns="testHistoryColumns" :data-source="testHistoryList" :scroll="{ x:'100%', y: 500 }"
-                :pagination="false"
-                bordered>
-       </a-table>
-     </div>
-   </a-card>
-   <a-card title="分析化验" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardAnalysis.expand" @click="cardSettings.cardAnalysis.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardAnalysis.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardAnalysis.expand">
-       <p>
-       本井共实监原油全分析共90组,原油族组份分析12组,天然气全分析47组,B2S含量分析19组,油田水分析2组,PVT分析3组:
-       </p>
-       <br>
-       <a-table :columns="analyticalAssaysColumns" :data-source="analyticalAssaysList" :scroll="{ x:'100%', y: 500 }"
-                :pagination="false"
-                bordered>
-       </a-table>
-     </div>
-   </a-card>
-   <a-card title="作业简史(业务过程)" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardWork.expand" @click="cardSettings.cardWork.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardWork.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardWork.expand">
-       哈23-12井井实施井下作业施工1次,其中油管测试1次;2015年08月23日油管测试,油管测试井段7458m-7613.05m
-       <p>Card content</p>
-       <p>Card content</p>
-       <p>Card content</p>
-     </div>
-   </a-card>
-   <a-card title="GIS地图" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
-     <template #extra>
-       <UpSquareOutlined v-if="cardSettings.cardGIS.expand" @click="cardSettings.cardGIS.expand=false"
-                         :style="cardSettings.buttonStyle"/>
-       <DownSquareOutlined v-else @click="cardSettings.cardGIS.expand=true"
-                           :style="cardSettings.buttonStyle"/>
-     </template>
-     <div v-if="cardSettings.cardGIS.expand">
-       哈23-12井井实施井下作业施工1次,其中油管测试1次;2015年08月23日油管测试,油管测试井段7458m-7613.05m
-       <p>Card content</p>
-       <p>Card content</p>
-       <p>Card content</p>
-     </div>
-   </a-card>
- </div>
+          <a-descriptions-item label="井底测量深度:">{{ dataModel.bh_md }}</a-descriptions-item>
+          <a-descriptions-item label="井底位置描述信息:" :span="2">{{ dataModel.geo_description_bh }}</a-descriptions-item>
+          <a-descriptions-item label="井底真垂直深度:">{{ dataModel.bh_tvd }}</a-descriptions-item>
+          <a-descriptions-item label="相对于参考面的造斜点深度:">{{ dataModel.ko_md }}</a-descriptions-item>
+          <a-descriptions-item label="实际造斜点真垂直深度:">{{ dataModel.ko_tvd }}</a-descriptions-item>
+          <a-descriptions-item label="地质单元:">{{ dataModel.project_name }}</a-descriptions-item>
+          <a-descriptions-item label="单元类型:">{{ dataModel.project_type }}</a-descriptions-item>
+          <a-descriptions-item label="单元等级:">{{ dataModel.project_level }}</a-descriptions-item>
+          <a-descriptions-item label="备注:" :span="3">{{ dataModel.remarks }}</a-descriptions-item>
+        </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 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>
+          <a-descriptions-item label="标准区块:">{{ dataModel.bz_qkdy }}</a-descriptions-item>
+          <a-descriptions-item label="标准组织机构:">{{ dataModel.bz_org_name }}</a-descriptions-item>
+          <a-descriptions-item label="标准作业区名:">{{ dataModel.bz_dwmc }}</a-descriptions-item>
+        </a-descriptions>
+      </div>
+    </a-card>
+    <a-card title="业务解释" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardExplain.expand" @click="cardSettings.cardExplain.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardExplain.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardExplain.expand">
+        <a-table :columns="boreholeInterColumns" :data-source="boreholeInterList" :scroll="{ x:'100%', y: 500 }"
+                 :pagination="false"
+                 bordered>
+        </a-table>
+      </div>
+    </a-card>
+    <a-card title="相关文档" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardFile.expand" @click="cardSettings.cardFile.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardFile.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardFile.expand">
+        <a-table :columns="dataIndexColumns" :data-source="dataIndexList" :scroll="{ x:'100%', y: 500 }"
+                 :pagination="false"
+                 bordered>
+          <template #bodyCell="{ column,record }">
+            <template v-if="column.key === 'file_name'">
+              <a>{{ record.file_name }}</a>
+            </template>
+          </template>
+        </a-table>
+      </div>
+    </a-card>
+    <a-card title="测试历史" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardTest.expand" @click="cardSettings.cardTest.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardTest.expand=true"
+                            :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>
+        <a-table :columns="testHistoryColumns" :data-source="testHistoryList" :scroll="{ x:'100%', y: 500 }"
+                 :pagination="false"
+                 bordered>
+        </a-table>
+      </div>
+    </a-card>
+    <a-card title="分析化验" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardAnalysis.expand" @click="cardSettings.cardAnalysis.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardAnalysis.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardAnalysis.expand">
+        <p>
+          本井共实监原油全分析共90组,原油族组份分析12组,天然气全分析47组,B2S含量分析19组,油田水分析2组,PVT分析3组:
+        </p>
+        <br>
+        <a-table :columns="analyticalAssaysColumns" :data-source="analyticalAssaysList" :scroll="{ x:'100%', y: 500 }"
+                 :pagination="false"
+                 bordered>
+        </a-table>
+      </div>
+    </a-card>
+    <a-card title="作业简史(业务过程)" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardWork.expand" @click="cardSettings.cardWork.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardWork.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardWork.expand">
+        <p>哈23-12井井实施井下作业施工1次,其中油管测试1次;2015年08月23日油管测试,油管测试井段7458m-7613.05m</p>
+        <br/>
+        <a-table :columns="historyAssignmentColumns" :data-source="historyAssignmentList" :scroll="{ x:'100%', y: 500 }"
+                 :pagination="false"
+                 bordered>
+        </a-table>
+      </div>
+    </a-card>
+    <a-card title="GIS地图" :bordered="false" :headStyle="cardSettings.cardHeadStyle" class="card-detail">
+      <template #extra>
+        <UpSquareOutlined v-if="cardSettings.cardGIS.expand" @click="cardSettings.cardGIS.expand=false"
+                          :style="cardSettings.buttonStyle"/>
+        <DownSquareOutlined v-else @click="cardSettings.cardGIS.expand=true"
+                            :style="cardSettings.buttonStyle"/>
+      </template>
+      <div v-if="cardSettings.cardGIS.expand">
+        哈23-12井井实施井下作业施工1次,其中油管测试1次;2015年08月23日油管测试,油管测试井段7458m-7613.05m
+        <p>Card content</p>
+        <p>Card content</p>
+        <p>Card content</p>
+      </div>
+    </a-card>
+  </div>
 </template>
 <script lang="ts">
-import {ref, defineComponent, toRefs, reactive} from 'vue';
-import {get} from "@/api/common";
+import {ref, defineComponent, toRefs, reactive, watch} from 'vue';
+import {get, postData} from "@/api/common";
 import {useTabsViewStore} from "@/store/modules/tabsView";
 import dayjs from "dayjs";
 import {useRoute} from "vue-router";
 import router from "@/router";
-import {boreholeInterColumns,testHistoryColumns,analyticalAssaysColumns} from './columns';
+import * as columns from './columns';
 
 export default defineComponent({
   name: 'wellinfoDetail',
@@ -210,22 +231,38 @@ export default defineComponent({
       cardWork: {expand: true},
       cardGIS: {expand: true}
     })
+    watch(
+      () => cardSettings,
+      () => {
+        let id = history.state.params?.id ?? wellData.dataModel.well_id;
+        postData('wellInfo/saveExpendSetting', {well_id: id, setting_json: JSON.stringify(cardSettings.value)});
+      }, {deep: true, immediate: false}
+    );
     const wellData = reactive({
-      dataModel:{},
-      boreholeInterList:[],
-      testHistoryList:[],
-      analyticalAssaysList:[]
+      dataModel: {well_id: null},
+      boreholeInterList: [],
+      testHistoryList: [],
+      analyticalAssaysList: [],
+      historyAssignmentList: [],
+      dataIndexList: []
     });
 
     const loadData = async (id) => {
       if (id == undefined) {
         return;
       }
-      get('wellInfo/getWellInfo',{well_id: id}).then(data => {
+      get('wellInfo/getWellInfo', {well_id: id}).then(data => {
         wellData.dataModel = data.dataModel;
-        wellData.boreholeInterList =data.boreholeInterList;
-        wellData.testHistoryList=data.testHistoryList;
-        wellData.analyticalAssaysList=data.analyticalAssaysList;
+        wellData.boreholeInterList = data.boreholeInterList;
+        wellData.testHistoryList = data.testHistoryList;
+        wellData.analyticalAssaysList = data.analyticalAssaysList;
+        wellData.historyAssignmentList = data.historyAssignmentList;
+        wellData.dataIndexList = data.dataIndexList;
+      })
+      get('wellInfo/getExpendSetting', {wellId: id}).then(data => {
+        if (data != null) {
+          cardSettings.value = JSON.parse(data.setting_json);
+        }
       })
     }
     const onClose = () => {
@@ -236,12 +273,15 @@ export default defineComponent({
     return {
       ...toRefs(wellData),
       loadData, cardSettings,
-      onClose,boreholeInterColumns,testHistoryColumns,analyticalAssaysColumns,
+      onClose, ...columns,
       dayjs
     };
   },
   created() {
     const id = history.state.params?.id;
+    if (id == undefined) {
+      this.onClose();
+    }
     this.loadData(id);
   }
 });
@@ -251,13 +291,17 @@ export default defineComponent({
 .card-detail {
   width: 100%;
   margin-top: 10px;
+
+  a {
+    color: #3a7be0;
+  }
 }
 
 .info-body {
   line-height: 30px;
 
   span {
-    color: #4E61D0
+    color: #3a7be0
   }
 }
 

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

@@ -229,7 +229,7 @@ export default defineComponent({
     const selectedRowKeys = ref([]);
     const activeTab = ref("1");
     const showTree = ref(true);
-    const data = ref([]);
+    const data = ref([{children: [], label: '', value: ''}]);
     const viewModel = ref("list");
     const tabsViewStore = useTabsViewStore();
     const wellTypeList = ref([{label: "直井", value: "直井"}, {label: "定向井", value: "定向井"}, {label: "分支井", value: "分支井"}]);