Browse Source

购物车

xiaoqiao 9 months ago
parent
commit
0617ca09e7
28 changed files with 4968 additions and 1057 deletions
  1. 910 434
      lib/华北油田Ai检索.PDM
  2. 925 442
      lib/华北油田Ai检索.pdb
  3. 34 0
      src/main/java/com/bowintek/practice/controller/ApplyFormController.java
  4. 30 0
      src/main/java/com/bowintek/practice/mapper/CfApplyFormMapper.java
  5. 30 0
      src/main/java/com/bowintek/practice/mapper/CfApplyFormReviewerMapper.java
  6. 30 0
      src/main/java/com/bowintek/practice/mapper/CfApplyFormWellFileMapper.java
  7. 65 0
      src/main/java/com/bowintek/practice/model/CfApplyForm.java
  8. 600 0
      src/main/java/com/bowintek/practice/model/CfApplyFormExample.java
  9. 75 0
      src/main/java/com/bowintek/practice/model/CfApplyFormReviewer.java
  10. 670 0
      src/main/java/com/bowintek/practice/model/CfApplyFormReviewerExample.java
  11. 43 0
      src/main/java/com/bowintek/practice/model/CfApplyFormWellFile.java
  12. 479 0
      src/main/java/com/bowintek/practice/model/CfApplyFormWellFileExample.java
  13. 61 0
      src/main/java/com/bowintek/practice/services/impl/ApplyFormServiceImpl.java
  14. 9 0
      src/main/java/com/bowintek/practice/services/service/ApplyFormService.java
  15. 4 4
      src/main/resources/application.yml
  16. 5 3
      src/main/resources/generatorConfig.xml
  17. 228 0
      src/main/resources/mapping/CfApplyFormMapper.xml
  18. 244 0
      src/main/resources/mapping/CfApplyFormReviewerMapper.xml
  19. 196 0
      src/main/resources/mapping/CfApplyFormWellFileMapper.xml
  20. 4 4
      target/classes/application.yml
  21. 5 3
      target/classes/generatorConfig.xml
  22. 2 2
      vue/src/components/basic/chart/chart-map.vue
  23. 1 1
      vue/src/layout/tabs/feedback.vue
  24. 2 1
      vue/src/plugins/antd.ts
  25. 23 23
      vue/src/views/query/index.vue
  26. 8 8
      vue/src/views/wellinfo/detail.vue
  27. 176 132
      vue/src/views/wellinfo/index.vue
  28. 109 0
      vue/src/views/wellinfo/shoppingcart.vue

File diff suppressed because it is too large
+ 910 - 434
lib/华北油田Ai检索.PDM


File diff suppressed because it is too large
+ 925 - 442
lib/华北油田Ai检索.pdb


+ 34 - 0
src/main/java/com/bowintek/practice/controller/ApplyFormController.java

@@ -0,0 +1,34 @@
+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.CfApplyFormWellFile;
+import com.bowintek.practice.services.service.AccountService;
+import com.bowintek.practice.services.service.ApplyFormService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/applyForm")
+public class ApplyFormController {
+    @Autowired
+    private AccountService accountService;
+    @Autowired
+    private ApplyFormService applyFormService;
+
+    @ResponseBody
+    @PostMapping("/submit")
+    public BaseResponse submit(@RequestBody JSONObject reqMap) {
+        int count = 0;
+        try {
+            List<CfApplyFormWellFile> docList = reqMap.getJSONArray("docList").toJavaList(CfApplyFormWellFile.class);
+            count = applyFormService.submit(docList, accountService.getLoginUserID(), accountService.getUserByUserID(accountService.getLoginUserID()).name);
+        } catch (Exception e) {
+            return RespGenerstor.fail("-1", "程序异常:" + e.getMessage());
+        }
+        return RespGenerstor.success(count);
+    }
+}

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

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

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

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

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

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

+ 65 - 0
src/main/java/com/bowintek/practice/model/CfApplyForm.java

