Explorar el Código

Merge branch '电子签收hana数据' of http://git.dgtis.com/qxp/suishenbang-oneportal into prd

# Conflicts:
#	suishenbang-quartz/src/main/java/com/dgtly/quartz/task/RyTask.java
#	suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/HanaOrderComponent.java
njs hace 6 meses
padre
commit
5b62fe74a7

+ 5 - 0
suishenbang-quartz/src/main/java/com/dgtly/quartz/task/RyTask.java

@@ -71,6 +71,11 @@ public class RyTask
         hanaOrderComponent.hanaSalesOrderSync();
     }
 
+    /**HANA交货单电子签收定时同时*/
+    public void hanaSalesDeliverSignatureSync() throws Exception {
+        hanaOrderComponent.hanaSalesDeliverSignatureSync();
+    }
+
     /**
      * @description: C类产品订单标记
      * @param: []

+ 182 - 2
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/HanaOrderComponent.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import com.dgtly.common.config.Global;
 import com.dgtly.common.utils.DateUtils;
 import com.dgtly.common.utils.http.HttpUtils;
+import com.dgtly.system.service.IMetaHanaDeliverSignService;
 import com.dgtly.system.service.ISysUserOrderAuthorService;
 import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
@@ -11,7 +12,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-
 import java.io.*;
 import java.math.BigDecimal;
 import java.sql.*;
@@ -52,6 +52,10 @@ public class HanaOrderComponent {
 
     @Autowired
     private ISysUserOrderAuthorService userOrderAuthorService;
+
+    @Autowired
+    private IMetaHanaDeliverSignService metaHanaDeliverSignService;
+
     public HanaOrderComponent() {
     }
 
@@ -217,6 +221,43 @@ public class HanaOrderComponent {
     }
 
 
+    /**
+     * @description: 交货单电子签收数据同步
+     * @param: []
+     * @return: void
+     * @author: njs
+     * @date: 2024/12/31 10:14
+     */
+    public void hanaSalesDeliverSignatureSync() throws Exception {
+        Connection con = this.getHanaConnection();
+        PreparedStatement pstmt = con.prepareStatement("SELECT\n" +
+                "\t VBELN,\n" +
+                 "\t POSNR,\n" +
+                "\t MATNR,\n" +
+                "\t VGBEL,\n" +
+                "\t VGPOS, \n"+
+                "\t ERDAT_SO,\n" +
+                "\t LFIMG,\n" +
+                "\t MODIFIEDVALUE,\n" +
+                "\t LFIMG_CY,\n" +
+                "\t ZDATE_KH,\n" +
+                "\t ZTIME_KH,\n" +
+                "\t ZVBELN_YCHH,\n" +
+                "\t ZSTATUS_HH,\n" +
+                "\t CONTRACTID, \n" +
+                "\t BIZNO, \n" +
+                 "\t MANDT \n" +
+                " FROM  ERP.ZSDT056 where ERDAT_SO between ADD_MONTHS(CURRENT_DATE, -3) AND CURRENT_DATE");
+
+        Long startTime = System.currentTimeMillis();
+        ResultSet rs = pstmt.executeQuery();
+        Long endTime = System.currentTimeMillis();
+        log.info("hanaSalesDeliverSignatureSync查询用时:" + (endTime - startTime)+"毫秒");
+        this.createDeliverSignatureTxt(rs);
+        this.runLoadDeliverSignature();
+        this.closeConnection(con, pstmt);
+
+    }
     /*批量插入*/
     private void insertSalesOrderResult(ResultSet rs) throws Exception {
         Connection conn = null;
@@ -397,6 +438,104 @@ public class HanaOrderComponent {
         return j;
     }
 
+//电子单签收
+
+    private int createDeliverSignatureTxt(ResultSet result) throws Exception {
+        File file = null;
+        FileWriter fw = null;
+        Connection conn = null;
+        PreparedStatement pstm =null;
+        int j =0;
+        try {
+            long i =0;
+
+            //创建IO需求的条件,并声明输出路径
+            file = new File((Global.getTemdataPath()+"deliverSignature/"));
+            log.info("deliverSignature数据缓存路径:" + Global.getTemdataPath()+"deliverSignature/");
+            if(!file.exists()){
+                file.mkdir();
+            }
+
+            file = new File(Global.getTemdataPath()+"deliverSignature/"+j+".txt");
+            if(!file.exists()){
+                file.createNewFile();
+            }else {
+                //取得这个目录下的所有子文件对象
+                File[] files = new File(Global.getTemdataPath()+"deliverSignature/").listFiles();
+
+                for (File f: files){
+                    f.delete();
+                }
+                file.delete();
+                file.createNewFile();
+            }
+            fw = new FileWriter(file);
+            Long startTime = System.currentTimeMillis();
+            while (result.next()){
+
+                fw.write(
+                        result.getString("VBELN")
+                         +"$$"+ result.getString("POSNR")
+                                +"$$"+ result.getString("MATNR")
+                                +"$$"+ result.getString("VGBEL")
+                                +"$$"+ result.getString("VGPOS")
+                                +"$$"+ result.getString("ERDAT_SO")
+                                +"$$"+ result.getString("LFIMG")
+                                +"$$"+ result.getString("MODIFIEDVALUE")
+                                +"$$"+ result.getString("LFIMG_CY")
+                                +"$$"+ result.getString("ZDATE_KH")
+                                +"$$"+ result.getString("ZTIME_KH")
+                                +"$$"+ result.getString("ZVBELN_YCHH")
+                                +"$$"+ result.getString("ZSTATUS_HH")
+                                +"$$"+ result.getString("CONTRACTID")
+                                +"$$"+ result.getString("BIZNO")
+                                +"$$"+ result.getString("MANDT")
+                                + "\r\n");
+
+
+                fw.flush();
+                i++;
+                if (i%50000==0){
+                    j++;
+                    //创建IO需求的条件,并声明输出路径
+                    file = new File(Global.getTemdataPath()+"deliverSignature/"+j+".txt");
+                    if(!file.exists()){
+                        file.createNewFile();
+                    }else {
+                        file.delete();
+                        file.createNewFile();
+                    }
+                    fw = new FileWriter(file);
+
+                }
+            }
+            Long endTime = System.currentTimeMillis();
+            log.info("生成deliverSignature-TXT用时:" + (endTime - startTime) + "毫秒");
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            fw.close();
+            if(pstm!=null){
+                try {
+                    pstm.close();
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                    throw new RuntimeException(e);
+                }
+            }
+            if(conn!=null){
+                try {
+                    conn.close();
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+        return j;
+    }
+
 //订单
     private int createSalesOrderTxt(ResultSet result) throws Exception {
         File file = null;
@@ -1182,8 +1321,49 @@ public class HanaOrderComponent {
     }
 
 
+
+ //电子单签收状态
+ public void runLoadDeliverSignature () throws Exception{
+        //生产表
+        Connection conn = null;
+        PreparedStatement pstm =null;
+        try{
+            conn = getMysqlConnection();
+            String sql = "TRUNCATE TABLE meta_hana_deliver_sign";
+            pstm = conn.prepareStatement(sql);
+            pstm.execute();
+            String testSql = "LOAD DATA LOCAL INFILE 'testIO.txt' into table meta_hana_deliver_sign fields terminated by '$$' lines terminated by '\\n'";
+            long beginTime=System.currentTimeMillis();
+            int rows=this.bulkLoadFromInputStream(testSql, mergeGetStream(new File((Global.getTemdataPath()+"deliverSignature/"))));
+            long endTime=System.currentTimeMillis();
+            log.info("importing salesOrder := "+rows+" rows data into mysql and cost "+(endTime-beginTime)+" ms!");
+        }catch (Exception e){
+            String name ="meta_hana_deliver_sign电子单签收表同步异常";
+            userOrderAuthorService.sendMailHanaWarning(name);
+            e.printStackTrace();
+        }finally {
+            if(pstm!=null){
+                try {
+                    pstm.close();
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                    throw new RuntimeException(e);
+                }
+            }
+            if(conn!=null){
+                try {
+                    conn.close();
+                } catch (SQLException e) {
+                    e.printStackTrace();
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+
+    }
+
 //订单
-    public void runLoadSalesOrder() throws Exception{
+    public void runLoadSalesOrder(){
         //生产表
         Connection conn = null;
         PreparedStatement pstm =null;

+ 74 - 0
suishenbang-system/src/main/java/com/dgtly/system/domain/MetaHanaDeliverSign.java

@@ -0,0 +1,74 @@
+package com.dgtly.system.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.dgtly.common.annotation.Excel;
+import com.dgtly.common.core.domain.BaseEntity;
+
+/**
+ * 电子单签收状态数量对象 meta_hana_deliver_sign
+ *
+ * @author njs
+ * @date 2025-01-03
+ */
+@Data
+public class MetaHanaDeliverSign extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 交货单号 */
+    @Excel(name = "交货单号")
+    private String deliverNumber;
+
+    /** 交货单行项目号 */
+    @Excel(name = "交货单行项目号")
+    private String deliverItem;
+
+    /** 物料号 */
+    @Excel(name = "物料号")
+    private String matnrCode;
+
+    /** 订单号 */
+    @Excel(name = "订单号")
+    private String orderNumber;
+
+    /** 订单行项目 */
+    @Excel(name = "订单行项目")
+    private String orderItem;
+
+    /** 订单创建日期 */
+    @Excel(name = "订单创建日期")
+    private String orderCreateTime;
+
+    /** 交货数量 */
+    @Excel(name = "交货数量")
+    private String deliverQty;
+
+    /** 实收数量 */
+    @Excel(name = "实收数量")
+    private String actualQty;
+
+    /** 差异数量 */
+    @Excel(name = "差异数量")
+    private String differenceQty;
+
+    /** 客户签署日期 */
+    @Excel(name = "客户签署日期")
+    private String zdateDate;
+
+    /** 客户签署时间 */
+    @Excel(name = "客户签署时间")
+    private String zdateTime;
+
+    /** 异常处理订单 */
+    @Excel(name = "异常处理订单")
+    private String abnormalOrder;
+
+    /** 异常处理订单签收状态 */
+    @Excel(name = "异常处理订单签收状态")
+    private String abnormalStatus;
+
+
+
+}

+ 76 - 0
suishenbang-system/src/main/java/com/dgtly/system/mapper/MetaHanaDeliverSignMapper.java

@@ -0,0 +1,76 @@
+package com.dgtly.system.mapper;
+
+import com.dgtly.system.domain.MetaHanaDeliverSign;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 电子单签收状态数量Mapper接口
+ *
+ * @author dgtly
+ * @date 2025-01-03
+ */
+public interface MetaHanaDeliverSignMapper
+{
+    /**
+     * 查询电子单签收状态数量
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 电子单签收状态数量
+     */
+    public MetaHanaDeliverSign selectMetaHanaDeliverSignById(String deliverNumber);
+
+    /**
+     * 查询电子单签收状态数量列表
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 电子单签收状态数量集合
+     */
+    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignList(MetaHanaDeliverSign metaHanaDeliverSign);
+
+
+
+
+    /**
+     * 修改电子单签收状态数量
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 结果
+     */
+    public int updateMetaHanaDeliverSign(MetaHanaDeliverSign metaHanaDeliverSign);
+
+    /**
+     * 删除电子单签收状态数量
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 结果
+     */
+    public int deleteMetaHanaDeliverSignById(String deliverNumber);
+
+    /**
+     * 批量删除电子单签收状态数量
+     *
+     * @param deliverNumbers 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteMetaHanaDeliverSignByIds(String[] deliverNumbers);
+
+    /**
+     * @description: 查询有补货订单的电子签收数据
+     * @param: []
+     * @return: java.util.List<com.dgtly.system.domain.MetaHanaDeliverSign>
+     * @author: njs
+     * @date: 2025/1/3 15:58
+     */
+    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignListHavingAbnormal();
+
+    /**
+     * @description: 根据补货订单的订单号和行号查询该补货订单的详情
+     * @param: []
+     * @return: com.dgtly.system.domain.MetaHanaDeliverSign
+     * @author: njs
+     * @date: 2025/1/3 16:04
+     */
+    MetaHanaDeliverSign selectAbnormalSignByabnormalOrderAndItem(@Param("abnormalOrder") String abnormalOrder,@Param("abnormalOrderItem") String abnormalOrderItem);
+}

+ 57 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/IMetaHanaDeliverSignService.java

@@ -0,0 +1,57 @@
+package com.dgtly.system.service;
+
+import com.dgtly.system.domain.MetaHanaDeliverSign;
+import java.util.List;
+
+/**
+ * 电子单签收状态数量Service接口
+ *
+ * @author dgtly
+ * @date 2025-01-03
+ */
+public interface IMetaHanaDeliverSignService
+{
+    /**
+     * 查询电子单签收状态数量
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 电子单签收状态数量
+     */
+    public MetaHanaDeliverSign selectMetaHanaDeliverSignById(String deliverNumber);
+
+    /**
+     * 查询电子单签收状态数量列表
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 电子单签收状态数量集合
+     */
+    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignList(MetaHanaDeliverSign metaHanaDeliverSign);
+
+
+
+    /**
+     * 修改电子单签收状态数量
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 结果
+     */
+    public int updateMetaHanaDeliverSign(MetaHanaDeliverSign metaHanaDeliverSign);
+
+    /**
+     * 批量删除电子单签收状态数量
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteMetaHanaDeliverSignByIds(String ids);
+
+    /**
+     * 删除电子单签收状态数量信息
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 结果
+     */
+    public int deleteMetaHanaDeliverSignById(String deliverNumber);
+
+
+}

+ 86 - 0
suishenbang-system/src/main/java/com/dgtly/system/service/impl/MetaHanaDeliverSignServiceImpl.java

@@ -0,0 +1,86 @@
+package com.dgtly.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.dgtly.system.mapper.MetaHanaDeliverSignMapper;
+import com.dgtly.system.domain.MetaHanaDeliverSign;
+import com.dgtly.system.service.IMetaHanaDeliverSignService;
+import com.dgtly.common.core.text.Convert;
+
+/**
+ * 电子单签收状态数量Service业务层处理
+ *
+ * @author dgtly
+ * @date 2025-01-03
+ */
+@Service
+public class MetaHanaDeliverSignServiceImpl implements IMetaHanaDeliverSignService
+{
+    @Autowired
+    private MetaHanaDeliverSignMapper metaHanaDeliverSignMapper;
+
+    /**
+     * 查询电子单签收状态数量
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 电子单签收状态数量
+     */
+    @Override
+    public MetaHanaDeliverSign selectMetaHanaDeliverSignById(String deliverNumber)
+    {
+        return metaHanaDeliverSignMapper.selectMetaHanaDeliverSignById(deliverNumber);
+    }
+
+    /**
+     * 查询电子单签收状态数量列表
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 电子单签收状态数量
+     */
+    @Override
+    public List<MetaHanaDeliverSign> selectMetaHanaDeliverSignList(MetaHanaDeliverSign metaHanaDeliverSign)
+    {
+        return metaHanaDeliverSignMapper.selectMetaHanaDeliverSignList(metaHanaDeliverSign);
+    }
+
+
+
+    /**
+     * 修改电子单签收状态数量
+     *
+     * @param metaHanaDeliverSign 电子单签收状态数量
+     * @return 结果
+     */
+    @Override
+    public int updateMetaHanaDeliverSign(MetaHanaDeliverSign metaHanaDeliverSign)
+    {
+        return metaHanaDeliverSignMapper.updateMetaHanaDeliverSign(metaHanaDeliverSign);
+    }
+
+    /**
+     * 删除电子单签收状态数量对象
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMetaHanaDeliverSignByIds(String ids)
+    {
+        return metaHanaDeliverSignMapper.deleteMetaHanaDeliverSignByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除电子单签收状态数量信息
+     *
+     * @param deliverNumber 电子单签收状态数量ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMetaHanaDeliverSignById(String deliverNumber)
+    {
+        return metaHanaDeliverSignMapper.deleteMetaHanaDeliverSignById(deliverNumber);
+    }
+
+
+}

+ 96 - 0
suishenbang-system/src/main/resources/mapper/system/MetaHanaDeliverSignMapper.xml

@@ -0,0 +1,96 @@
+<?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.dgtly.system.mapper.MetaHanaDeliverSignMapper">
+
+    <resultMap type="MetaHanaDeliverSign" id="MetaHanaDeliverSignResult">
+        <result property="deliverNumber"    column="deliver_number"    />
+        <result property="deliverItem"    column="deliver_Item"    />
+        <result property="matnrCode"    column="matnr_code"    />
+        <result property="orderNumber"    column="order_number"    />
+        <result property="orderItem"    column="order_Item"    />
+        <result property="orderCreateTime"    column="order_create_time"    />
+        <result property="deliverQty"    column="deliver_qty"    />
+        <result property="actualQty"    column="actual_qty"    />
+        <result property="differenceQty"    column="difference_qty"    />
+        <result property="zdateDate"    column="zdate_date"    />
+        <result property="zdateTime"    column="zdate_time"    />
+        <result property="abnormalOrder"    column="abnormal_order"    />
+        <result property="abnormalStatus"    column="abnormal_status"    />
+    </resultMap>
+
+    <sql id="selectMetaHanaDeliverSignVo">
+        select deliver_number, deliver_Item,matnr_code, order_number, order_Item, order_create_time, deliver_qty, actual_qty, difference_qty, zdate_date, zdate_time, abnormal_order, abnormal_status from meta_hana_deliver_sign
+    </sql>
+
+    <select id="selectMetaHanaDeliverSignList" parameterType="MetaHanaDeliverSign" resultMap="MetaHanaDeliverSignResult">
+        <include refid="selectMetaHanaDeliverSignVo"/>
+        <where>
+            <if test="deliverNumber != null  and deliverNumber != ''"> and deliver_number = #{deliverNumber}</if>
+            <if test="deliverItem != null  and deliverItem != ''"> and deliver_Item = #{deliverItem}</if>
+            <if test="matnrCode != null  and matnrCode != ''"> and matnr_code = #{matnrCode}</if>
+            <if test="orderNumber != null  and orderNumber != ''"> and order_number = #{orderNumber}</if>
+            <if test="orderItem != null  and orderItem != ''"> and order_Item = #{orderItem}</if>
+            <if test="orderCreateTime != null  and orderCreateTime != ''"> and order_create_time = #{orderCreateTime}</if>
+            <if test="deliverQty != null  and deliverQty != ''"> and deliver_qty = #{deliverQty}</if>
+            <if test="actualQty != null  and actualQty != ''"> and actual_qty = #{actualQty}</if>
+            <if test="differenceQty != null  and differenceQty != ''"> and difference_qty = #{differenceQty}</if>
+            <if test="zdateDate != null  and zdateDate != ''"> and zdate_date = #{zdateDate}</if>
+            <if test="zdateTime != null  and zdateTime != ''"> and zdate_time = #{zdateTime}</if>
+            <if test="abnormalOrder != null  and abnormalOrder != ''"> and abnormal_order = #{abnormalOrder}</if>
+            <if test="abnormalStatus != null  and abnormalStatus != ''"> and abnormal_status = #{abnormalStatus}</if>
+
+        </where>
+    </select>
+
+    <select id="selectMetaHanaDeliverSignById" parameterType="String" resultMap="MetaHanaDeliverSignResult">
+        <include refid="selectMetaHanaDeliverSignVo"/>
+        where deliver_number = #{deliverNumber}
+    </select>
+
+
+
+    <update id="updateMetaHanaDeliverSign" parameterType="MetaHanaDeliverSign">
+        update meta_hana_deliver_sign
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="matnrCode != null  and matnrCode != ''">matnr_code = #{matnrCode},</if>
+            <if test="orderNumber != null  and orderNumber != ''">order_number = #{orderNumber},</if>
+            <if test="orderItem != null  and orderItem != ''">order_Item = #{orderItem},</if>
+            <if test="orderCreateTime != null  and orderCreateTime != ''">order_create_time = #{orderCreateTime},</if>
+            <if test="deliverQty != null  and deliverQty != ''">deliver_qty = #{deliverQty},</if>
+            <if test="actualQty != null  and actualQty != ''">actual_qty = #{actualQty},</if>
+            <if test="differenceQty != null  and differenceQty != ''">difference_qty = #{differenceQty},</if>
+            <if test="zdateDate != null  and zdateDate != ''">zdate_date = #{zdateDate},</if>
+            <if test="zdateTime != null  and zdateTime != ''">zdate_time = #{zdateTime},</if>
+            <if test="abnormalOrder != null  and abnormalOrder != ''">abnormal_order = #{abnormalOrder},</if>
+            <if test="abnormalStatus != null  and abnormalStatus != ''">abnormal_status = #{abnormalStatus},</if>
+
+        </trim>
+        where deliver_number = #{deliverNumber} and deliver_Item =#{deliverItem}
+    </update>
+
+    <delete id="deleteMetaHanaDeliverSignById" parameterType="String">
+        delete from meta_hana_deliver_sign where deliver_number = #{deliverNumber}
+    </delete>
+
+    <delete id="deleteMetaHanaDeliverSignByIds" parameterType="String">
+        delete from meta_hana_deliver_sign where deliver_number in
+        <foreach item="deliverNumber" collection="array" open="(" separator="," close=")">
+            #{deliverNumber}
+        </foreach>
+    </delete>
+
+    <select id="selectMetaHanaDeliverSignListHavingAbnormal" parameterType="MetaHanaDeliverSign" resultMap="MetaHanaDeliverSignResult">
+        <include refid="selectMetaHanaDeliverSignVo"/>
+        WHERE abnormal_order IS NOT NULL and abnormal_order !='' and abnormal_order !='null'
+    </select>
+
+    <select id="selectAbnormalSignByabnormalOrderAndItem" parameterType="MetaHanaDeliverSign" resultMap="MetaHanaDeliverSignResult">
+        <include refid="selectMetaHanaDeliverSignVo"/>
+         <where>
+            <if test="abnormalOrder != null  and abnormalOrder != ''"> and order_number = #{abnormalOrder}</if>
+         </where>
+         limit 1
+    </select>
+</mapper>