Эх сурвалжийг харах

Merge remote-tracking branch 'origin/yitoa_EDI_REST' into yitoa_EDI_REST

DINGYL 1 долоо хоног өмнө
parent
commit
7afe33f47e

+ 14 - 0
src/main/java/com/uas/eis/controller/GEController.java

@@ -3,12 +3,17 @@ package com.uas.eis.controller;
 import com.uas.eis.sdk.entity.ApiResult;
 import com.uas.eis.sdk.entity.GRApiResult;
 import com.uas.eis.service.GEService;
+import io.xlate.edi.schema.EDISchemaException;
+import io.xlate.edi.stream.EDIStreamException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import com.uas.eis.dto.*;
 
+import java.io.IOException;
+import java.util.Map;
+
 @RestController
 public class GEController {
     @Autowired
@@ -29,4 +34,13 @@ public class GEController {
     public ApiResult<String> pushSenderInfo( @RequestBody PoOrderGrDTO dto){
         return gEService.pushSenderInfo(dto);
     }
+
+    /**
+     * 推送出货ASN
+     */
+    @RequestMapping(value="/api/sendAsnShipment")
+    @ResponseBody
+    public ApiResult<String> sendAsnShipment(String master, Integer id) throws EDISchemaException, EDIStreamException, IOException {
+        return gEService.sendAsnShipment(master,id);
+    }
 }

+ 39 - 0
src/main/java/com/uas/eis/dto/AsnAddrInfoDTO.java

@@ -0,0 +1,39 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AsnAddrInfoDTO {
+    private String partyType;
+    private String partyName;
+    private String partyCode;
+    private String addiName1;
+    private String addiName2;
+    private String street1;
+    private String street2;
+    private String street3;
+    private String street4;
+    private String city;
+    private String state;
+    private String postalCode;
+    private String countryCode;
+    private String countryName;
+    private String district;
+    private String contactName;
+    private String contactEmail;
+    private String phone;
+    private String fax;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+
+}

+ 70 - 0
src/main/java/com/uas/eis/dto/AsnDTO.java

@@ -0,0 +1,70 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnDTO {
+    private String transId;
+    private String senderQualifier;
+    private String senderId;
+    private String receiverQualifier;
+    private String receiverId;
+    private String regionCode;
+    private String asnNo;
+    private Date asnDate;
+    private Date shipDate;
+    private String packType;
+    private String packCount;
+    private String totalGwt;
+    private String wtUom;
+    private String carrierType;
+    private String carrierCode;
+    private String carrierName;
+    private String ppgVol;
+    private String volUom;
+    private String transMethod;
+    private String routing;
+    private String poe;
+    private String agentCode;
+    private String agentName;
+    private String asnStatus;
+    private String incotermsCode;
+    private String mawbNo;
+    private String hawbNo;
+    private String flightNo;
+    private String waybillNo;
+    private String oceanCTNo;
+    private String invoiceNo;
+    private String voyageNo;
+    private String voyageName;
+    private String custPlant;
+    private String shipCondCode;
+    private String vendorCode;
+    private String vendorName;
+    private String shipperCode;
+    private Date ccDate;
+    private Date reqDate;
+    private Date pickUpDate;
+    private Date estCCDate;
+    private Date etd;
+    private Date actDeptDate;
+    private Date eta;
+    private Date ata;
+    private String siteCode;
+    private String transactionId;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+    private List<AsnAddrInfoDTO> addrInfo;
+    private List<AsnOrderDTO> asnOrder;
+
+}

+ 11 - 0
src/main/java/com/uas/eis/dto/AsnDetDTO.java

@@ -0,0 +1,11 @@
+package com.uas.eis.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class AsnDetDTO {
+    @JsonProperty("ASN")
+    private AsnDTO ASN;
+
+}

+ 27 - 0
src/main/java/com/uas/eis/dto/AsnOrderDTO.java

@@ -0,0 +1,27 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnOrderDTO {
+    private String asnNo;
+    private String poNo;
+    private Date poDate;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+    private List<AsnPalletDTO> asnPallet;
+    private List<AsnPackDTO> asnPack;
+    private List<AsnOrderDetailDTO> asnOrderDetail;
+
+}

+ 44 - 0
src/main/java/com/uas/eis/dto/AsnOrderDetailDTO.java

@@ -0,0 +1,44 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnOrderDetailDTO {
+    private String asnNo;
+    private String poNo;
+    private String poLineNo;
+    private String packNo;
+    private String custPartNo;
+    private String custPartDesc;
+    private String vendorPartNo;
+    private String vendorPartDesc;
+    private String custPlant;
+    private String custStorLoc;
+    private String qty;
+    private String qtyUom;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+    private String attr11;
+    private String attr12;
+    private String attr13;
+    private String attr14;
+    private String attr15;
+    private String attr16;
+    private String attr17;
+    private String attr18;
+    private String attr19;
+    private String attr20;
+    private List<AsnSnDetailDTO> asnSnDetail;
+
+}

+ 44 - 0
src/main/java/com/uas/eis/dto/AsnPackDTO.java

@@ -0,0 +1,44 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnPackDTO {
+    private String asnNo;
+    private String poNo;
+    private String poLineNo;
+    private String packType;
+    private String packNo;
+    private String parentPackNo;
+    private String packCode;
+    private String palLayers;
+    private String layerPieces;
+    private String packCount;
+    private String packUnitWt;
+    private String wtUom;
+    private String length;
+    private String width;
+    private String height;
+    private String dimUom;
+    private String grossWT;
+    private String gVol;
+    private String volUom;
+    private String manPackCount;
+    private String innerPackCount;
+    private String sscc;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+    private List<AsnOrderDetailDTO> asnOrderDetail;
+
+}

+ 45 - 0
src/main/java/com/uas/eis/dto/AsnPalletDTO.java

@@ -0,0 +1,45 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnPalletDTO {
+    private String asnNo;
+    private String poNo;
+    private String poLineNo;
+    private String packType;
+    private String packNo;
+    private String parentPackNo;
+    private String packCode;
+    private String palLayers;
+    private String layerPieces;
+    private String packCount;
+    private String packUnitWt;
+    private String wtUom;
+    private String length;
+    private String width;
+    private String height;
+    private String dimUom;
+    private String grossWT;
+    private String gVol;
+    private String volUom;
+    private String manPackCount;
+    private String innerPackCount;
+    private String sscc;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+    private List<AsnPackDTO> asnPack;
+    private List<AsnOrderDetailDTO> asnOrderDetail;
+
+}

+ 27 - 0
src/main/java/com/uas/eis/dto/AsnSnDetailDTO.java

@@ -0,0 +1,27 @@
+package com.uas.eis.dto;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class AsnSnDetailDTO {
+    private String asnNo;
+    private String poNo;
+    private String poLineNo;
+    private String packNo;
+    private String snNo;
+    private String productDate;
+    private String attr1;
+    private String attr2;
+    private String attr3;
+    private String attr4;
+    private String attr5;
+    private String attr6;
+    private String attr7;
+    private String attr8;
+    private String attr9;
+    private String attr10;
+
+}

+ 7 - 0
src/main/java/com/uas/eis/service/GEService.java

@@ -6,6 +6,11 @@ import com.uas.eis.sdk.entity.GRApiResult;
 
 import javax.servlet.http.HttpServletRequest;
 import com.uas.eis.dto.*;
+import io.xlate.edi.schema.EDISchemaException;
+import io.xlate.edi.stream.EDIStreamException;
+
+import java.io.IOException;
+import java.util.Map;
 
 public interface GEService {
 
@@ -20,4 +25,6 @@ public interface GEService {
      * */
     ApiResult<String> pushSenderInfo(PoOrderGrDTO dto);
 
+    ApiResult<String> sendAsnShipment(String master, Integer id) throws EDISchemaException, EDIStreamException, IOException;
+
 }

+ 247 - 1
src/main/java/com/uas/eis/service/Impl/GEServiceImpl.java

@@ -2,9 +2,11 @@ package com.uas.eis.service.Impl;
 
 import com.alibaba.fastjson.JSON;
 import com.uas.eis.config.SynaConfig;
+import com.uas.eis.core.X12Converter;
 import com.uas.eis.core.config.SpObserver;
 import com.uas.eis.core.support.TokenProperties;
 import com.uas.eis.dao.BaseDao;
+import com.uas.eis.dao.SqlRowList;
 import com.uas.eis.entity.*;
 import com.uas.eis.sdk.entity.ApiResult;
 import com.uas.eis.sdk.entity.GRApiResult;
@@ -16,6 +18,8 @@ import com.uas.eis.service.GEService;
 import com.uas.eis.utils.HttpUtil;
 import com.uas.eis.utils.HuToolUtils;
 import com.uas.eis.vo.HttpResultResponse;
+import io.xlate.edi.schema.EDISchemaException;
+import io.xlate.edi.stream.EDIStreamException;
 import okhttp3.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,6 +29,10 @@ import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.constraints.Null;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import com.uas.eis.dto.*;
 
@@ -177,7 +185,7 @@ public class GEServiceImpl implements GEService {
         try{
             //resultResponse =  HuToolUtils.post(asnUrl,dto);
             //头部请求参数
-            Map<String,String> headerMap =  new HashMap<>();;
+            Map<String,String> headerMap =  new HashMap<>();
             headerMap.put("user","WD");
             headerMap.put("password","WD@test+1");
             resultResponse =  HuToolUtils.post(asnUrl,dto,headerMap);
@@ -195,4 +203,242 @@ public class GEServiceImpl implements GEService {
     /*public 接口调用参数 dtoFrom(数据库查询出来的参数){
         return 接口调用需要的参数;
     }*/
+
+
+    @Override
+    public ApiResult<String> sendAsnShipment(String master, Integer id) throws EDISchemaException, EDIStreamException, IOException {
+        SpObserver.putSp(master);
+        Map<String, Object> modelMap = new HashMap<String, Object>();
+        int count = baseDao.getCount("select count(1)  from AsnShipment where as_id=" + id);
+        if (count>0){
+            //接口返回
+            HttpResultResponse resultResponse = null;
+            //头部请求参数
+            Map<String,String> headerMap =  new HashMap<>();
+            /*headerMap.put("user","WD");
+            headerMap.put("password","WD@test+1");*/
+            String username = "WD";
+            String password = "WD@test+1";
+            String auth = username + ":" + password;
+            String encodedAuth = Base64.getEncoder()
+                    .encodeToString(auth.getBytes(StandardCharsets.UTF_8));
+            headerMap.put("Authorization", "Basic " + encodedAuth);
+            headerMap.put("Content-Type", "application/json; charset=UTF-8");
+            AsnDetDTO asnDetDTO = new AsnDetDTO();
+            AsnDTO aAsnDTO = new AsnDTO();
+            SqlRowList rs = baseDao.queryForRowSet("select as_transid,as_asnno,TO_CHAR(as_recorddate, 'yyyy-MM-dd hh24:mi:ss') as_recorddate,TO_CHAR(asd_senddate, 'yyyy-MM-dd hh24:mi:ss') asd_senddate, " +
+                    "as_packtype,asd_fyqty,asd_invoice,asd_tycode,TO_CHAR(asd_arrivaldate, 'yyyy-MM-dd hh24:mi:ss') asd_arrivaldate,TO_CHAR(asd_lgdate, 'yyyy-MM-dd hh24:mi:ss') asd_lgdate,TO_CHAR(asd_dgdate, 'yyyy-MM-dd hh24:mi:ss') asd_dgdate," +
+                    "asd_countryqy,asd_cityqy,asd_transportation " +
+                    "from AsnShipment left join (select asd_asid,max(asd_senddate) asd_senddate,sum(nvl(asd_fyqty,0)) asd_fyqty,max(asd_invoice) asd_invoice,max(asd_tycode) asd_tycode,max(asd_arrivaldate) asd_arrivaldate, " +
+                    "max(asd_lgdate) asd_lgdate,max(asd_dgdate) asd_dgdate,max(asd_countryqy) asd_countryqy,max(asd_cityqy) asd_cityqy,max(asd_transportation) asd_transportation " +
+                    "from ASNSHIPMENTDETAIL group by asd_asid) on asd_asid = as_id " +
+                    "where as_id = ?",id);
+            while (rs.next()) {
+                //ASN
+                aAsnDTO.setTransId(rs.getGeneralString("as_transid"));
+                aAsnDTO.setSenderQualifier("ZZ");
+                aAsnDTO.setSenderId("WOLIDSHINE");
+                aAsnDTO.setReceiverQualifier("ZZ");
+                aAsnDTO.setReceiverId("GOERTEK");
+                aAsnDTO.setAsnNo(rs.getGeneralString("as_asnno"));
+                String dateStr = rs.getString("as_recorddate");
+                if (dateStr != null) {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = sdf.parse(dateStr);
+                        aAsnDTO.setAsnDate(date);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+                dateStr = rs.getString("asd_senddate");
+                if (dateStr != null) {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = sdf.parse(dateStr);
+                        aAsnDTO.setShipDate(date);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+
+                aAsnDTO.setPackType(rs.getGeneralString("as_packtype"));
+                aAsnDTO.setPackCount(rs.getGeneralString("asd_fyqty"));
+                aAsnDTO.setWaybillNo(rs.getGeneralString("asd_tycode"));
+                aAsnDTO.setInvoiceNo(rs.getGeneralString("asd_invoice"));
+                if ("N_HUASL_QD".equals(master)) {
+                    aAsnDTO.setVendorCode("18850");
+                } else if ("N_HUASL_T".equals(master)) {
+                    aAsnDTO.setVendorCode("14780");
+                }
+                dateStr = rs.getString("asd_arrivaldate");
+                if (dateStr != null) {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = sdf.parse(dateStr);
+                        aAsnDTO.setEstCCDate(date);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+                dateStr = rs.getString("asd_lgdate");
+                if (dateStr != null) {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = sdf.parse(dateStr);
+                        aAsnDTO.setEtd(date);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+                dateStr = rs.getString("asd_dgdate");
+                if (dateStr != null) {
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    try {
+                        Date date = sdf.parse(dateStr);
+                        aAsnDTO.setEta(date);
+                    } catch (ParseException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+                aAsnDTO.setAttr2("Y");
+                aAsnDTO.setAttr7("N");
+                aAsnDTO.setAttr8(rs.getGeneralString("asd_iswooden"));
+                aAsnDTO.setAttr5(rs.getGeneralString("asd_countryqy"));
+                aAsnDTO.setAttr6(rs.getGeneralString("asd_cityqy"));
+                aAsnDTO.setTransMethod(rs.getGeneralString("asd_transportation"));
+                //addrInfo
+                List<AsnAddrInfoDTO> asnAddrInfoDTOl = new ArrayList<AsnAddrInfoDTO>();
+                AsnAddrInfoDTO asnAddrInfoDTO = new AsnAddrInfoDTO();
+                asnAddrInfoDTO.setPartyType("SH");
+                if ("N_HUASL_QD".equals(master)) {
+                    asnAddrInfoDTO.setPartyName("青岛华商龙科技有限公司");
+                    asnAddrInfoDTO.setPartyCode("P114310078");
+                } else if ("N_HUASL_T".equals(master)) {
+                    asnAddrInfoDTO.setPartyName("华商龙科技有限公司");
+                    asnAddrInfoDTO.setPartyCode("SHPR083");
+                }
+
+                asnAddrInfoDTOl.add(asnAddrInfoDTO);
+                aAsnDTO.setAddrInfo(asnAddrInfoDTOl);
+                //asnOrder
+                List<AsnOrderDTO> AsnOrderDTOl = new ArrayList<AsnOrderDTO>();
+                SqlRowList rsOrder = baseDao.queryForRowSet("select distinct as_asnno,asd_cgcode,as_packtype " +
+                        "from AsnShipment left join ASNSHIPMENTDETAIL on as_id = asd_asid where as_id = ?",id);
+                while (rsOrder.next()) {
+                    AsnOrderDTO asnOrderDTO = new AsnOrderDTO();
+                    asnOrderDTO.setAsnNo(rsOrder.getString("as_asnno"));
+                    asnOrderDTO.setPoNo(rsOrder.getString("asd_cgcode"));
+                    if("箱序".equals(rsOrder.getString("as_packtype"))){
+                        //箱序  asnPack
+                        SqlRowList rsasnPack = baseDao.queryForRowSet("select as_asnno,aspo_cgcode,aspo_cgdetno,aspo_bzway,aspo_packno,aspo_bzqty,aspo_grossload, " +
+                                "aspo_tall,aspo_wide,aspo_long,aspo_quantity,aspo_custpartno,aspo_cgqty,aspo_countryyc " +
+                                "from AsnShipment left join ASNSHIPMENTORDER on as_id = aspo_asid where as_id = ?",id);
+                        List<AsnPackDTO> AsnPackDTOl = new ArrayList<AsnPackDTO>();
+                        while (rsasnPack.next()) {
+                            AsnPackDTO asnPackDTO = new AsnPackDTO();
+                            asnPackDTO.setAsnNo(rsasnPack.getString("as_asnno"));
+                            asnPackDTO.setPoNo(rsasnPack.getString("aspo_cgcode"));
+                            asnPackDTO.setPoLineNo(rsasnPack.getString("aspo_cgdetno"));
+                            asnPackDTO.setPackType(rsasnPack.getString("aspo_bzway"));
+                            asnPackDTO.setPackNo(rsasnPack.getString("aspo_packno"));
+                            asnPackDTO.setPackCount(rsasnPack.getString("aspo_bzqty"));
+                            asnPackDTO.setPackUnitWt(rsasnPack.getString("aspo_grossload"));
+                            asnPackDTO.setGrossWT(rsasnPack.getString("aspo_grossload"));
+                            asnPackDTO.setLength(rsasnPack.getString("aspo_tall"));
+                            asnPackDTO.setWidth(rsasnPack.getString("aspo_wide"));
+                            asnPackDTO.setHeight(rsasnPack.getString("aspo_long"));
+                            asnPackDTO.setManPackCount(rsasnPack.getString("aspo_quantity"));
+                            asnPackDTO.setInnerPackCount(rsasnPack.getString("aspo_quantity"));
+                            asnPackDTO.setAttr1("1");
+                            //asnOrderDetail
+                            List<AsnOrderDetailDTO> asnOrderDetailDTOl = new ArrayList<AsnOrderDetailDTO>();
+                            AsnOrderDetailDTO asnOrderDetailDTO = new AsnOrderDetailDTO();
+                            asnOrderDetailDTO.setAsnNo(rsasnPack.getString("as_asnno"));
+                            asnOrderDetailDTO.setPoNo(rsasnPack.getString("aspo_cgcode"));
+                            asnOrderDetailDTO.setPoLineNo(rsasnPack.getString("aspo_cgdetno"));
+                            asnOrderDetailDTO.setPackNo(rsasnPack.getString("aspo_packno"));
+                            asnOrderDetailDTO.setCustPlant(rsasnPack.getString("aspo_custpartno"));
+                            asnOrderDetailDTO.setCustPartDesc(rsasnPack.getString("aspo_custpartname"));
+                            asnOrderDetailDTO.setQty(rsasnPack.getString("aspo_cgqty"));
+                            asnOrderDetailDTO.setAttr4(rsasnPack.getString("aspo_cgqty"));
+                            asnOrderDetailDTO.setAttr5(rsasnPack.getString("aspo_grossload"));
+                            asnOrderDetailDTO.setAttr6("KG");
+                            asnOrderDetailDTO.setAttr8(rs.getGeneralString("asd_invoice"));
+                            asnOrderDetailDTO.setAttr9(rsasnPack.getString("aspo_countryyc"));
+
+                            //asnSNDetail
+                            List<AsnSnDetailDTO> asnSnDetailDTOl = new ArrayList<AsnSnDetailDTO>();
+                            AsnSnDetailDTO asnSnDetailDTO = new AsnSnDetailDTO();
+                            asnSnDetailDTO.setAsnNo(rsasnPack.getString("as_asnno"));
+                            asnSnDetailDTO.setPoNo(rsasnPack.getString("aspo_cgcode"));
+                            asnSnDetailDTO.setPoLineNo(rsasnPack.getString("aspo_cgdetno"));
+
+                            asnSnDetailDTOl.add(asnSnDetailDTO);
+                            asnOrderDetailDTO.setAsnSnDetail(asnSnDetailDTOl);
+
+                            asnOrderDetailDTOl.add(asnOrderDetailDTO);
+                            asnPackDTO.setAsnOrderDetail(asnOrderDetailDTOl);
+
+                            AsnPackDTOl.add(asnPackDTO);
+                            asnOrderDTO.setAsnPack(AsnPackDTOl);
+                        }
+                    }else{
+                        //无托箱  asnPack
+                        SqlRowList rsasnPack = baseDao.queryForRowSet("select as_asnno,aspo_cgcode,aspo_cgdetno,aspo_bzway,aspo_packno,aspo_bzqty,aspo_grossload, " +
+                                "aspo_tall,aspo_wide,aspo_long,aspo_quantity,aspo_custpartno,aspo_cgqty,aspo_countryyc " +
+                                "from AsnShipment left join ASNSHIPMENTORDER on as_id = aspo_asid where as_id = ?",id);
+                        List<AsnOrderDetailDTO> asnOrderDetailDTOl = new ArrayList<AsnOrderDetailDTO>();
+                        while (rsasnPack.next()) {
+                            //asnOrderDetail
+                            AsnOrderDetailDTO asnOrderDetailDTO = new AsnOrderDetailDTO();
+                            asnOrderDetailDTO.setAsnNo(rsasnPack.getString("as_asnno"));
+                            asnOrderDetailDTO.setPoNo(rsasnPack.getString("aspo_cgcode"));
+                            asnOrderDetailDTO.setPoLineNo(rsasnPack.getString("aspo_cgdetno"));
+                            asnOrderDetailDTO.setPackNo(rsasnPack.getString("aspo_packno"));
+                            asnOrderDetailDTO.setCustPlant(rsasnPack.getString("aspo_custpartno"));
+                            asnOrderDetailDTO.setCustPartDesc(rsasnPack.getString("aspo_custpartname"));
+                            asnOrderDetailDTO.setQty(rsasnPack.getString("aspo_cgqty"));
+                            asnOrderDetailDTO.setAttr4(rsasnPack.getString("aspo_cgqty"));
+                            asnOrderDetailDTO.setAttr5(rsasnPack.getString("aspo_grossload"));
+                            asnOrderDetailDTO.setAttr6("KG");
+                            asnOrderDetailDTO.setAttr8(rs.getGeneralString("asd_invoice"));
+                            asnOrderDetailDTO.setAttr9(rsasnPack.getString("aspo_countryyc"));
+
+                            //asnSNDetail
+                            List<AsnSnDetailDTO> asnSnDetailDTOl = new ArrayList<AsnSnDetailDTO>();
+                            AsnSnDetailDTO asnSnDetailDTO = new AsnSnDetailDTO();
+                            asnSnDetailDTO.setAsnNo(rsasnPack.getString("as_asnno"));
+                            asnSnDetailDTO.setPoNo(rsasnPack.getString("aspo_cgcode"));
+                            asnSnDetailDTO.setPoLineNo(rsasnPack.getString("aspo_cgdetno"));
+
+                            asnSnDetailDTOl.add(asnSnDetailDTO);
+                            asnOrderDetailDTO.setAsnSnDetail(asnSnDetailDTOl);
+
+                            asnOrderDetailDTOl.add(asnOrderDetailDTO);
+                            asnOrderDTO.setAsnOrderDetail(asnOrderDetailDTOl);
+
+                        }
+                    }
+                    AsnOrderDTOl.add(asnOrderDTO);
+
+
+                }
+                aAsnDTO.setAsnOrder(AsnOrderDTOl);
+
+
+
+            }
+            asnDetDTO.setASN(aAsnDTO);
+            resultResponse =  HuToolUtils.post(asnUrl,asnDetDTO,headerMap);
+
+            logger.info("推送发货信息到歌尔,接口返回结果:{}",resultResponse);
+            return ApiResponse.successRsp("200", JSON.toJSONString(resultResponse));
+        }else{
+            logger.info("单据不存在:id={}",id);
+        }
+        return null;
+    }
+
+
 }