Bläddra i källkod

优化凭证同步

wangjun 1 dag sedan
förälder
incheckning
57b9402f66

+ 1 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/mservice/SyncSapFIUtils.java

@@ -314,6 +314,7 @@ public class SyncSapFIUtils {
         sb.append(GlVoucherConstantInfo.BOOKEDDATE).append(",");  //  记账日期
         sb.append(GlVoucherConstantInfo.DESCRIPTION).append(",");  //  凭证描述
         sb.append(GlVoucherConstantInfo.VOUCHERTYPE).append(",");  //   凭证类型
+        sb.append(GlVoucherConstantInfo.VOUCHERTYPE).append(".name").append(",");  //   凭证类型名称
         sb.append(GlVoucherConstantInfo.ORG).append(",");  //  公司
         sb.append(GlVoucherConstantInfo.ORG).append(".number").append(",");  //   公司编码
         sb.append(GlVoucherConstantInfo.ORG).append(".name").append(",");  //   公司名称

+ 18 - 12
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/mservice/impl/SynSapFIServiceImpl.java

@@ -59,7 +59,7 @@ public class SynSapFIServiceImpl implements SynSapService {
                 String billid = voucherRow.getString("id");
                 String companyCode = voucherRow.getString("org.number");
 
-                voucherInfo = companyCode + "|" + voucherRow.getString("vouchertype") + "|" + voucherRow.getString("billno");
+                voucherInfo = companyCode + "|" + voucherRow.getString("vouchertype.name") + "|" + voucherRow.getString("billno");
                 Map<String, String> auxpropertiesMap = SyncSapFIUtils.getAssGrp(voucherRow);
 
                 if (StringUtils.isNotEmpty(auxpropertiesMap.get("maincfitemNumber"))) {
@@ -73,21 +73,27 @@ public class SynSapFIServiceImpl implements SynSapService {
             }
 
             String jsonData = SyncSapFIUtils.getVoucherData(HEADERITEMINFO, ENTRY_ITEM);
-            System.out.println("凭证 info:" + voucherInfo);
-            System.out.println("凭证 post:" + jsonData);
+            //System.out.println("凭证 info:" + voucherInfo);
+            logger.info("凭证 info:" + voucherInfo);
+            logger.info("凭证 post:" + jsonData);
             String response = SyncSapFIUtils.postDataToSAP(jsonData);
-            //String response = "{\"E_TYPE\":\"S\",\"E_MESSGE\":\"成功\"}";
-            System.out.println("凭证 return:" + response);
+            logger.info("凭证 return:" + response);
             if (StringUtils.isEmpty(response)) {
                 err.append("同步失败,凭证:" + voucherInfo);
             }
-            JSONObject rData = JSONObject.parseObject(response);
-            String etype = rData.getString("E_TYPE");
-
-            if (!"S".equals(etype)) {
-                err.append("/n 凭证:" + voucherInfo + ",E_TYPE:" + etype + ",错误信息:" + rData.getString("E_MESSGE"));
-            } else {
-                count++;
+            JSONObject rsJson = JSONObject.parseObject(response);
+            JSONObject reEt = rsJson.getJSONObject("ET_RETURN");
+            JSONArray item = reEt.getJSONArray("item");
+            for (int i = 0; i < item.size(); i++) {
+                JSONObject itemInfo = item.getJSONObject(i);
+                String type = itemInfo.getString("TYPE");
+                String msg = itemInfo.getString("MESSAGE");
+                String notes = itemInfo.getString("BKTXT");
+                if ("S".equals(type)) {
+                    err.append("/n 凭证:" + voucherInfo + ",错误信息:" + msg + "|" + notes);
+                }else{
+                    count++;
+                }
             }
         }