浏览代码

Merge remote-tracking branch 'origin/电子签收hana数据' into uat

njs 11 月之前
父节点
当前提交
c048f3bc27

+ 13 - 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() {
     }
 
@@ -202,8 +206,10 @@ public class HanaOrderComponent {
         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" +
@@ -352,8 +358,10 @@ public class HanaOrderComponent {
 
                 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")
@@ -1186,7 +1194,10 @@ public class HanaOrderComponent {
                 }
             }
         }
-
+        /**
+         *电子单签收数据处理有补货订单的数据,将补货订单的数据实收数量和差异数量放到主单里;方便要货时进行简单计算和判断处理
+         */
+        metaHanaDeliverSignService.handleDeliverSignAbnormal();
     }
 
 //订单

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

@@ -0,0 +1,80 @@
+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 abnormalOrderItem;
+
+    /** 异常处理的订单实收数量 */
+    @Excel(name = "异常处理的订单实收数量")
+    private String abnormalActualQty;
+
+    /** 异常出库订单的差异数量 */
+    @Excel(name = "异常出库订单的差异数量")
+    private String abnormalDifferenceQty;
+
+}

+ 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);
+}

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

@@ -0,0 +1,64 @@
+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);
+
+    /**
+     * @description: 处理有补货订单的签收数据
+     * @param: []
+     * @return: java.util.List<com.dgtly.system.domain.MetaHanaDeliverSign>
+     * @author: njs
+     * @date: 2025/1/3 15:52
+     */
+   public void handleDeliverSignAbnormal();
+}

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

@@ -0,0 +1,113 @@
+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);
+    }
+
+    /**
+     * @description: 查询有补货订单的签收数据
+     * @param: []
+     * @return: java.util.List<com.dgtly.system.domain.MetaHanaDeliverSign>
+     * @author: njs
+     * @date: 2025/1/3 15:52
+     */
+    @Override
+    public void handleDeliverSignAbnormal() {
+        /**
+         *电子单签收数据处理有补货订单的数据,将补货订单的数据实收数量和差异数量放到主单里;方便要货时进行简单计算和判断处理
+         */
+        //查询有补货订单的数据
+        List<MetaHanaDeliverSign> deliverSignList = metaHanaDeliverSignMapper.selectMetaHanaDeliverSignListHavingAbnormal();
+        if(deliverSignList !=null && deliverSignList.size()>0){
+            deliverSignList.forEach(deliverSign->{
+                //查询补货订单的实收数量和差异数量
+                MetaHanaDeliverSign abnormalSign = metaHanaDeliverSignMapper.selectAbnormalSignByabnormalOrderAndItem(deliverSign.getAbnormalOrder(),deliverSign.getAbnormalOrderItem());
+                if(abnormalSign !=null){
+                    //差异数量
+                    deliverSign.setAbnormalDifferenceQty(abnormalSign.getDifferenceQty());
+                    //实收数量
+                    deliverSign.setAbnormalActualQty(abnormalSign.getActualQty());
+                    metaHanaDeliverSignMapper.updateMetaHanaDeliverSign(deliverSign);
+                }
+            });
+        }
+    }
+}

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

@@ -0,0 +1,101 @@
+<?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="abnormalOrderItem"    column="abnormal_order_Item"    />
+        <result property="abnormalActualQty"    column="abnormal_actual_qty"    />
+        <result property="abnormalDifferenceQty"    column="abnormal_difference_qty"    />
+    </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_order_Item, abnormal_actual_qty, abnormal_difference_qty 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="abnormalOrderItem != null  and abnormalOrderItem != ''"> and abnormal_order_Item = #{abnormalOrderItem}</if>
+            <if test="abnormalActualQty != null  and abnormalActualQty != ''"> and abnormal_actual_qty = #{abnormalActualQty}</if>
+            <if test="abnormalDifferenceQty != null  and abnormalDifferenceQty != ''"> and abnormal_difference_qty = #{abnormalDifferenceQty}</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="abnormalOrderItem != null  and abnormalOrderItem != ''">abnormal_order_Item = #{abnormalOrderItem},</if>
+            <if test="abnormalActualQty != null  and abnormalActualQty != ''">abnormal_actual_qty = #{abnormalActualQty},</if>
+            <if test="abnormalDifferenceQty != null  and abnormalDifferenceQty != ''">abnormal_difference_qty = #{abnormalDifferenceQty},</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>
+             <if test="abnormalOrderItem != null  and abnormalOrderItem != ''"> and order_Item = #{abnormalOrderItem}</if>
+         </where>
+         limit 1
+    </select>
+</mapper>