Преглед изворни кода

Merge remote-tracking branch 'origin/master'

wangyong пре 2 година
родитељ
комит
b07e6dadd7

+ 28 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/constant/Constants.java

@@ -0,0 +1,28 @@
+package cn.com.victorysoft.business.calc.constant;
+
+public class Constants {
+
+    public final static String MORE = "MORE";
+    public final static String LESS = "LESS";
+    public final static String NORMAL = "NORMAL";
+    public final static String UNCLEAR = "UNCLEAR";
+    public final static String NO_CHECK = "NO_CHECK";
+
+    public final static String TI_SHUI_LEI = "TI_SHUI_LEI";
+    public final static String BAO_HE_GE_LV = "BAO_HE_GE_LV";
+    public final static String SI_ZUI_LOU_SHI = "SI_ZUI_LOU_SHI";
+
+    public final static String LESS_TYPE_NOZZLE = "NOZZLE";
+    public final static String LESS_TYPE_BIG = "BIG";
+
+    public final static String DAN_ZHU = "DAN_ZHU";
+    public final static String FEN_ZHU1 = "FEN_ZHU1";
+    public final static String FEN_ZHU2 = "FEN_ZHU2";
+    public final static String FEN_ZHU2_TONG_XIN = "FEN_ZHU2_TONG_XIN";
+    public final static String FEN_ZHU3 = "FEN_ZHU3";
+    public final static String FEN_ZHU4 = "FEN_ZHU4";
+    public final static String FEN_ZHU5 = "FEN_ZHU5";
+    public final static String FEN_ZHU6 = "FEN_ZHU6";
+    public final static String FEN_ZHU7 = "FEN_ZHU7";
+
+}

+ 64 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/controller/DataCalcController.java

@@ -0,0 +1,64 @@
+package cn.com.victorysoft.business.calc.controller;
+
+import cn.com.victorysoft.business.calc.service.WaterTubularStructureService;
+import cn.com.victorysoft.business.calc.service.WaterWellBasicService;
+import cn.com.victorysoft.business.calc.service.WellSectionDailyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/30 9:46
+ */
+@Api(tags = "计算服务")
+@Slf4j
+@RestController
+@RequestMapping("calc")
+public class DataCalcController {
+
+    @Autowired
+    private WaterWellBasicService waterWellBasicService;
+
+    @Autowired
+    private WellSectionDailyService wellSectionDailyService;
+
+    @Autowired
+    private WaterTubularStructureService waterTubularStructureService;
+
+    /**
+     * 初始化 WATER_WELL_BASIC 表
+     */
+    @GetMapping("/water-well-basic")
+    @ApiOperation("初始化 WATER_WELL_BASIC 表")
+    public void waterWellBasic(){
+        waterWellBasicService.waterWellBasic();
+    }
+
+    /**
+     * 初始化 WELL_SECTION_DAILY 表
+     * @param startDate
+     * @param endDate
+     */
+    @GetMapping("/well-section-daily")
+    @ApiOperation("初始化 WELL_SECTION_DAILY 表")
+    public void wellSectionDaily(Date startDate, Date endDate){
+        wellSectionDailyService.wellSectionDaily(startDate, endDate);
+    }
+
+    /**
+     * 初始化 WATER_FAILURE_REASON 表
+     */
+    @GetMapping("/water-tubular-structure")
+    @ApiOperation("初始化 WATER_TUBULAR_STRUCTURE 表")
+    public void waterTubularStructure(){
+        waterTubularStructureService.waterTubularStructure();
+    }
+}

+ 18 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/dao/WaterTubularStructureDao.java

@@ -0,0 +1,18 @@
+package cn.com.victorysoft.business.calc.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/31 9:06
+ */
+@Mapper
+@Repository
+public interface WaterTubularStructureDao {
+
+    /**
+     *
+     */
+    void waterTubularStructure();
+}

+ 21 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/dao/WaterWellBasicDao.java

@@ -0,0 +1,21 @@
+package cn.com.victorysoft.business.calc.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.Date;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/30 9:58
+ */
+@Mapper
+@Repository
+public interface WaterWellBasicDao {
+
+    /**
+     * 初始化 WATER_WELL_BASIC 表
+     */
+    void waterWellBasic();
+
+}

+ 64 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/dao/WellSectionDailyReallyDao.java