@@ -0,0 +1,65 @@
+package com.bowintek.practice.model;
+
+import java.util.Date;
+
+public class CfApplyForm {
+    private String applyId;
+
+    private String applyUserId;
+
+    private String applyUserName;
+
+    private Integer status;
+
+    private Date applyDate;
+
+    private String reason;
+
+    public String getApplyId() {
+        return applyId;
+    }
+
+    public void setApplyId(String applyId) {
+        this.applyId = applyId == null ? null : applyId.trim();
+    }
+
+    public String getApplyUserId() {
+        return applyUserId;
+    }
+
+    public void setApplyUserId(String applyUserId) {
+        this.applyUserId = applyUserId == null ? null : applyUserId.trim();
+    }
+
+    public String getApplyUserName() {
+        return applyUserName;
+    }
+
+    public void setApplyUserName(String applyUserName) {
+        this.applyUserName = applyUserName == null ? null : applyUserName.trim();
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getApplyDate() {
+        return applyDate;
+    }
+
+    public void setApplyDate(Date applyDate) {
+        this.applyDate = applyDate;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason == null ? null : reason.trim();
+    }
+}

+ 600 - 0
src/main/java/com/bowintek/practice/model/CfApplyFormExample.java

@@ -0,0 +1,600 @@
+package com.bowintek.practice.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class CfApplyFormExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public CfApplyFormExample() {
+        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 andApplyIdIsNull() {
+            addCriterion("applyId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIsNotNull() {
+            addCriterion("applyId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdEqualTo(String value) {
+            addCriterion("applyId =", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotEqualTo(String value) {
+            addCriterion("applyId <>", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThan(String value) {
+            addCriterion("applyId >", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThanOrEqualTo(String value) {
+            addCriterion("applyId >=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThan(String value) {
+            addCriterion("applyId <", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThanOrEqualTo(String value) {
+            addCriterion("applyId <=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLike(String value) {
+            addCriterion("applyId like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotLike(String value) {
+            addCriterion("applyId not like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIn(List<String> values) {
+            addCriterion("applyId in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotIn(List<String> values) {
+            addCriterion("applyId not in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdBetween(String value1, String value2) {
+            addCriterion("applyId between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotBetween(String value1, String value2) {
+            addCriterion("applyId not between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdIsNull() {
+            addCriterion("applyUserId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdIsNotNull() {
+            addCriterion("applyUserId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdEqualTo(String value) {
+            addCriterion("applyUserId =", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdNotEqualTo(String value) {
+            addCriterion("applyUserId <>", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdGreaterThan(String value) {
+            addCriterion("applyUserId >", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("applyUserId >=", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdLessThan(String value) {
+            addCriterion("applyUserId <", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdLessThanOrEqualTo(String value) {
+            addCriterion("applyUserId <=", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdLike(String value) {
+            addCriterion("applyUserId like", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdNotLike(String value) {
+            addCriterion("applyUserId not like", value, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdIn(List<String> values) {
+            addCriterion("applyUserId in", values, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdNotIn(List<String> values) {
+            addCriterion("applyUserId not in", values, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdBetween(String value1, String value2) {
+            addCriterion("applyUserId between", value1, value2, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserIdNotBetween(String value1, String value2) {
+            addCriterion("applyUserId not between", value1, value2, "applyUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameIsNull() {
+            addCriterion("applyUserName is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameIsNotNull() {
+            addCriterion("applyUserName is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameEqualTo(String value) {
+            addCriterion("applyUserName =", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameNotEqualTo(String value) {
+            addCriterion("applyUserName <>", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameGreaterThan(String value) {
+            addCriterion("applyUserName >", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameGreaterThanOrEqualTo(String value) {
+            addCriterion("applyUserName >=", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameLessThan(String value) {
+            addCriterion("applyUserName <", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameLessThanOrEqualTo(String value) {
+            addCriterion("applyUserName <=", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameLike(String value) {
+            addCriterion("applyUserName like", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameNotLike(String value) {
+            addCriterion("applyUserName not like", value, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameIn(List<String> values) {
+            addCriterion("applyUserName in", values, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameNotIn(List<String> values) {
+            addCriterion("applyUserName not in", values, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameBetween(String value1, String value2) {
+            addCriterion("applyUserName between", value1, value2, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyUserNameNotBetween(String value1, String value2) {
+            addCriterion("applyUserName not between", value1, value2, "applyUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNull() {
+            addCriterion("status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(Integer value) {
+            addCriterion("status =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(Integer value) {
+            addCriterion("status <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(Integer value) {
+            addCriterion("status >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
+            addCriterion("status >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(Integer value) {
+            addCriterion("status <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(Integer value) {
+            addCriterion("status <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<Integer> values) {
+            addCriterion("status in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<Integer> values) {
+            addCriterion("status not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(Integer value1, Integer value2) {
+            addCriterion("status between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
+            addCriterion("status not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateIsNull() {
+            addCriterion("applyDate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateIsNotNull() {
+            addCriterion("applyDate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateEqualTo(Date value) {
+            addCriterion("applyDate =", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateNotEqualTo(Date value) {
+            addCriterion("applyDate <>", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateGreaterThan(Date value) {
+            addCriterion("applyDate >", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateGreaterThanOrEqualTo(Date value) {
+            addCriterion("applyDate >=", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateLessThan(Date value) {
+            addCriterion("applyDate <", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateLessThanOrEqualTo(Date value) {
+            addCriterion("applyDate <=", value, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateIn(List<Date> values) {
+            addCriterion("applyDate in", values, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateNotIn(List<Date> values) {
+            addCriterion("applyDate not in", values, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateBetween(Date value1, Date value2) {
+            addCriterion("applyDate between", value1, value2, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyDateNotBetween(Date value1, Date value2) {
+            addCriterion("applyDate not between", value1, value2, "applyDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNull() {
+            addCriterion("reason is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIsNotNull() {
+            addCriterion("reason is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonEqualTo(String value) {
+            addCriterion("reason =", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotEqualTo(String value) {
+            addCriterion("reason <>", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThan(String value) {
+            addCriterion("reason >", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonGreaterThanOrEqualTo(String value) {
+            addCriterion("reason >=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThan(String value) {
+            addCriterion("reason <", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLessThanOrEqualTo(String value) {
+            addCriterion("reason <=", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonLike(String value) {
+            addCriterion("reason like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotLike(String value) {
+            addCriterion("reason not like", value, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonIn(List<String> values) {
+            addCriterion("reason in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotIn(List<String> values) {
+            addCriterion("reason not in", values, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonBetween(String value1, String value2) {
+            addCriterion("reason between", value1, value2, "reason");
+            return (Criteria) this;
+        }
+
+        public Criteria andReasonNotBetween(String value1, String value2) {
+            addCriterion("reason not between", value1, value2, "reason");
+            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);
+        }
+    }
+}

+ 75 - 0
src/main/java/com/bowintek/practice/model/CfApplyFormReviewer.java

@@ -0,0 +1,75 @@
+package com.bowintek.practice.model;
+
+import java.util.Date;
+
+public class CfApplyFormReviewer {
+    private String reviewerId;
+
+    private String applyId;
+
+    private String reviewerUserId;
+
+    private String reviewerUserName;
+
+    private Integer reviewerAction;
+
+    private String comments;
+
+    private Date reviewerDate;
+
+    public String getReviewerId() {
+        return reviewerId;
+    }
+
+    public void setReviewerId(String reviewerId) {
+        this.reviewerId = reviewerId == null ? null : reviewerId.trim();
+    }
+
+    public String getApplyId() {
+        return applyId;
+    }
+
+    public void setApplyId(String applyId) {
+        this.applyId = applyId == null ? null : applyId.trim();
+    }
+
+    public String getReviewerUserId() {
+        return reviewerUserId;
+    }
+
+    public void setReviewerUserId(String reviewerUserId) {
+        this.reviewerUserId = reviewerUserId == null ? null : reviewerUserId.trim();
+    }
+
+    public String getReviewerUserName() {
+        return reviewerUserName;
+    }
+
+    public void setReviewerUserName(String reviewerUserName) {
+        this.reviewerUserName = reviewerUserName == null ? null : reviewerUserName.trim();
+    }
+
+    public Integer getReviewerAction() {
+        return reviewerAction;
+    }
+
+    public void setReviewerAction(Integer reviewerAction) {
+        this.reviewerAction = reviewerAction;
+    }
+
+    public String getComments() {
+        return comments;
+    }
+
+    public void setComments(String comments) {
+        this.comments = comments == null ? null : comments.trim();
+    }
+
+    public Date getReviewerDate() {
+        return reviewerDate;
+    }
+
+    public void setReviewerDate(Date reviewerDate) {
+        this.reviewerDate = reviewerDate;
+    }
+}

+ 670 - 0
src/main/java/com/bowintek/practice/model/CfApplyFormReviewerExample.java

@@ -0,0 +1,670 @@
+package com.bowintek.practice.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class CfApplyFormReviewerExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public CfApplyFormReviewerExample() {
+        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 andReviewerIdIsNull() {
+            addCriterion("reviewerId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdIsNotNull() {
+            addCriterion("reviewerId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdEqualTo(String value) {
+            addCriterion("reviewerId =", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdNotEqualTo(String value) {
+            addCriterion("reviewerId <>", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdGreaterThan(String value) {
+            addCriterion("reviewerId >", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdGreaterThanOrEqualTo(String value) {
+            addCriterion("reviewerId >=", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdLessThan(String value) {
+            addCriterion("reviewerId <", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdLessThanOrEqualTo(String value) {
+            addCriterion("reviewerId <=", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdLike(String value) {
+            addCriterion("reviewerId like", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdNotLike(String value) {
+            addCriterion("reviewerId not like", value, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdIn(List<String> values) {
+            addCriterion("reviewerId in", values, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdNotIn(List<String> values) {
+            addCriterion("reviewerId not in", values, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdBetween(String value1, String value2) {
+            addCriterion("reviewerId between", value1, value2, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerIdNotBetween(String value1, String value2) {
+            addCriterion("reviewerId not between", value1, value2, "reviewerId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIsNull() {
+            addCriterion("applyId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIsNotNull() {
+            addCriterion("applyId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdEqualTo(String value) {
+            addCriterion("applyId =", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotEqualTo(String value) {
+            addCriterion("applyId <>", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThan(String value) {
+            addCriterion("applyId >", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThanOrEqualTo(String value) {
+            addCriterion("applyId >=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThan(String value) {
+            addCriterion("applyId <", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThanOrEqualTo(String value) {
+            addCriterion("applyId <=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLike(String value) {
+            addCriterion("applyId like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotLike(String value) {
+            addCriterion("applyId not like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIn(List<String> values) {
+            addCriterion("applyId in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotIn(List<String> values) {
+            addCriterion("applyId not in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdBetween(String value1, String value2) {
+            addCriterion("applyId between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotBetween(String value1, String value2) {
+            addCriterion("applyId not between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdIsNull() {
+            addCriterion("reviewerUserId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdIsNotNull() {
+            addCriterion("reviewerUserId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdEqualTo(String value) {
+            addCriterion("reviewerUserId =", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdNotEqualTo(String value) {
+            addCriterion("reviewerUserId <>", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdGreaterThan(String value) {
+            addCriterion("reviewerUserId >", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdGreaterThanOrEqualTo(String value) {
+            addCriterion("reviewerUserId >=", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdLessThan(String value) {
+            addCriterion("reviewerUserId <", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdLessThanOrEqualTo(String value) {
+            addCriterion("reviewerUserId <=", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdLike(String value) {
+            addCriterion("reviewerUserId like", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdNotLike(String value) {
+            addCriterion("reviewerUserId not like", value, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdIn(List<String> values) {
+            addCriterion("reviewerUserId in", values, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdNotIn(List<String> values) {
+            addCriterion("reviewerUserId not in", values, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdBetween(String value1, String value2) {
+            addCriterion("reviewerUserId between", value1, value2, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserIdNotBetween(String value1, String value2) {
+            addCriterion("reviewerUserId not between", value1, value2, "reviewerUserId");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameIsNull() {
+            addCriterion("reviewerUserName is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameIsNotNull() {
+            addCriterion("reviewerUserName is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameEqualTo(String value) {
+            addCriterion("reviewerUserName =", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameNotEqualTo(String value) {
+            addCriterion("reviewerUserName <>", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameGreaterThan(String value) {
+            addCriterion("reviewerUserName >", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameGreaterThanOrEqualTo(String value) {
+            addCriterion("reviewerUserName >=", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameLessThan(String value) {
+            addCriterion("reviewerUserName <", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameLessThanOrEqualTo(String value) {
+            addCriterion("reviewerUserName <=", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameLike(String value) {
+            addCriterion("reviewerUserName like", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameNotLike(String value) {
+            addCriterion("reviewerUserName not like", value, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameIn(List<String> values) {
+            addCriterion("reviewerUserName in", values, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameNotIn(List<String> values) {
+            addCriterion("reviewerUserName not in", values, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameBetween(String value1, String value2) {
+            addCriterion("reviewerUserName between", value1, value2, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerUserNameNotBetween(String value1, String value2) {
+            addCriterion("reviewerUserName not between", value1, value2, "reviewerUserName");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionIsNull() {
+            addCriterion("reviewerAction is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionIsNotNull() {
+            addCriterion("reviewerAction is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionEqualTo(Integer value) {
+            addCriterion("reviewerAction =", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionNotEqualTo(Integer value) {
+            addCriterion("reviewerAction <>", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionGreaterThan(Integer value) {
+            addCriterion("reviewerAction >", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionGreaterThanOrEqualTo(Integer value) {
+            addCriterion("reviewerAction >=", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionLessThan(Integer value) {
+            addCriterion("reviewerAction <", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionLessThanOrEqualTo(Integer value) {
+            addCriterion("reviewerAction <=", value, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionIn(List<Integer> values) {
+            addCriterion("reviewerAction in", values, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionNotIn(List<Integer> values) {
+            addCriterion("reviewerAction not in", values, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionBetween(Integer value1, Integer value2) {
+            addCriterion("reviewerAction between", value1, value2, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerActionNotBetween(Integer value1, Integer value2) {
+            addCriterion("reviewerAction not between", value1, value2, "reviewerAction");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsIsNull() {
+            addCriterion("comments is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsIsNotNull() {
+            addCriterion("comments is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsEqualTo(String value) {
+            addCriterion("comments =", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsNotEqualTo(String value) {
+            addCriterion("comments <>", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsGreaterThan(String value) {
+            addCriterion("comments >", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsGreaterThanOrEqualTo(String value) {
+            addCriterion("comments >=", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsLessThan(String value) {
+            addCriterion("comments <", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsLessThanOrEqualTo(String value) {
+            addCriterion("comments <=", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsLike(String value) {
+            addCriterion("comments like", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsNotLike(String value) {
+            addCriterion("comments not like", value, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsIn(List<String> values) {
+            addCriterion("comments in", values, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsNotIn(List<String> values) {
+            addCriterion("comments not in", values, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsBetween(String value1, String value2) {
+            addCriterion("comments between", value1, value2, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andCommentsNotBetween(String value1, String value2) {
+            addCriterion("comments not between", value1, value2, "comments");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateIsNull() {
+            addCriterion("reviewerDate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateIsNotNull() {
+            addCriterion("reviewerDate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateEqualTo(Date value) {
+            addCriterion("reviewerDate =", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateNotEqualTo(Date value) {
+            addCriterion("reviewerDate <>", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateGreaterThan(Date value) {
+            addCriterion("reviewerDate >", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateGreaterThanOrEqualTo(Date value) {
+            addCriterion("reviewerDate >=", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateLessThan(Date value) {
+            addCriterion("reviewerDate <", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateLessThanOrEqualTo(Date value) {
+            addCriterion("reviewerDate <=", value, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateIn(List<Date> values) {
+            addCriterion("reviewerDate in", values, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateNotIn(List<Date> values) {
+            addCriterion("reviewerDate not in", values, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateBetween(Date value1, Date value2) {
+            addCriterion("reviewerDate between", value1, value2, "reviewerDate");
+            return (Criteria) this;
+        }
+
+        public Criteria andReviewerDateNotBetween(Date value1, Date value2) {
+            addCriterion("reviewerDate not between", value1, value2, "reviewerDate");
+            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);
+        }
+    }
+}

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

@@ -0,0 +1,43 @@
+package com.bowintek.practice.model;
+
+public class CfApplyFormWellFile {
+    private String wellFileId;
+
+    private String applyId;
+
+    private String well_common_name;
+
+    private String file_name;
+
+    public String getWellFileId() {
+        return wellFileId;
+    }
+
+    public void setWellFileId(String wellFileId) {
+        this.wellFileId = wellFileId == null ? null : wellFileId.trim();
+    }
+
+    public String getApplyId() {
+        return applyId;
+    }
+
+    public void setApplyId(String applyId) {
+        this.applyId = applyId == null ? null : applyId.trim();
+    }
+
+    public String getWell_common_name() {
+        return well_common_name;
+    }
+
+    public void setWell_common_name(String well_common_name) {
+        this.well_common_name = well_common_name == null ? null : well_common_name.trim();
+    }
+
+    public String getFile_name() {
+        return file_name;
+    }
+
+    public void setFile_name(String file_name) {
+        this.file_name = file_name == null ? null : file_name.trim();
+    }
+}

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

@@ -0,0 +1,479 @@
+package com.bowintek.practice.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CfApplyFormWellFileExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public CfApplyFormWellFileExample() {
+        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 andWellFileIdIsNull() {
+            addCriterion("wellFileId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdIsNotNull() {
+            addCriterion("wellFileId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdEqualTo(String value) {
+            addCriterion("wellFileId =", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdNotEqualTo(String value) {
+            addCriterion("wellFileId <>", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdGreaterThan(String value) {
+            addCriterion("wellFileId >", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdGreaterThanOrEqualTo(String value) {
+            addCriterion("wellFileId >=", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdLessThan(String value) {
+            addCriterion("wellFileId <", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdLessThanOrEqualTo(String value) {
+            addCriterion("wellFileId <=", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdLike(String value) {
+            addCriterion("wellFileId like", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdNotLike(String value) {
+            addCriterion("wellFileId not like", value, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdIn(List<String> values) {
+            addCriterion("wellFileId in", values, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdNotIn(List<String> values) {
+            addCriterion("wellFileId not in", values, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdBetween(String value1, String value2) {
+            addCriterion("wellFileId between", value1, value2, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWellFileIdNotBetween(String value1, String value2) {
+            addCriterion("wellFileId not between", value1, value2, "wellFileId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIsNull() {
+            addCriterion("applyId is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIsNotNull() {
+            addCriterion("applyId is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdEqualTo(String value) {
+            addCriterion("applyId =", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotEqualTo(String value) {
+            addCriterion("applyId <>", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThan(String value) {
+            addCriterion("applyId >", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdGreaterThanOrEqualTo(String value) {
+            addCriterion("applyId >=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThan(String value) {
+            addCriterion("applyId <", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLessThanOrEqualTo(String value) {
+            addCriterion("applyId <=", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdLike(String value) {
+            addCriterion("applyId like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotLike(String value) {
+            addCriterion("applyId not like", value, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdIn(List<String> values) {
+            addCriterion("applyId in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotIn(List<String> values) {
+            addCriterion("applyId not in", values, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdBetween(String value1, String value2) {
+            addCriterion("applyId between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andApplyIdNotBetween(String value1, String value2) {
+            addCriterion("applyId not between", value1, value2, "applyId");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameIsNull() {
+            addCriterion("well_common_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameIsNotNull() {
+            addCriterion("well_common_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameEqualTo(String value) {
+            addCriterion("well_common_name =", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameNotEqualTo(String value) {
+            addCriterion("well_common_name <>", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameGreaterThan(String value) {
+            addCriterion("well_common_name >", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameGreaterThanOrEqualTo(String value) {
+            addCriterion("well_common_name >=", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameLessThan(String value) {
+            addCriterion("well_common_name <", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameLessThanOrEqualTo(String value) {
+            addCriterion("well_common_name <=", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameLike(String value) {
+            addCriterion("well_common_name like", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameNotLike(String value) {
+            addCriterion("well_common_name not like", value, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameIn(List<String> values) {
+            addCriterion("well_common_name in", values, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameNotIn(List<String> values) {
+            addCriterion("well_common_name not in", values, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameBetween(String value1, String value2) {
+            addCriterion("well_common_name between", value1, value2, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andWell_common_nameNotBetween(String value1, String value2) {
+            addCriterion("well_common_name not between", value1, value2, "well_common_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameIsNull() {
+            addCriterion("file_name is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameIsNotNull() {
+            addCriterion("file_name is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameEqualTo(String value) {
+            addCriterion("file_name =", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameNotEqualTo(String value) {
+            addCriterion("file_name <>", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameGreaterThan(String value) {
+            addCriterion("file_name >", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameGreaterThanOrEqualTo(String value) {
+            addCriterion("file_name >=", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameLessThan(String value) {
+            addCriterion("file_name <", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameLessThanOrEqualTo(String value) {
+            addCriterion("file_name <=", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameLike(String value) {
+            addCriterion("file_name like", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameNotLike(String value) {
+            addCriterion("file_name not like", value, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameIn(List<String> values) {
+            addCriterion("file_name in", values, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameNotIn(List<String> values) {
+            addCriterion("file_name not in", values, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameBetween(String value1, String value2) {
+            addCriterion("file_name between", value1, value2, "file_name");
+            return (Criteria) this;
+        }
+
+        public Criteria andFile_nameNotBetween(String value1, String value2) {
+            addCriterion("file_name not between", value1, value2, "file_name");
+            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);
+        }
+    }
+}

+ 61 - 0
src/main/java/com/bowintek/practice/services/impl/ApplyFormServiceImpl.java

@@ -0,0 +1,61 @@
+package com.bowintek.practice.services.impl;
+
+import com.bowintek.practice.mapper.CfApplyFormMapper;
+import com.bowintek.practice.mapper.CfApplyFormReviewerMapper;
+import com.bowintek.practice.mapper.CfApplyFormWellFileMapper;
+import com.bowintek.practice.model.CfApplyForm;
+import com.bowintek.practice.model.CfApplyFormReviewer;
+import com.bowintek.practice.model.CfApplyFormWellFile;
+import com.bowintek.practice.services.service.ApplyFormService;
+import com.bowintek.practice.services.service.system.RoleService;
+import com.bowintek.practice.vo.user.UserInfoModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+@Component
+public class ApplyFormServiceImpl implements ApplyFormService {
+
+    @Autowired
+    private CfApplyFormMapper applyFormMapper;
+    @Autowired
+    private CfApplyFormReviewerMapper reviewerMapper;
+    @Autowired
+    private CfApplyFormWellFileMapper wellFileMapper;
+    @Autowired
+    private RoleService roleService;
+
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    public int submit( List<CfApplyFormWellFile> docList,String userId,String userName){
+        CfApplyForm applyForm=new CfApplyForm();
+        applyForm.setApplyId(UUID.randomUUID().toString());
+        applyForm.setApplyDate(new Date());
+        applyForm.setStatus(1);
+        applyForm.setApplyUserId(userId);
+        applyForm.setApplyUserName(userName);
+        applyFormMapper.insert(applyForm);
+
+        docList.forEach(file->{
+            file.setWellFileId(UUID.randomUUID().toString());
+            file.setApplyId(applyForm.getApplyId());
+            wellFileMapper.insert(file);
+        });
+
+        List<UserInfoModel> roleUserList = roleService.selectRoleUserByRolename(new String[]{"文件管理员"});
+        roleUserList.forEach(user->{
+            CfApplyFormReviewer reviewer=new CfApplyFormReviewer();
+            reviewer.setReviewerId(UUID.randomUUID().toString());
+            reviewer.setApplyId(applyForm.getApplyId());
+            reviewer.setReviewerUserId(user.userId);
+            reviewer.setReviewerUserName(user.userName);
+            reviewerMapper.insert(reviewer);
+        });
+        return  1;
+    }
+}

+ 9 - 0
src/main/java/com/bowintek/practice/services/service/ApplyFormService.java

@@ -0,0 +1,9 @@
+package com.bowintek.practice.services.service;
+
+import com.bowintek.practice.model.CfApplyFormWellFile;
+
+import java.util.List;
+
+public interface ApplyFormService {
+    int submit(List<CfApplyFormWellFile> docList, String userId, String userName);
+}

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

@@ -12,15 +12,15 @@ spring:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver
     #基本属性
-    url: jdbc:mysql://office.bowintek.com:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://192.168.0.68:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
     #url: jdbc:mysql://office.bowintek.com:3306/practicedb?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
     username: root
-    password: bowin123
+    password: bowin@123
     smartsearch:
       # 数据源基本配置
       username: root
-      password: bowin123
-      url: jdbc:mysql://office.bowintek.com:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
+      password: bowin@123
+      url: jdbc:mysql://192.168.0.68:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
       driver-class-name: com.mysql.jdbc.Driver
     postgre:
       # 数据源基本配置

+ 5 - 3
src/main/resources/generatorConfig.xml

@@ -19,8 +19,8 @@
         </commentGenerator>
         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
-                        connectionURL="jdbc:mysql://office.bowintek.com:3306/smartSearchDB?useSSL=false" userId="root"
-                        password="bowin123"/>
+                        connectionURL="jdbc:mysql://office.bowintek.com:3306/smartsearchdb" userId="root"
+                        password="bowin@123"/>
       <!--  <jdbcConnection driverClass="org.postgresql.Driver"
                         connectionURL="jdbc:postgresql://office.bowintek.com:5432/postgres"
                         userId="postgres"
@@ -118,6 +118,8 @@
             <columnOverride column="StandardMajorID" javaType="java.lang.Integer" jdbcType="INTEGER" />
             <table schema="" tableName="Sys_Log"><property name="useActualColumnNames" value="true"/></table>
         </table>-->
-        <table schema="" tableName="sys_feedback"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form_reviewer"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form_well_file"><property name="useActualColumnNames" value="true"/></table>
     </context>
 </generatorConfiguration>

+ 228 - 0
src/main/resources/mapping/CfApplyFormMapper.xml

@@ -0,0 +1,228 @@
+<?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.CfApplyFormMapper">
+  <resultMap id="BaseResultMap" type="com.bowintek.practice.model.CfApplyForm">
+    <id column="applyId" jdbcType="VARCHAR" property="applyId" />
+    <result column="applyUserId" jdbcType="VARCHAR" property="applyUserId" />
+    <result column="applyUserName" jdbcType="VARCHAR" property="applyUserName" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="applyDate" jdbcType="TIMESTAMP" property="applyDate" />
+    <result column="reason" jdbcType="VARCHAR" property="reason" />
+  </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">
+    applyId, applyUserId, applyUserName, status, applyDate, reason
+  </sql>
+  <select id="selectByExample" parameterType="com.bowintek.practice.model.CfApplyFormExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from cf_apply_form
+    <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 cf_apply_form
+    where applyId = #{applyId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from cf_apply_form
+    where applyId = #{applyId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.bowintek.practice.model.CfApplyFormExample">
+    delete from cf_apply_form
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.bowintek.practice.model.CfApplyForm">
+    insert into cf_apply_form (applyId, applyUserId, applyUserName, 
+      status, applyDate, reason
+      )
+    values (#{applyId,jdbcType=VARCHAR}, #{applyUserId,jdbcType=VARCHAR}, #{applyUserName,jdbcType=VARCHAR}, 
+      #{status,jdbcType=INTEGER}, #{applyDate,jdbcType=TIMESTAMP}, #{reason,jdbcType=VARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.bowintek.practice.model.CfApplyForm">
+    insert into cf_apply_form
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="applyId != null">
+        applyId,
+      </if>
+      <if test="applyUserId != null">
+        applyUserId,
+      </if>
+      <if test="applyUserName != null">
+        applyUserName,
+      </if>
+      <if test="status != null">
+        status,
+      </if>
+      <if test="applyDate != null">
+        applyDate,
+      </if>
+      <if test="reason != null">
+        reason,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="applyId != null">
+        #{applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="applyUserId != null">
+        #{applyUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="applyUserName != null">
+        #{applyUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="applyDate != null">
+        #{applyDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="reason != null">
+        #{reason,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.bowintek.practice.model.CfApplyFormExample" resultType="java.lang.Long">
+    select count(*) from cf_apply_form
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update cf_apply_form
+    <set>
+      <if test="row.applyId != null">
+        applyId = #{row.applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.applyUserId != null">
+        applyUserId = #{row.applyUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.applyUserName != null">
+        applyUserName = #{row.applyUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="row.status != null">
+        status = #{row.status,jdbcType=INTEGER},
+      </if>
+      <if test="row.applyDate != null">
+        applyDate = #{row.applyDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="row.reason != null">
+        reason = #{row.reason,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update cf_apply_form
+    set applyId = #{row.applyId,jdbcType=VARCHAR},
+      applyUserId = #{row.applyUserId,jdbcType=VARCHAR},
+      applyUserName = #{row.applyUserName,jdbcType=VARCHAR},
+      status = #{row.status,jdbcType=INTEGER},
+      applyDate = #{row.applyDate,jdbcType=TIMESTAMP},
+      reason = #{row.reason,jdbcType=VARCHAR}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bowintek.practice.model.CfApplyForm">
+    update cf_apply_form
+    <set>
+      <if test="applyUserId != null">
+        applyUserId = #{applyUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="applyUserName != null">
+        applyUserName = #{applyUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        status = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="applyDate != null">
+        applyDate = #{applyDate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="reason != null">
+        reason = #{reason,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where applyId = #{applyId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bowintek.practice.model.CfApplyForm">
+    update cf_apply_form
+    set applyUserId = #{applyUserId,jdbcType=VARCHAR},
+      applyUserName = #{applyUserName,jdbcType=VARCHAR},
+      status = #{status,jdbcType=INTEGER},
+      applyDate = #{applyDate,jdbcType=TIMESTAMP},
+      reason = #{reason,jdbcType=VARCHAR}
+    where applyId = #{applyId,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 244 - 0
src/main/resources/mapping/CfApplyFormReviewerMapper.xml

@@ -0,0 +1,244 @@
+<?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.CfApplyFormReviewerMapper">
+  <resultMap id="BaseResultMap" type="com.bowintek.practice.model.CfApplyFormReviewer">
+    <id column="reviewerId" jdbcType="VARCHAR" property="reviewerId" />
+    <result column="applyId" jdbcType="VARCHAR" property="applyId" />
+    <result column="reviewerUserId" jdbcType="VARCHAR" property="reviewerUserId" />
+    <result column="reviewerUserName" jdbcType="VARCHAR" property="reviewerUserName" />
+    <result column="reviewerAction" jdbcType="INTEGER" property="reviewerAction" />
+    <result column="comments" jdbcType="VARCHAR" property="comments" />
+    <result column="reviewerDate" jdbcType="TIMESTAMP" property="reviewerDate" />
+  </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">
+    reviewerId, applyId, reviewerUserId, reviewerUserName, reviewerAction, comments, 
+    reviewerDate
+  </sql>
+  <select id="selectByExample" parameterType="com.bowintek.practice.model.CfApplyFormReviewerExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from cf_apply_form_reviewer
+    <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 cf_apply_form_reviewer
+    where reviewerId = #{reviewerId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from cf_apply_form_reviewer
+    where reviewerId = #{reviewerId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.bowintek.practice.model.CfApplyFormReviewerExample">
+    delete from cf_apply_form_reviewer
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.bowintek.practice.model.CfApplyFormReviewer">
+    insert into cf_apply_form_reviewer (reviewerId, applyId, reviewerUserId, 
+      reviewerUserName, reviewerAction, comments, 
+      reviewerDate)
+    values (#{reviewerId,jdbcType=VARCHAR}, #{applyId,jdbcType=VARCHAR}, #{reviewerUserId,jdbcType=VARCHAR}, 
+      #{reviewerUserName,jdbcType=VARCHAR}, #{reviewerAction,jdbcType=INTEGER}, #{comments,jdbcType=VARCHAR}, 
+      #{reviewerDate,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.bowintek.practice.model.CfApplyFormReviewer">
+    insert into cf_apply_form_reviewer
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="reviewerId != null">
+        reviewerId,
+      </if>
+      <if test="applyId != null">
+        applyId,
+      </if>
+      <if test="reviewerUserId != null">
+        reviewerUserId,
+      </if>
+      <if test="reviewerUserName != null">
+        reviewerUserName,
+      </if>
+      <if test="reviewerAction != null">
+        reviewerAction,
+      </if>
+      <if test="comments != null">
+        comments,
+      </if>
+      <if test="reviewerDate != null">
+        reviewerDate,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="reviewerId != null">
+        #{reviewerId,jdbcType=VARCHAR},
+      </if>
+      <if test="applyId != null">
+        #{applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerUserId != null">
+        #{reviewerUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerUserName != null">
+        #{reviewerUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerAction != null">
+        #{reviewerAction,jdbcType=INTEGER},
+      </if>
+      <if test="comments != null">
+        #{comments,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerDate != null">
+        #{reviewerDate,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.bowintek.practice.model.CfApplyFormReviewerExample" resultType="java.lang.Long">
+    select count(*) from cf_apply_form_reviewer
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update cf_apply_form_reviewer
+    <set>
+      <if test="row.reviewerId != null">
+        reviewerId = #{row.reviewerId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.applyId != null">
+        applyId = #{row.applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.reviewerUserId != null">
+        reviewerUserId = #{row.reviewerUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.reviewerUserName != null">
+        reviewerUserName = #{row.reviewerUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="row.reviewerAction != null">
+        reviewerAction = #{row.reviewerAction,jdbcType=INTEGER},
+      </if>
+      <if test="row.comments != null">
+        comments = #{row.comments,jdbcType=VARCHAR},
+      </if>
+      <if test="row.reviewerDate != null">
+        reviewerDate = #{row.reviewerDate,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update cf_apply_form_reviewer
+    set reviewerId = #{row.reviewerId,jdbcType=VARCHAR},
+      applyId = #{row.applyId,jdbcType=VARCHAR},
+      reviewerUserId = #{row.reviewerUserId,jdbcType=VARCHAR},
+      reviewerUserName = #{row.reviewerUserName,jdbcType=VARCHAR},
+      reviewerAction = #{row.reviewerAction,jdbcType=INTEGER},
+      comments = #{row.comments,jdbcType=VARCHAR},
+      reviewerDate = #{row.reviewerDate,jdbcType=TIMESTAMP}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bowintek.practice.model.CfApplyFormReviewer">
+    update cf_apply_form_reviewer
+    <set>
+      <if test="applyId != null">
+        applyId = #{applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerUserId != null">
+        reviewerUserId = #{reviewerUserId,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerUserName != null">
+        reviewerUserName = #{reviewerUserName,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerAction != null">
+        reviewerAction = #{reviewerAction,jdbcType=INTEGER},
+      </if>
+      <if test="comments != null">
+        comments = #{comments,jdbcType=VARCHAR},
+      </if>
+      <if test="reviewerDate != null">
+        reviewerDate = #{reviewerDate,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where reviewerId = #{reviewerId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bowintek.practice.model.CfApplyFormReviewer">
+    update cf_apply_form_reviewer
+    set applyId = #{applyId,jdbcType=VARCHAR},
+      reviewerUserId = #{reviewerUserId,jdbcType=VARCHAR},
+      reviewerUserName = #{reviewerUserName,jdbcType=VARCHAR},
+      reviewerAction = #{reviewerAction,jdbcType=INTEGER},
+      comments = #{comments,jdbcType=VARCHAR},
+      reviewerDate = #{reviewerDate,jdbcType=TIMESTAMP}
+    where reviewerId = #{reviewerId,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 196 - 0
src/main/resources/mapping/CfApplyFormWellFileMapper.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.CfApplyFormWellFileMapper">
+  <resultMap id="BaseResultMap" type="com.bowintek.practice.model.CfApplyFormWellFile">
+    <id column="wellFileId" jdbcType="VARCHAR" property="wellFileId" />
+    <result column="applyId" jdbcType="VARCHAR" property="applyId" />
+    <result column="well_common_name" jdbcType="VARCHAR" property="well_common_name" />
+    <result column="file_name" jdbcType="VARCHAR" property="file_name" />
+  </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">
+    wellFileId, applyId, well_common_name, file_name
+  </sql>
+  <select id="selectByExample" parameterType="com.bowintek.practice.model.CfApplyFormWellFileExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from cf_apply_form_well_file
+    <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 cf_apply_form_well_file
+    where wellFileId = #{wellFileId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from cf_apply_form_well_file
+    where wellFileId = #{wellFileId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.bowintek.practice.model.CfApplyFormWellFileExample">
+    delete from cf_apply_form_well_file
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.bowintek.practice.model.CfApplyFormWellFile">
+    insert into cf_apply_form_well_file (wellFileId, applyId, well_common_name, 
+      file_name)
+    values (#{wellFileId,jdbcType=VARCHAR}, #{applyId,jdbcType=VARCHAR}, #{well_common_name,jdbcType=VARCHAR}, 
+      #{file_name,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.bowintek.practice.model.CfApplyFormWellFile">
+    insert into cf_apply_form_well_file
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="wellFileId != null">
+        wellFileId,
+      </if>
+      <if test="applyId != null">
+        applyId,
+      </if>
+      <if test="well_common_name != null">
+        well_common_name,
+      </if>
+      <if test="file_name != null">
+        file_name,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="wellFileId != null">
+        #{wellFileId,jdbcType=VARCHAR},
+      </if>
+      <if test="applyId != null">
+        #{applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="well_common_name != null">
+        #{well_common_name,jdbcType=VARCHAR},
+      </if>
+      <if test="file_name != null">
+        #{file_name,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.bowintek.practice.model.CfApplyFormWellFileExample" resultType="java.lang.Long">
+    select count(*) from cf_apply_form_well_file
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update cf_apply_form_well_file
+    <set>
+      <if test="row.wellFileId != null">
+        wellFileId = #{row.wellFileId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.applyId != null">
+        applyId = #{row.applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="row.well_common_name != null">
+        well_common_name = #{row.well_common_name,jdbcType=VARCHAR},
+      </if>
+      <if test="row.file_name != null">
+        file_name = #{row.file_name,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update cf_apply_form_well_file
+    set wellFileId = #{row.wellFileId,jdbcType=VARCHAR},
+      applyId = #{row.applyId,jdbcType=VARCHAR},
+      well_common_name = #{row.well_common_name,jdbcType=VARCHAR},
+      file_name = #{row.file_name,jdbcType=VARCHAR}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.bowintek.practice.model.CfApplyFormWellFile">
+    update cf_apply_form_well_file
+    <set>
+      <if test="applyId != null">
+        applyId = #{applyId,jdbcType=VARCHAR},
+      </if>
+      <if test="well_common_name != null">
+        well_common_name = #{well_common_name,jdbcType=VARCHAR},
+      </if>
+      <if test="file_name != null">
+        file_name = #{file_name,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where wellFileId = #{wellFileId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.bowintek.practice.model.CfApplyFormWellFile">
+    update cf_apply_form_well_file
+    set applyId = #{applyId,jdbcType=VARCHAR},
+      well_common_name = #{well_common_name,jdbcType=VARCHAR},
+      file_name = #{file_name,jdbcType=VARCHAR}
+    where wellFileId = #{wellFileId,jdbcType=VARCHAR}
+  </update>
+</mapper>

+ 4 - 4
target/classes/application.yml

@@ -12,15 +12,15 @@ spring:
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver
     #基本属性
-    url: jdbc:mysql://office.bowintek.com:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://192.168.0.68:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
     #url: jdbc:mysql://office.bowintek.com:3306/practicedb?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true
     username: root
-    password: bowin123
+    password: bowin@123
     smartsearch:
       # 数据源基本配置
       username: root
-      password: bowin123
-      url: jdbc:mysql://office.bowintek.com:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
+      password: bowin@123
+      url: jdbc:mysql://192.168.0.68:3306/smartSearchDB?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
       driver-class-name: com.mysql.jdbc.Driver
     postgre:
       # 数据源基本配置

+ 5 - 3
target/classes/generatorConfig.xml

@@ -19,8 +19,8 @@
         </commentGenerator>
         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
-                        connectionURL="jdbc:mysql://office.bowintek.com:3306/smartSearchDB?useSSL=false" userId="root"
-                        password="bowin123"/>
+                        connectionURL="jdbc:mysql://office.bowintek.com:3306/smartsearchdb" userId="root"
+                        password="bowin@123"/>
       <!--  <jdbcConnection driverClass="org.postgresql.Driver"
                         connectionURL="jdbc:postgresql://office.bowintek.com:5432/postgres"
                         userId="postgres"
@@ -118,6 +118,8 @@
             <columnOverride column="StandardMajorID" javaType="java.lang.Integer" jdbcType="INTEGER" />
             <table schema="" tableName="Sys_Log"><property name="useActualColumnNames" value="true"/></table>
         </table>-->
-        <table schema="" tableName="sys_feedback"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form_reviewer"><property name="useActualColumnNames" value="true"/></table>
+        <table schema="" tableName="cf_apply_form_well_file"><property name="useActualColumnNames" value="true"/></table>
     </context>
 </generatorConfiguration>

+ 2 - 2
vue/src/components/basic/chart/chart-map.vue

@@ -149,7 +149,7 @@
   }
   .chart-map-iframe{
     position: relative;
-    top:-50px;
+    top:-10px;
     z-index: 10;
   }
   .chart-map-iframe2{
@@ -162,7 +162,7 @@
     width: 300px;
     height: 50px;
     left: 30px;
-    top: 30px;
+    top: 50px;
     z-index: 100;
   }
 

+ 1 - 1
vue/src/layout/tabs/feedback.vue

@@ -4,7 +4,7 @@
       <Form ref="modalFormRef" :model="dataModel" autocomplete="off" id="appAddModel">
         <a-form-item label=" 问题描述或建议" :label-col="{span:24}" name="content"
                      :rules="[{ required: true, message: '问题描述或建议!' }]">
-          <a-textarea :rows="5" v-model:value="dataModel.content" class="form-input" placeholder="请先阐明问题,然后在发送反馈"/>
+          <a-textarea :rows="5" v-model:value="dataModel.content" class="form-input" placeholder="请先阐明问题,然后在提交反馈"/>
         </a-form-item>
         <a-form-item label="上传图片" labelAlign="left" :label-col="{span:24}" name="iconId" extra="图片不能超过2MB">
           <div class="clearfix">

+ 2 - 1
vue/src/plugins/antd.ts

@@ -20,7 +20,7 @@ import {
   Space, Cascader,
   Tree,
   Transfer,Image,Progress,List,Avatar,Badge,Spin,Pagination,Popover,Tag,Timeline,Dropdown,
-  AutoComplete,TreeSelect
+  AutoComplete,TreeSelect,Layout
 } from 'ant-design-vue';
 import type { App } from 'vue';
 //导入组件库
@@ -44,6 +44,7 @@ export function setupAntd(app: App<Element>) {
   app.config.globalProperties.$antIcons = antIcons
 
   app
+    .use(Layout)
     .use(Form)
     .use(Input)
     .use(Modal)

+ 23 - 23
vue/src/views/query/index.vue

@@ -1,7 +1,7 @@
 <template>
-  <div class="query-index">
-    <div class="query-index-tree" v-if="showTree">
-      <div class="query-index-tree-search">
+  <div class="query-temp-index">
+    <div class="query-temp-index-tree" v-if="showTree">
+      <div class="query-temp-index-tree-search">
         <a-input-search
           v-model:value="subjectTrees.searchStr"
           placeholder="主题名称关键字..."
@@ -9,7 +9,7 @@
         />
         <DoubleLeftOutlined @click="showTree=false"/>
       </div>
-      <div class="query-index-tree-box">
+      <div class="query-temp-index-tree-box">
         <a-tree
           :show-line="true"
           :expandedKeys="subjectTrees.expandedKeys"
@@ -19,24 +19,24 @@
           @select="treeOnSelect">
           <template
             #title="{ title, key, subId, fieldCode, fieldId, fieldName, fieldAlias, dataType, subjectName, queryType, dictionaryCode }">
-            <div v-if="(fieldAlias)" class="query-index-tree-item"
+            <div v-if="(fieldAlias)" class="query-temp-index-tree-item"
             >{{ title }}
             </div>
-            <div v-else class="query-index-tree-item">{{ title }}</div>
+            <div v-else class="query-temp-index-tree-item">{{ title }}</div>
           </template>
         </a-tree>
       </div>
     </div>
-    <div class="query-index-close" v-else>
+    <div class="query-temp-index-close" v-else>
       <DoubleRightOutlined @click="showTree=true"/>
     </div>
-    <div class="query-index-content">
-      <div class="query-index-form">
+    <div class="query-temp-index-content">
+      <div class="query-temp-index-form">
         <a-form ref="formRef" name="fromQuery"
                 class="ant-advanced-search-form"
                 :label-col="labelCol"
                 :model="formState.temp">
-          <a-row :gutter="24" class="query-index-row">
+          <a-row :gutter="24" class="query-temp-index-row">
             <a-col :span="6">
               <a-form-item name="tempName"
                            :rules="[{ required: true, message: '请输入模板名称!' }]">
@@ -97,11 +97,11 @@
         </a-form>
       </div>
       <a-spin :spinning="loading">
-        <div class="query-index-table">
+        <div class="query-temp-index-table">
           <SelectColumn :tagId="formState.temp.tagId" :subId="formState.temp.subId"
                         :options="selectColumnOptions"
                         @checked="onColumnChecked"></SelectColumn>
-          <a-tabs v-model:activeKey="activeTab" class="query-index-tabs" @change="tabChange">
+          <a-tabs v-model:activeKey="activeTab" class="query-temp-index-tabs" @change="tabChange">
             <a-tab-pane key="1" tab="列表视图">
               <DisplayTable ref="display" :bases="formState.bases" :measures="formState.measures"
                             @displayChange="onDisplayChange"></DisplayTable>
@@ -405,43 +405,43 @@ export default defineComponent({
   background-color: #2dd36f;
 }
 
-.query-index {
+.query-temp-index {
   display: flex;
   flex-direction: row;
   min-height: 100%;
   background-color: white;
 }
 
-.query-index-tree {
+.query-temp-index-tree {
   min-width: 260px;
   border-right: 2px solid #f2f2f2;
   margin-right: 5px;
 }
 
-.query-index-close {
+.query-temp-index-close {
   width: 15px;
   padding-top: 10px;
   padding-left: 10px;
 }
 
-.query-index-content {
+.query-temp-index-content {
   flex-grow: 1;
   display: flex;
   flex-direction: column;
   width: 80%;
 }
 
-.query-index-form {
+.query-temp-index-form {
   padding: 15px 10px 10px 15px;
 }
 
-.query-index-table {
+.query-temp-index-table {
   flex-grow: 1;
   display: flex;
   width:100%;
 }
 
-.query-index-tabs {
+.query-temp-index-tabs {
   margin-left: 10px;
   margin-right: 10px;
   height: 100%;
@@ -452,26 +452,26 @@ export default defineComponent({
   padding: 0px;
 }
 
-.query-index-tree-item {
+.query-temp-index-tree-item {
   white-space: nowrap; /*强制span不换行*/
   display: inline-block; /*将span当做块级元素对待*/
   text-overflow: ellipsis; /*超出部分以点号代替*/
 }
 
-.query-index-tree-search {
+.query-temp-index-tree-search {
   padding: 5px;
   border-bottom: 2px solid #f2f2f2;
   display: flex;
   align-items: center;
 }
 
-.query-index-tree-box {
+.query-temp-index-tree-box {
   padding: 5px;
   padding-top: 10px;
   overflow: auto;
 }
 
-.query-index-row {
+.query-temp-index-row {
 
 }
 </style>

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

@@ -44,14 +44,14 @@
           <template v-if="dataModel.recent_prod_date">
             最近一次产油时间<span>{{ dataModel.recent_prod_date }}</span>,
           </template>
-          油嘴<span>{{ dataModel.oil_nozzle ?? 0 }}</span>mm
-          ,油压<span>{{ dataModel.tubing_pres ?? 0 }}</span>MPa
-          ,套压<span>{{ dataModel.casing_pres ?? 0 }}</span>MPa
-          ,日产液量<span>{{ dataModel.fluid_prod_daily ?? 0 }}</span>t/d
-          ,日产油量<span>{{ dataModel.oil_prod_daily ?? 0 }}</span>t/d
-          ,含水<span>{{ dataModel.water_cut ?? 0 }}</span>%
-          ,动液面<span>{{ dataModel.start_pump_liq_level ?? 0 }}</span>m
-          ,截止目前累产油<span>{{ dataModel.oil_prod_cum ?? 0 }}</span>吨。
+          油嘴<span>{{ dataModel.oil_nozzle ?? '--' }}</span>mm
+          ,油压<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>

+ 176 - 132
vue/src/views/wellinfo/index.vue

@@ -168,140 +168,145 @@
                   卡片
                 </a-radio-button>
               </a-radio-group>
+              <shopping-cart-outlined  @click="onShowCart" title="购物车" :style="{fontSize: '30px', color: '#08c',display:'contents'}"/>
             </a-col>
           </a-row>
         </a-form>
       </div>
-      <a-spin :spinning="loading">
-        <div class="query-index-table" v-if="viewModel=='list'">
-          <a-table :columns="filterColumns" :data-source="data" :scroll="{ x:'100%', y: 550 }"
-                   :row-key="record=>record.tempId" :pagination="false" @resizeColumn="handleResizeColumn"
-                   bordered>
-            <template #bodyCell="{ column,record }">
-              <template v-if="column.dataIndex === 'oil'">
-                <div style="height:25px">
-                  <ChartCell :timeType="('month')" :dataType="('oil')" :wellId="record.well_id"></ChartCell>
-                </div>
-              </template>
-              <template v-if="column.dataIndex === 'gas'">
-                <div style="height:25px">
-                  <ChartCell :timeType="('month')" :dataType="('gas')" :wellId="record.well_id"></ChartCell>
-                </div>
-              </template>
-              <template v-if="column.dataIndex === 'water'">
-                <div style="height:25px">
-                  <ChartCell :timeType="('month')" :dataType="('vol')" :wellId="record.well_id"></ChartCell>
-                </div>
-              </template>
-              <template v-if="column.key === 'well_common_name'">
-                <a-button type="link" size="small" @click="detail(record.well_id)">{{
-                    record.well_common_name
-                  }}
-                </a-button>
-              </template>
-              <template v-if="column.key === 'operation'">
-                <a-button type="link" size="small" @click="showDoc(record.well_id)">相关文档</a-button>
-              </template>
-            </template>
-          </a-table>
-        </div>
-        <div class="query-index-table" v-else>
-          <a-row :gutter="[24,8]">
-            <a-col :span="colspan" v-for="item in data">
-              <a-card :title="'井名:'+item.well_common_name" class="ant-card-index" bodyStyle="padding: 10px;">
-                <template #extra>
-                  <a-button type="link" @click="detail(item.well_id)">查看详情</a-button>
-                  <a-button type="link" @click="showDoc(item.well_id)">相关文档</a-button>
+      <div style="flex-grow: 1;overflow: auto;height: 500px;">
+        <a-spin :spinning="loading">
+          <div class="query-index-table" v-if="viewModel=='list'">
+            <a-table :columns="filterColumns" :data-source="data" :scroll="{ x:'100%', y: '100%' }"
+                     :row-key="record=>record.tempId" :pagination="false" @resizeColumn="handleResizeColumn"
+                     bordered>
+              <template #bodyCell="{ column,record }">
+                <template v-if="column.dataIndex === 'oil'">
+                  <div style="height:25px">
+                    <ChartCell :timeType="('month')" :dataType="('oil')" :wellId="record.well_id"></ChartCell>
+                  </div>
                 </template>
-                <table class="well-card-table">
-                  <tr>
-                    <th>井型:</th>
-                    <td>{{ item.well_type }}</td>
-                    <th>状态:</th>
-                    <td>{{ item.current_state_name }}</td>
-                  </tr>
-                  <tr>
-                    <th>开钻日期:</th>
-                    <td>{{ item.spud_date }}</td>
-                    <th>含水率:</th>
-                    <td><span style="padding:2px 10px;" :class="getTdColor( item.water_cut)">{{ item.water_cut }}</span>
-                    </td>
-                  </tr>
-                  <tr>
-                    <th>开始采油日期:</th>
-                    <td>{{ item.oil_prod_begin_date }}</td>
-                    <th>最近采油日期:</th>
-                    <td>{{ item.oil_prod_recent_date }}</td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('oil')">
-                    <th>最近月产油量:</th>
-                    <td>
-                      {{ item.oil_prod_mon == null ? "" : (numberToCurrencyNo(item.oil_prod_mon) + "t") }}
-                    </td>
-                    <td colspan="2" rowspan="2">
-                      <div style="height:25px">
-                        <ChartCell :timeType="('month')" :dataType="('oil')" :wellId="item.well_id"
-                                   :lineColor="('#E63038')"></ChartCell>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('oil')">
-                    <th>累产油量:</th>
-                    <td>
-                      {{ item.oil_prod_year == null ? "" : (numberToCurrencyNo(item.oil_prod_year) + "t") }}
-                    </td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('gas')">
-                    <th>最近月产气量:</th>
-                    <td>
-                      {{ item.gas_prod_mon == null ? "" : (numberToCurrencyNo(item.gas_prod_mon) + "m³") }}
-                    </td>
-                    <td colspan="2" rowspan="2">
-                      <div style="height:25px">
-                        <ChartCell :timeType="('month')" :dataType="('gas')" :wellId="item.well_id"></ChartCell>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('gas')">
-                    <th>累产气量:</th>
-                    <td>
-                      {{ item.gas_prod_year == null ? "" : (numberToCurrencyNo(item.gas_prod_year) + "m³") }}
-                    </td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('water')">
-                    <th>最近注水量:</th>
-                    <td>
-                      {{ item.water_prod_mon == null ? "" : (numberToCurrencyNo(item.water_prod_mon) + "t") }}
-                    </td>
-                    <td colspan="2" rowspan="2">
-                      <div style="height:25px">
-                        <ChartCell :timeType="('month')" :dataType="('vol')" :wellId="item.well_id"></ChartCell>
-                      </div>
-                    </td>
-                  </tr>
-                  <tr v-if="showColumnType.includes('water')">
-                    <th>累注水量:</th>
-                    <td>
-                      {{ item.water_prod_year == null ? "" : (numberToCurrencyNo(item.water_prod_year) + "10kt") }}
-                    </td>
-                  </tr>
-                </table>
-              </a-card>
-            </a-col>
-          </a-row>
+                <template v-if="column.dataIndex === 'gas'">
+                  <div style="height:25px">
+                    <ChartCell :timeType="('month')" :dataType="('gas')" :wellId="record.well_id"></ChartCell>
+                  </div>
+                </template>
+                <template v-if="column.dataIndex === 'water'">
+                  <div style="height:25px">
+                    <ChartCell :timeType="('month')" :dataType="('vol')" :wellId="record.well_id"></ChartCell>
+                  </div>
+                </template>
+                <template v-if="column.key === 'well_common_name'">
+                  <a-button type="link" size="small" @click="detail(record.well_id)">{{
+                      record.well_common_name
+                    }}
+                  </a-button>
+                </template>
+                <template v-if="column.key === 'operation'">
+                  <a-button type="link" size="small" @click="showDoc(record.well_id)">相关文档</a-button>
+                </template>
+              </template>
+            </a-table>
+          </div>
+          <div class="query-index-table" v-else>
+            <a-row :gutter="[24,8]">
+              <a-col :span="colspan" v-for="item in data">
+                <a-card :title="'井名:'+item.well_common_name" class="ant-card-index" bodyStyle="padding: 10px;">
+                  <template #extra>
+                    <a-button type="link" @click="detail(item.well_id)">查看详情</a-button>
+                    <a-button type="link" @click="showDoc(item.well_id)">相关文档</a-button>
+                  </template>
+                  <table class="well-card-table">
+                    <tr>
+                      <th>井型:</th>
+                      <td>{{ item.well_type }}</td>
+                      <th>状态:</th>
+                      <td>{{ item.current_state_name }}</td>
+                    </tr>
+                    <tr>
+                      <th>开钻日期:</th>
+                      <td>{{ item.spud_date }}</td>
+                      <th>含水率:</th>
+                      <td><span style="padding:2px 10px;" :class="getTdColor( item.water_cut)">{{
+                          item.water_cut
+                        }}</span>
+                      </td>
+                    </tr>
+                    <tr>
+                      <th>开始采油日期:</th>
+                      <td>{{ item.oil_prod_begin_date }}</td>
+                      <th>最近采油日期:</th>
+                      <td>{{ item.oil_prod_recent_date }}</td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('oil')">
+                      <th>最近月产油量:</th>
+                      <td>
+                        {{ item.oil_prod_mon == null ? "" : (numberToCurrencyNo(item.oil_prod_mon) + "t") }}
+                      </td>
+                      <td colspan="2" rowspan="2">
+                        <div style="height:25px">
+                          <ChartCell :timeType="('month')" :dataType="('oil')" :wellId="item.well_id"
+                                     :lineColor="('#E63038')"></ChartCell>
+                        </div>
+                      </td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('oil')">
+                      <th>累产油量:</th>
+                      <td>
+                        {{ item.oil_prod_year == null ? "" : (numberToCurrencyNo(item.oil_prod_year) + "t") }}
+                      </td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('gas')">
+                      <th>最近月产气量:</th>
+                      <td>
+                        {{ item.gas_prod_mon == null ? "" : (numberToCurrencyNo(item.gas_prod_mon) + "m³") }}
+                      </td>
+                      <td colspan="2" rowspan="2">
+                        <div style="height:25px">
+                          <ChartCell :timeType="('month')" :dataType="('gas')" :wellId="item.well_id"></ChartCell>
+                        </div>
+                      </td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('gas')">
+                      <th>累产气量:</th>
+                      <td>
+                        {{ item.gas_prod_year == null ? "" : (numberToCurrencyNo(item.gas_prod_year) + "m³") }}
+                      </td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('water')">
+                      <th>最近注水量:</th>
+                      <td>
+                        {{ item.water_prod_mon == null ? "" : (numberToCurrencyNo(item.water_prod_mon) + "t") }}
+                      </td>
+                      <td colspan="2" rowspan="2">
+                        <div style="height:25px">
+                          <ChartCell :timeType="('month')" :dataType="('vol')" :wellId="item.well_id"></ChartCell>
+                        </div>
+                      </td>
+                    </tr>
+                    <tr v-if="showColumnType.includes('water')">
+                      <th>累注水量:</th>
+                      <td>
+                        {{ item.water_prod_year == null ? "" : (numberToCurrencyNo(item.water_prod_year) + "10kt") }}
+                      </td>
+                    </tr>
+                  </table>
+                </a-card>
+              </a-col>
+            </a-row>
+          </div>
+          <a-pagination :page-size-options="pagination.pageSizeOptions" show-size-changer
+                        v-model:current="pagination.current" :total="pagination.total"
+                        style="float: right;margin-top: 10px;"
+                        :pageSize="pagination.pageSize" :show-total="total => `共 ${total} 条`"
+                        @change="(current)=>handleTableChange({ current: current,pageSize: pagination.pageSize })"
+                        @showSizeChange="(current,pageSize)=>handleTableChange({ current: current,pageSize: pageSize })"/>
+        </a-spin>
+        <div style="width:100%;height: 500px;margin-top:15px">
+          <ChartMap :datas="data" :isSearch="(true)"></ChartMap>
         </div>
-        <a-pagination :page-size-options="pagination.pageSizeOptions" show-size-changer
-                      v-model:current="pagination.current" :total="pagination.total"
-                      style="float: right;margin-top: 10px;"
-                      :pageSize="pagination.pageSize" :show-total="total => `共 ${total} 条`"
-                      @change="(current)=>handleTableChange({ current: current,pageSize: pagination.pageSize })"
-                      @showSizeChange="(current,pageSize)=>handleTableChange({ current: current,pageSize: pageSize })"/>
-      </a-spin>
-      <div style="width:100%;height: 500px;margin-top:15px">
-        <ChartMap :datas="data" :isSearch="(true)"></ChartMap>
       </div>
     </div>
-    <a-modal v-model:visible="isShowDoc" title="相关文档" :footer="null" @onCancel="isShowDoc=false">
+    <a-modal v-model:visible="isShowDoc" title="相关文档" width="800px" :footer="null" @onCancel="isShowDoc=false">
       <a-input-search
         v-model:value="fileOptions.docKey"
         placeholder="查找文档" allow-clear
@@ -324,6 +329,7 @@
             <a-list-item v-if="(item.file_name.indexOf(fileOptions.docKey)>-1||fileOptions.docKey=='')
                   &&(fileOptions.selectBusinessType.length==0||fileOptions.selectBusinessType.includes(item.file_business_type))">
               <template #actions>
+                <PlusOutlined v-if="!item.isApply" @click="onAddCart(item)" title="加入购物车" :style="{fontSize: '16px', color: '#08c'}"/>
                 <filePreview :fileName="item.file_name" :filePath="item.storage_path"></filePreview>
                 <a-button type="link" @click="downFile(item)" functioncode="T010501" danger>下载</a-button>
               </template>
@@ -341,6 +347,10 @@
         </a-list>
       </div>
     </a-modal>
+    <ShoppingcartModal ref="shoppingCartModalRef"></ShoppingcartModal>
+    <div class="apply-cart" @click="onShowCart">
+      <shopping-cart-outlined   title="购物车" :style="{fontSize: '35px', color: '#08c'}"/>
+    </div>
   </div>
 </template>
 
@@ -356,13 +366,14 @@ import {useTabsViewStore} from "@/store/modules/tabsView";
 import ChartCell from '@/components/basic/chart/chart-cell.vue'
 import ChartMap from '@/components/basic/chart/chart-map.vue'
 import {download} from "@/utils/downloadFile";
-import {columns, filterColumns, formState, getTdColor} from './table'
-import filePreview from '@/components/basic/file-preview/index.vue'
+import {columns, filterColumns, formState, getTdColor} from './table';
+import filePreview from '@/components/basic/file-preview/index.vue';
 import {numberToCurrencyNo} from "@/utils/common";
+import ShoppingcartModal from './shoppingcart.vue';
 
 export default defineComponent({
   name: 'wellinfoindex',
-  components: {ChartCell, ChartMap, filePreview},
+  components: {ChartCell, ChartMap, filePreview,ShoppingcartModal},
   setup() {
 
     const route = useRoute();
@@ -394,6 +405,8 @@ export default defineComponent({
       selectBusinessType: [] as any[]
     })
     const wellPurposeTree = ref([]);
+    const shoppingCartModalRef=ref();
+
     get('wellInfo/getWellPurposeTree', {}).then(data => {
       wellPurposeTree.value = data;
     });
@@ -732,6 +745,21 @@ export default defineComponent({
         fileOptions.businessType = Array.from(new Set(fileOptions.businessType));
       })
     };
+
+    const onAddCart = (file) => {
+      let applyFileList = new Array();
+      let storeList = localStorage.getItem("applyFileList");
+      if (storeList != null) {
+        applyFileList = JSON.parse(storeList);
+      }
+      applyFileList.push({well_common_name: file.well_common_name, file_name: file.file_name,storage_path:file.storage_path});
+      localStorage.setItem("applyFileList", JSON.stringify(applyFileList));
+      file.isApply = true;
+      message.info('成功加入购物车');
+    }
+    const onShowCart=()=>{
+      shoppingCartModalRef.value.show();
+    }
     const labelCol = {style: {width: '100px'}};
 
     return {
@@ -785,6 +813,9 @@ export default defineComponent({
       wellPurposeTree,
       wellTypeTree,
       numberToCurrencyNo,
+      onAddCart,
+      shoppingCartModalRef,
+      onShowCart,
       handleResizeColumn: (w, col) => {
         col.width = w;
       }
@@ -804,10 +835,19 @@ export default defineComponent({
 .query-index {
   display: flex;
   flex-direction: row;
-  min-height: 100%;
+  height: 100%;
   background-color: white;
+  overflow: hidden;
+  position: relative;
+}
+.apply-cart {
+  position: fixed;
+  right: 10px;
+  bottom: 80px;
+  width: 55px;
+  z-index: 99;
+  cursor: pointer;
 }
-
 .query-index-tree {
   min-width: 260px;
   max-width: 360px;
@@ -828,6 +868,10 @@ export default defineComponent({
   width: 80%;
 }
 
+.query-index-row {
+  height: 34px;
+}
+
 .query-index-form {
   padding: 15px 10px 10px 15px;
 }
@@ -869,7 +913,7 @@ export default defineComponent({
   padding: 5px;
   padding-top: 10px;
   overflow-y: scroll;
-  max-height: 1000px;
+  height: 100%;
 }
 
 .col-text {

+ 109 - 0
vue/src/views/wellinfo/shoppingcart.vue

@@ -0,0 +1,109 @@
+<template>
+  <div>
+    <Modal style="width:700px;" okText="提交申请" v-model:visible="visible" title="申请下载文件" @ok="visible2=true"
+           @cancel="visible=false">
+      <div style="overflow: auto;height: 500px;">
+        <a-list item-layout="horizontal" :data-source="docList">
+          <template #renderItem="{ item,index }">
+            <a-list-item>
+              <template #actions>
+                <a-popconfirm placement="leftTop"
+                              title="是否把该文件清除购物车?"
+                              @confirm="onRemove(index)">
+                  <delete-outlined v-if="!item.isApply" title="清除该文件" :style="{fontSize: '16px', color: '#08c'}"/>
+                </a-popconfirm>
+                <filePreview :fileName="item.file_name" :filePath="item.storage_path"></filePreview>
+              </template>
+              <a-list-item-meta
+                :description="item.file_business_type">
+                <template #title>
+                  {{ item.file_name }}
+                </template>
+                <template #avatar>
+                  <div style="display: flex;align-items: center;flex-flow: row;">
+                    <a-space>
+                      <a-checkbox v-model:checked="item.checked"
+                                  @change="(e)=>item.checked=e.target.checked"></a-checkbox>
+                      <img src="~@/assets/images/file.png"/>
+                    </a-space>
+                  </div>
+                </template>
+              </a-list-item-meta>
+            </a-list-item>
+          </template>
+        </a-list>
+      </div>
+    </Modal>
+    <a-modal
+      v-model:visible="visible2"
+      title="提交申请"
+      ok-text="确认"
+      cancel-text="取消"
+      @ok="handleOk"
+      @cancel="visible2=false" >
+      <a-textarea v-model:value="reason" placeholder="申请原因" :auto-size="{ minRows: 4, maxRows: 6 }" allow-clear/>
+    </a-modal>
+  </div>
+</template>
+
+<script setup lang="ts">
+import {Form, Modal} from 'ant-design-vue';
+import type {FormInstance} from 'ant-design-vue';
+import {ref} from "vue";
+import {message} from "ant-design-vue";
+import Button from "@/components/basic/button/button.vue";
+import {postData} from '@/api/common';
+import filePreview from '@/components/basic/file-preview/index.vue'
+
+defineOptions({
+  name: 'shoppingcartModal',
+  inheritAttrs: false,
+  components: {
+    Form, Modal, filePreview, Button
+  }
+});
+
+const modalFormRef = ref<FormInstance>();
+const visible = ref<boolean>(false);
+const visible2 = ref<boolean>(false);
+const spinning = ref<boolean>(false);
+const docList = ref<any[]>([]);
+const reason = ref();
+
+const show = () => {
+  docList.value = [];
+  visible.value = true;
+  let storeList = localStorage.getItem("applyFileList");
+  if (storeList != null) {
+    docList.value = JSON.parse(storeList);
+  }
+};
+defineExpose({show});
+
+const handleOk = () => {
+  let checkedList = docList.value.filter(doc => doc.checked);
+  postData('/applyForm/submit', {docList: checkedList}).then(result => {
+    if (result) {
+      message.info("成功提交申请。");
+      docList.value = docList.value.filter(doc => !doc.checked);
+      localStorage.setItem("applyFileList", JSON.stringify(docList.value));
+      visible2.value = false;
+    }
+  })
+}
+const onRemove = (index) => {
+  docList.value.splice(index, 1);
+  localStorage.setItem("applyFileList", JSON.stringify(docList.value));
+}
+const handleCancel = () => {
+
+}
+</script>
+
+<style>
+.noPackage svg, .hasPackage svg {
+  width: 60px;
+  height: 60px;
+  color: #999;
+}
+</style>