ソースを参照

【集团EDI-新思&歌尔】【新思-860(采购变更单)】

DINGYL 2 ヶ月 前
コミット
3acf7cc092

+ 4 - 8
src/main/java/com/uas/eis/core/X12Converter.java

@@ -21,11 +21,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 public class X12Converter {
-    private BaseDao baseDao;
-
-    private SynaConfig synaConfig;
-
-    static final String X12_VERSION = "00401";
+   static final String X12_VERSION = "00401";
 
     private EDIStreamWriter newEDIWriter(OutputStream stream) throws EDISchemaException {
         EDIOutputFactory factory = EDIOutputFactory.newFactory();
@@ -56,7 +52,7 @@ public class X12Converter {
                 .writeEndSegment();
     }
 
-    public String convertToX12(Purchase po,String ediId) throws EDISchemaException, EDIStreamException {
+    public String convertToX12(Purchase po,String ediId,SynaConfig synaConfig) throws EDISchemaException, EDIStreamException {
         OutputStream stream=new ByteArrayOutputStream();
         EDIStreamWriter writer = newEDIWriter(stream);
         //开始
@@ -159,7 +155,7 @@ public class X12Converter {
         return stream.toString();
     }
 
-    public String convertToX12(PurchaseChange pc, String ediId) throws EDISchemaException, EDIStreamException {
+    public String convertToX12(PurchaseChange pc, String ediId,SynaConfig synaConfig) throws EDISchemaException, EDIStreamException {
         OutputStream stream=new ByteArrayOutputStream();
         EDIStreamWriter writer = newEDIWriter(stream);
 
@@ -252,7 +248,7 @@ public class X12Converter {
         // 结束事务集 (SE) - 需要手动计算段数量
         writer.writeStartSegment("SE")
                 .writeElement(String.valueOf(txCount)) // 段数量 (ST到SE之间的段数,包括ST和SE)
-                .writeElement("301").writeEndSegment(); // 事务集控制编号 (与ST中的一致)
+                .writeElement("0001").writeEndSegment(); // 事务集控制编号 (与ST中的一致)
 
         writer.writeStartSegment("GE")
                 .writeElement("1")

+ 2 - 1
src/main/java/com/uas/eis/entity/PurchaseChange.java

@@ -2,6 +2,7 @@ package com.uas.eis.entity;
 
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 @Data
@@ -16,6 +17,6 @@ public class PurchaseChange {
     private List<PurchaseChangeDetail> items;
 
     private String pu_code;
-    private String pu_date;
+    private Date pu_date;
     private String Pu_shipaddresscode;
 }

+ 10 - 7
src/main/java/com/uas/eis/service/Impl/SynaServiceImpl.java

@@ -52,7 +52,7 @@ public class SynaServiceImpl implements SynaService {
             String ediId = getEDIId();
             System.out.println(ediId);
             X12Converter converter=new X12Converter();
-            String data=converter.convertToX12(po,ediId);
+            String data=converter.convertToX12(po,ediId,synaConfig);
             String url= synaConfig.getUrl_850();
             System.out.println("X12:");
             System.out.println( data);
@@ -74,8 +74,8 @@ public class SynaServiceImpl implements SynaService {
             String ediId = getEDIId();
             System.out.println(ediId);
             X12Converter converter=new X12Converter();
-            String data=converter.convertToX12(pc,ediId);
-            String url= synaConfig.getUrl_850();
+            String data=converter.convertToX12(pc,ediId,synaConfig);
+            String url= synaConfig.getUrl_860();
             System.out.println("X12:");
             System.out.println( data);
             logger.info("sendPurchaseChangeToSyna:po:{} X12-data:{}",pc.getPc_code(),data);
@@ -89,7 +89,7 @@ public class SynaServiceImpl implements SynaService {
     private PurchaseChange getPC( Integer id){
         PurchaseChange pc=baseDao.getJdbcTemplate().queryForObject("select pc_id,pc_code,pc_purccode,pc_newcurrency,pc_deliveryparty,pc_isr," +
                 " pu_code ,pu_date,Pu_shipaddresscode " +
-                " from PurchaseChange left join purchase on pc_purccode=pu_code where pu_id=?", new BeanPropertyRowMapper<PurchaseChange>(PurchaseChange.class), id);
+                " from PurchaseChange left join purchase on pc_purccode=pu_code where pc_id=?", new BeanPropertyRowMapper<PurchaseChange>(PurchaseChange.class), id);
         List<PurchaseChangeDetail> detail = baseDao.getJdbcTemplate().query(
                 "select  pcd_id, pcd_newprodcode, pcd_newqty, pcd_newprice,pcd_pddetno,pcd_newdelivery,pcd_so," +
                         "nvl(pcd_quote,pd_quote) quote," +
@@ -102,11 +102,14 @@ public class SynaServiceImpl implements SynaService {
                         "      when nvl(pcd_oldqty,0)>nvl(pcd_newqty,0) then 'QD' " +
                         "      when nvl(pcd_oldqty,0)<nvl(pcd_newqty,0) then 'QI' " +
                         " end ) changetype," +
+                        "pu_date," +
                         "pd_qty-nvl(pd_yqty,0) pd_leftqty," +
                         "pr_orispeccode " +
-                        "from PurchaseChange left join PurchaseChangedetail on pcd_pcid=pc_id left join Purchasedetail on pc_purccode=pd_code and pcd_pddetno=pd_detno" +
-                        "left join product on pcd_newprodcode =pr_code" +
-                        " where pd_puid=? order by pd_detno", new BeanPropertyRowMapper<PurchaseChangeDetail>(PurchaseChangeDetail.class),
+                        "from PurchaseChange left join PurchaseChangedetail on pcd_pcid=pc_id " +
+                        " left join Purchase on pc_purccode=pu_code" +
+                        " left join Purchasedetail on pd_puid=pu_id and pcd_pddetno=pd_detno " +
+                        " left join product on pcd_newprodcode =pr_code" +
+                        " where pc_id=? order by pcd_detno", new BeanPropertyRowMapper<PurchaseChangeDetail>(PurchaseChangeDetail.class),
                 id);
         pc.setItems(detail);
         return pc;

+ 3 - 1
src/test/java/com/uas/eis/SynaTests.java

@@ -26,11 +26,13 @@ public class SynaTests {
 
 	@Test
 	public void TestPc() throws Exception {
-		synaService.sendPurchaseToSyna("N_HUASL_T",50847950);
+		synaService.sendPurchaseChangeToSyna("N_HUASL_T",73272);
 	}
 
 	@Test
 	public void Test() throws Exception {
+		String  t=synaConfig.getBill_to_address();
+		System.out.println(t);
 		System.out.println(synaConfig.getUsername());
 	}