@@ -0,0 +1,64 @@
+package cn.com.victorysoft.business.calc.dao;
+
+import cn.com.victorysoft.business.calc.entity.SysInjectTechnology;
+import cn.com.victorysoft.business.sys.entity.WellSectionDaily;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/30 15:10
+ */
+@Mapper
+@Repository
+public interface WellSectionDailyReallyDao {
+
+    /**
+     *
+     * @param startDate
+     * @param endDate
+     */
+    void deleteByDate(@Param("startDate") Date startDate,@Param("endDate") Date endDate);
+
+    /**
+     *
+     * @return
+     */
+    List<SysInjectTechnology> selectInjectTechnology();
+
+    /**
+     *
+     * @param startDate
+     * @param endDate
+     * @param injectCodes
+     */
+    void syncSingleWellDaily(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("injectCodes") List<String> injectCodes);
+
+    /**
+     *
+     * @param startDate
+     * @param endDate
+     * @param injectCodes
+     */
+    void syncWellSectionDaily(@Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("injectCodes") List<String> injectCodes);
+
+    /**
+     *
+     * @param startDate
+     * @param endDate
+     * @return
+     */
+    List<WellSectionDaily> selectByDate(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
+    /**
+     *
+     * @param list
+     * @return
+     */
+    int updateInjectType(List<WellSectionDaily> list);
+
+}

+ 44 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/entity/SysInjectTechnology.java

@@ -0,0 +1,44 @@
+package cn.com.victorysoft.business.calc.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author 
+ * 注水工艺
+ */
+@Data
+public class SysInjectTechnology implements Serializable {
+    /**
+     * 代码
+     */
+    private String dm;
+
+    /**
+     * 类别
+     */
+    private String lb;
+
+    /**
+     * 代码名称
+     */
+    private String dmmc;
+
+    /**
+     * 注水工艺
+     */
+    private String zsgy;
+
+    /**
+     * 同心双管
+     */
+    private Boolean txsg;
+
+    /**
+     * 方停判断
+     */
+    private Boolean ftpd;
+
+    private static final long serialVersionUID = 1L;
+}

+ 22 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/service/WaterTubularStructureService.java

@@ -0,0 +1,22 @@
+package cn.com.victorysoft.business.calc.service;
+
+import cn.com.victorysoft.business.calc.dao.WaterTubularStructureDao;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/31 9:05
+ */
+@Slf4j
+@Service
+public class WaterTubularStructureService {
+
+    @Autowired
+    private WaterTubularStructureDao waterTubularStructureDao;
+
+    public void waterTubularStructure() {
+        waterTubularStructureDao.waterTubularStructure();
+    }
+}

+ 27 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/service/WaterWellBasicService.java

@@ -0,0 +1,27 @@
+package cn.com.victorysoft.business.calc.service;
+
+import cn.com.victorysoft.business.calc.dao.WaterWellBasicDao;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/30 9:56
+ */
+@Slf4j
+@Service
+public class WaterWellBasicService {
+
+    @Autowired
+    private WaterWellBasicDao waterWellBasicDao;
+
+    /**
+     * 初始化 WATER_WELL_BASIC 表
+     */
+    public void waterWellBasic() {
+        waterWellBasicDao.waterWellBasic();
+    }
+}

+ 125 - 0
vseaf4.4-calc/src/main/java/cn/com/victorysoft/business/calc/service/WellSectionDailyService.java

@@ -0,0 +1,125 @@
+package cn.com.victorysoft.business.calc.service;
+
+import cn.com.victorysoft.business.calc.dao.WellSectionDailyReallyDao;
+import cn.com.victorysoft.business.calc.entity.SysInjectTechnology;
+import cn.com.victorysoft.business.sys.entity.WellSectionDaily;
+import cn.com.victorysoft.business.util.DateUtils;
+import cn.com.victorysoft.business.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static cn.com.victorysoft.business.calc.constant.Constants.*;
+
+/**
+ * @Author TY
+ * @Date: 2023/1/30 15:08
+ */
+@Slf4j
+@Service
+public class WellSectionDailyService {
+
+    @Autowired
+    private WellSectionDailyReallyDao wellSectionDailyDao;
+
+    @Transactional
+    public void wellSectionDaily(Date startDate, Date endDate) {
+        // 先删除
+        wellSectionDailyDao.deleteByDate(startDate, endDate);
+
+        // 查询注水工艺
+        List<SysInjectTechnology> technologyList = wellSectionDailyDao.selectInjectTechnology();
+
+        // 分注工艺代码
+        List<String> splitCodes = technologyList.stream().filter(item -> "分注".equals(item.getZsgy())).map(SysInjectTechnology::getDm).collect(Collectors.toList());
+
+        // 单注工艺代码
+        List<String> singleCodes = technologyList.stream().filter(item -> "单注".equals(item.getZsgy())).map(SysInjectTechnology::getDm).collect(Collectors.toList());
+
+        // 同步单注井数据
+        wellSectionDailyDao.syncSingleWellDaily(startDate, endDate, singleCodes);
+
+        // 同步分注井数据
+        wellSectionDailyDao.syncWellSectionDaily(startDate, endDate, splitCodes);
+
+        // 计算注水类型
+        this.updateInjectType(startDate, endDate);
+    }
+
+    /**
+     * 计算注水类型
+     */
+    public void updateInjectType(Date startDate, Date endDate) {
+
+        // 查询注水数据
+        List<WellSectionDaily> list = wellSectionDailyDao.selectByDate(DateUtils.formatDate(startDate), DateUtils.formatDate(endDate));
+
+        // 查询注水工艺
+        Map<String, SysInjectTechnology> technologyMap = wellSectionDailyDao.selectInjectTechnology().stream().collect(Collectors.toMap(SysInjectTechnology::getDm, v -> v));
+
+        // 查找方停的井
+        Map<String, Set<Integer>> stopWellNames = new HashMap<>();
+
+        for (WellSectionDaily record : list) {
+            String wellname = record.getWellname();
+            Integer section = record.getSection();
+            if (!stopWellNames.containsKey(wellname)) {
+                stopWellNames.put(wellname, new HashSet<>());
+            }
+            if (record.getNozzle() != null && record.getNozzle().contains("方停")) {
+                stopWellNames.get(wellname).add(section);
+            }else {
+                stopWellNames.get(wellname).remove(section);
+            }
+        }
+        for (WellSectionDaily record : list) {
+            String injectTypeYs = record.getInjectTypeYs();
+            SysInjectTechnology technology = technologyMap.get(injectTypeYs);
+            // 如果注水工艺不存在,不判断
+            if (technology == null) continue;
+            if ("单注".equals(technology.getZsgy())) {
+                record.setInjectType(DAN_ZHU);
+            }else if ("分注".equals(technology.getZsgy())) {
+                Integer planSection = record.getPlanSection();
+                // 如果水嘴包含方停,则需要减去
+                planSection = planSection - stopWellNames.get(record.getWellname()).size();
+                if (planSection == 1) {
+                    record.setInjectType(FEN_ZHU1);
+                }else if (planSection == 2) {
+                    // 判断同心双管
+                    if (technology.getTxsg()) {
+                        record.setInjectType(FEN_ZHU2_TONG_XIN);
+                    }else {
+                        record.setInjectType(FEN_ZHU2);
+                    }
+                }else if (planSection == 3) {
+                    record.setInjectType(FEN_ZHU3);
+                }else if (planSection == 4) {
+                    record.setInjectType(FEN_ZHU4);
+                }else if (planSection == 5) {
+                    record.setInjectType(FEN_ZHU5);
+                }else if (planSection == 6) {
+                    record.setInjectType(FEN_ZHU6);
+                }else if (planSection == 7) {
+                    record.setInjectType(FEN_ZHU7);
+                }
+            }
+        }
+        list = list.stream().filter(item -> StringUtils.isNotEmpty(item.getInjectType())).collect(Collectors.toList());
+        if (list.size() > 0) {
+            // 每批commit的个数
+            int batchCount = 500;
+            int index = 0;
+            do {
+                int batchLastIndex = Math.min(index + batchCount, list.size());
+                List<WellSectionDaily> tmp = list.subList(index, batchLastIndex);
+                wellSectionDailyDao.updateInjectType(tmp);
+                index = index + batchCount;
+            } while (index < list.size());
+        }
+    }
+}

+ 32 - 0
vseaf4.4-calc/src/main/resources/mapper/WaterTubularStructureDao.xml

@@ -0,0 +1,32 @@
+<?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="cn.com.victorysoft.business.calc.dao.WaterTubularStructureDao">
+
+    <update id="waterTubularStructure">
+        MERGE INTO WATER_TUBULAR_STRUCTURE T1 USING (
+            SELECT
+                B.DWMC, B.DYDM, B.EJDWDM, B.DWDM,
+                A.JH, A.KGRQ, A.WGRQ, A.CSLB, A.KGRQ - A.LAST_WGRQ ZJSJ, A.LAST_WGRQ
+            FROM (
+                SELECT
+                    A.*, B.WGRQ LAST_WGRQ,
+                    CASE WHEN B.WGRQ IS NULL THEN 1 ELSE ROW_NUMBER() OVER(PARTITION BY B.JH ORDER BY B.WGRQ ASC) END XH
+                FROM
+                    YS_DDH01 A
+                LEFT JOIN YS_DDH01 B ON A.JH = B.JH AND A.KGRQ > B.WGRQ
+            ) A
+            LEFT JOIN YS_DAA01 B ON A.JH = B.JH AND A.XH = '1'
+        ) T2 ON (T1.JH = T2.JH AND T1.WJRQ = T2.WGRQ)
+        WHEN MATCHED THEN
+            UPDATE SET
+                DWDM = T2.EJDWDM,
+                DYDM = T2.DYDM,
+                NEXT_ZYRQ = NULL,
+                CSLB = T2.CSLB,
+                ZJSJ = T2.ZJSJ,
+                GZ_YXQ = T2.ZJSJ
+        WHEN NOT MATCHED THEN
+            INSERT(DWDM, DYDM, JH, WJRQ, NEXT_ZYRQ, CSLB, ZJSJ, GZ_YXQ, GYLX)
+            VALUES(T2.EJDWDM, T2.DYDM, T2.JH, T2.WGRQ, NULL, T2.CSLB, T2.ZJSJ, T2.ZJSJ, 'GYLX1')
+    </update>
+</mapper>

+ 58 - 0
vseaf4.4-calc/src/main/resources/mapper/WaterWellBasicDao.xml

@@ -0,0 +1,58 @@
+<?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="cn.com.victorysoft.business.calc.dao.WaterWellBasicDao">
+
+
+    <update id="waterWellBasic">
+        MERGE INTO WATER_WELL_BASIC T1 USING (
+            SELECT
+                A.*, B.ZDJXJ, C.TGMC, C.TGGJ, C.WJ
+            FROM
+            (
+            SELECT
+                *
+            FROM
+                YS_DAA01
+            WHERE
+                MQJB LIKE '3%'
+                OR JH IN (SELECT JH FROM YS_DBA02 WHERE RQ = TRUNC(SYSDATE - 1))
+                OR JH IN (SELECT JH FROM WATER_WELL_BASIC)
+            ) A
+            LEFT JOIN (
+                SELECT
+                    A.*, ROW_NUMBER() OVER(PARTITION BY JH ORDER BY LRSJ DESC) XH
+                FROM
+                    AZS05 A
+            ) B ON A.JH = B.JH AND B.XH = '1'
+            LEFT JOIN (
+                SELECT
+                    A.*, ROW_NUMBER() OVER(PARTITION BY JH ORDER BY TGGJ DESC) XH
+                FROM
+                    YS_DAA04 A
+            ) C ON A.JH = C.JH AND C.XH = '1'
+        ) T2 ON (T1.JH = T2.JH)
+        WHEN MATCHED THEN
+            UPDATE SET
+                    QKDM = T2.DYDM,
+                    DWDM = T2.EJDWDM,
+                    DWMC = T2.DWMC,
+                    YTDM = T2.YQTDM,
+                    BGRQ = SYSDATE,
+                    YCLX = '',
+                    SCCW = T2.CW,
+                    CS   = T2.CS,
+                    YSDCYL = T2.YSDCYL,
+                    YSDCWD = T2.YSDCWD,
+                    YSBHYL = T2.YSBHYL,
+                    ZSJDDS = T2.SKYCDS1,
+                    ZSJDDIS = T2.SKYCDS2,
+                    YCZS = (T2.SKYCDS2 + T2.SKYCDS1)/2,
+                    TGGG = T2.TGMC || '/' || T2.WJ,
+                    JX = T2.ZDJXJ,
+                    STHD = ''
+        WHEN NOT MATCHED THEN
+            INSERT(JH, QKDM, DWDM, DWMC, YTDM, BGRQ, YCLX, SCCW, CS, YSDCYL, YSDCWD, YSBHYL, ZSJDDS, ZSJDDIS, YCZS, TGGG, JX, STHD)
+            VALUES(T2.JH, T2.DYDM, T2.EJDWDM, T2.DWMC, T2.YQTDM, SYSDATE, '', T2.CW, T2.CS, T2.YSDCYL, T2.YSDCWD, T2.YSBHYL, T2.SKYCDS1, T2.SKYCDS2, (T2.SKYCDS2 + T2.SKYCDS1)/2, T2.TGMC || '/' || T2.WJ, T2.ZDJXJ, '')
+    </update>
+
+</mapper>

+ 114 - 0
vseaf4.4-calc/src/main/resources/mapper/WellSectionDailyReallyDao.xml

@@ -0,0 +1,114 @@
+<?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="cn.com.victorysoft.business.calc.dao.WellSectionDailyReallyDao">
+
+    <sql id="Base_Column_List">
+        WELLNAME, RECORD_DATE, "SECTION", UNITCODE, WELL_TYPE, NOZZLE, PP, PC, PT, PLAN_DAILY_WATER,
+        DAILY_WATER, WATER_WELL_CLASSIFY, INJECT_TYPE, OPEN_TIME, REMARK_CODE, REMARK_CODE1, LAYER, INJECT_TYPE_YS,
+        REMARK, PLAN_SECTION
+    </sql>
+
+
+    <insert id="syncSingleWellDaily">
+        insert into well_section_daily
+        (wellname, record_date, unitcode, well_type, section, nozzle, pp, pc, pt,
+        plan_daily_water, daily_water, water_well_classify, inject_type_ys, open_time,
+        remark_code, remark_code1, layer, remark, plan_section, well_water)
+        select b.jh wellname, b.rq record_date, c.dwdm unitcode,
+        case
+        when (c.mqjb is null or c.mqjb not like 'X%') and (b.zsmd is null or b.zsmd not in ('边底水驱','消化污水')) then '1'
+        when c.mqjb like 'X%' and (b.zsmd is null or b.zsmd not in ('边底水驱','消化污水')) then '0'
+        when (c.mqjb is null or c.mqjb not like 'X%') and b.zsmd = '消化污水' then '2'
+        when (c.mqjb is null or c.mqjb not like 'X%') and b.zsmd = '边底水驱' then '3'
+        when c.mqjb like 'X%' and b.zsmd = '消化污水' then '4'
+        when c.mqjb like 'X%' and b.zsmd = '边底水驱' then '5'
+        end well_type,
+        1 section, null nozzle, b.gxyl pp, b.ty pc, b.yy pt,
+        b.rpzsl plan_daily_water, b.rzsl daily_water,
+        case when b.bz like '%一类井%' then '1'
+        when b.bz like '%二类井%' then '2'
+        when b.bz like '%三类井%' then '3'
+        when b.bz like '%四类井%' then '4' end water_well_classify,
+        b.zsfs inject_type_ys,
+        b.scsj open_time, b.bzdm remark_code, b.bzdm1 remark_code,
+        b.zscw,
+        b.bz,
+        b.pzcds,
+        b.rzsl
+        from ys_dba02 b
+        left join ys_daa01 c on b.jh = c.jh
+        where b.rq >= #{startDate,jdbcType=TIMESTAMP}
+        and b.rq &lt;= #{endDate,jdbcType=TIMESTAMP}
+        and b.zsfs in
+        <foreach collection="injectCodes" item = "code" open="(" separator="," close=")" index="index">
+            #{code}
+        </foreach>
+    </insert>
+
+    <insert id="syncWellSectionDaily">
+        insert into well_section_daily
+        (wellname, record_date, unitcode, well_type, section, nozzle, pp, pc, pt,
+        plan_daily_water, daily_water, water_well_classify, inject_type_ys, open_time,
+        remark_code, remark_code1, layer, remark, plan_section, well_water)
+        select a.jh wellname, a.rq record_date, c.dwdm unitcode,
+        case
+        when (c.mqjb is null or c.mqjb not like 'X%') and (b.zsmd is null or b.zsmd not in ('边底水驱','消化污水')) then '1'
+        when c.mqjb like 'X%' and (b.zsmd is null or b.zsmd not in ('边底水驱','消化污水')) then '0'
+        when (c.mqjb is null or c.mqjb not like 'X%') and b.zsmd = '消化污水' then '2'
+        when (c.mqjb is null or c.mqjb not like 'X%') and b.zsmd = '边底水驱' then '3'
+        when c.mqjb like 'X%' and b.zsmd = '消化污水' then '4'
+        when c.mqjb like 'X%' and b.zsmd = '边底水驱' then '5'
+        end well_type,
+        a.cdxh section, a.cdsz nozzle, b.gxyl pp, b.ty pc, b.yy pt,
+        a.cdrpsl plan_daily_water, a.cdrzsl daily_water,
+        case when b.bz like '%一类井%' then '1'
+        when b.bz like '%二类井%' then '2'
+        when b.bz like '%三类井%' then '3'
+        when b.bz like '%四类井%' then '4' end water_well_classify,
+        b.zsfs inject_type_ys,
+        b.scsj open_time, b.bzdm remark_code, b.bzdm1 remark_code,
+        a.zscw,
+        b.bz,
+        b.pzcds,
+        b.rzsl
+        from dba021 a
+        inner join ys_dba02 b on a.jh = b.jh and a.rq = b.rq
+        left join ys_daa01 c on a.jh = c.jh
+        where a.rq >= #{startDate,jdbcType=TIMESTAMP}
+        and a.rq &lt;= #{endDate,jdbcType=TIMESTAMP}
+        and b.zsfs in
+        <foreach collection="injectCodes" item = "code" open="(" separator="," close=")" index="index">
+            #{code}
+        </foreach>
+    </insert>
+
+    <update id="updateInjectType">
+        merge into WELL_SECTION_DAILY t using
+        <foreach collection="list" item="item" open="(" close=")" index="index" separator="union all" >
+            select
+            #{item.wellname} WELLNAME, #{item.recordDate} RECORD_DATE,
+            #{item.section} "SECTION", #{item.injectType} INJECT_TYPE
+            from dual
+        </foreach>
+        tmp on (tmp.WELLNAME = t.WELLNAME and tmp.RECORD_DATE = t.RECORD_DATE and tmp."SECTION" = t."SECTION")
+        when matched then
+        update set t.INJECT_TYPE = tmp.INJECT_TYPE
+    </update>
+
+    <delete id="deleteByDate">
+        DELETE FROM WELL_SECTION_DAILY WHERE RECORD_DATE >= #{startDate, jdbcType=TIMESTAMP} AND RECORD_DATE &lt;= #{endDate, jdbcType=TIMESTAMP}
+    </delete>
+
+    <select id="selectInjectTechnology" resultType="cn.com.victorysoft.business.calc.entity.SysInjectTechnology">
+        SELECT DM, LB, DMMC, ZSGY, TXSG, FTPD FROM SYS_INJECT_TECHNOLOGY
+    </select>
+
+    <select id="selectByDate" resultType="cn.com.victorysoft.business.sys.entity.WellSectionDaily">
+        select
+        <include refid="Base_Column_List" />
+        from WELL_SECTION_DAILY
+        where RECORD_DATE >= TO_DATE(#{startDate}, 'yyyy-mm-dd')
+        and RECORD_DATE &lt;= TO_DATE(#{endDate}, 'yyyy-mm-dd')
+        order by WELLNAME, "SECTION", RECORD_DATE
+    </select>
+</mapper>

+ 2 - 2
vseaf4.4-template-starter-dev/src/main/resources/application.properties

@@ -13,8 +13,8 @@ spring.datasource.password=life1sShort
 #spring.datasource.username=zsyx
 #spring.datasource.password=ZCK#406sr
 #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/property?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf8&allowMutiQueries=true
-#spring.datasource.druid.url=jdbc:oracle:thin:@192.168.2.194:1521:xe
-spring.datasource.druid.url=jdbc:oracle:thin:@49.234.214.200:15116/xe
+spring.datasource.druid.url=jdbc:oracle:thin:@192.168.2.194:1521:xe
+#spring.datasource.druid.url=jdbc:oracle:thin:@49.234.214.200:15116/xe
 #spring.datasource.druid.url=jdbc:oracle:thin:@10.67.112.2:1521/scora
 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.druid.driver-class-name=oracle.jdbc.OracleDriver