Browse Source

【英唐电子发票】

DINGYL 2 years ago
parent
commit
004e7ecfb6

+ 5 - 3
src/main/java/com/uas/eis/controller/ERPController.java

@@ -7,6 +7,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 
 /**
  * @author koul
@@ -22,20 +24,20 @@ public class ERPController {
      *开票订单对接-创建订单
      */
     @RequestMapping("/erp/pushInvoiceOrder")
-    public ApiResult<String> pushInvoiceOrder(String master,int id){
+    public Map<String, Object> pushInvoiceOrder(String master, Integer id){
         return erpService.pushInvoiceOrder(master,id);
     }
     /**
      *开票订单对接-订单状态查询
      */
     @RequestMapping("/erp/findOrderState")
-    public ApiResult<String> findOrderState(String master,int id){
+    public Map<String, Object>findOrderState(String master,int id){
         return erpService.findOrderState(master,id);
     }
     /*
     * 开票订单-提交开票(目前不启用此接口,财务去平台开票)
     * */
-    public ApiResult<String> invoiceOrderSubmitKp(String master,int id){
+    public Map<String, Object> invoiceOrderSubmitKp(String master,int id){
         return erpService.invoiceOrderSubmitKp(master,id);
     }
 }

+ 5 - 3
src/main/java/com/uas/eis/service/ERPService.java

@@ -3,14 +3,16 @@ package com.uas.eis.service;
 
 import com.uas.eis.sdk.entity.ApiResult;
 
+import java.util.Map;
+
 /**
  * @author koul
  * @email koul@usoftchina.com
  * @date 2021-12-06 18:25
  */
 public interface ERPService {
-    ApiResult<String> pushInvoiceOrder(String master,int id);
-    ApiResult<String> invoiceOrderSubmitKp(String master,int id);
-    ApiResult<String> findOrderState(String master,int id);
+    Map<String, Object> pushInvoiceOrder(String master, int id);
+    Map<String, Object> invoiceOrderSubmitKp(String master,int id);
+    Map<String, Object> findOrderState(String master,int id);
 
 }

+ 15 - 5
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -41,7 +41,8 @@ public class ERPServiceImpl implements ERPService {
     @Autowired
     private DonlimConfig donlimConfig;
     @Override
-    public ApiResult<String> pushInvoiceOrder(String master, int id) {
+    public Map<String, Object> pushInvoiceOrder(String master, int id) {
+        Map<String, Object> map = new HashMap<String, Object>();
         Object[] obs=baseDao.getFieldsDataByCondition("YITOA_DATACENTER.dock_invoice_config",new String[]{"appKey","appSecret","token","taxnum"},"username='"+master+"'");
         String url=donlimConfig.getRoute();
         System.out.println(url);
@@ -73,7 +74,7 @@ public class ERPServiceImpl implements ERPService {
             orderDTO.setSpecificFactor("0");
             orderDTO.setSaleTaxNum(donlimConfig.getTaxnum());
             orderDTO.setBuyerName(rs_main.getGeneralString("cu_name"));//客户名称
-            orderDTO.setTaxNum(rs_main.getGeneralString("cu_taxid"));//购方税号
+            orderDTO.setTaxNum(rs_main.getGeneralString("cu_taxid").trim());//购方税号
             orderDTO.setAccount(rs_main.getGeneralString("cu_bankaccount"));
             orderDTO.setAddress(rs_main.getGeneralString("cu_add1"));
             orderDTO.setTelephone(rs_main.getGeneralString("cu_tel"));
@@ -117,14 +118,19 @@ public class ERPServiceImpl implements ERPService {
                 baseDao.execute("insert into invoicedockLog(id_,code_,date_,result_,err_,keyvalue_)values(invoicedockLog_seq.nextval,'开票订单对接',sysdate,'FAILED','("+status+")"+message+"',"+id+") ");
             }
             logger.info("pushInvoiceOrder master {} ,id {} status {} message {}",master,id,status,message);
+            map.put("success", true);
+            map.put("message", message);
+            return map;
         }else{//数据无效
             logger.info("pushInvoiceOrder err {对接源信息无效} ,master {} , id {} status {} message {}",master,id);
+            map.put("success", false);
+            map.put("message", "对接源信息无效");
+            return map;
         }
-        return null;
     }
 
     @Override
-    public ApiResult<String> invoiceOrderSubmitKp(String master, int id) {
+    public Map<String, Object> invoiceOrderSubmitKp(String master, int id) {
         Object[] obs=baseDao.getFieldsDataByCondition("YITOA_DATACENTER.dock_invoice_config",new String[]{"appKey","appSecret","token","taxnum"},"username='"+master+"'");
         String url=donlimConfig.getRoute();
         System.out.println(url);
@@ -158,7 +164,8 @@ public class ERPServiceImpl implements ERPService {
     }
 
     @Override
-    public ApiResult<String> findOrderState(String master, int id) {
+    public Map<String, Object> findOrderState(String master, int id) {
+        Map<String, Object> map = new HashMap<String, Object>();
         Object[] obs=baseDao.getFieldsDataByCondition("YITOA_DATACENTER.dock_invoice_config",new String[]{"appKey","appSecret","token","taxnum"},"username='"+master+"'");
         if(obs==null){
             return null;//对接信息为配置
@@ -197,6 +204,9 @@ public class ERPServiceImpl implements ERPService {
             System.out.println(resp.getData().getInvoiceStatus());
             System.out.println(resp.getData().getErrorMsg());
             System.out.println(result);//{"status":"0000","message":"调用成功","data":{"invoiceStatus":"0","errorMsg":null}}
+            map.put("success", true);
+            map.put("result", result);
+            return map;
         }else{//数据无效
             logger.info("findOrderState err {对接源信息无效} ,master {} , id {} status {} message {}",master,id);
         }

+ 29 - 1
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -39,7 +39,7 @@ public class UasEisApplicationTests {
 		System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
 		Object ob=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
 		System.out.println(ob.toString());
-		erpService.pushInvoiceOrder("N_HUASL_SZ",5);
+		erpService.pushInvoiceOrder("N_HUASL_SZ",8);
 	}
 	/**
 	 * 	获取token
@@ -86,4 +86,32 @@ public class UasEisApplicationTests {
 	public void Test3() {
 		erpService.invoiceOrderSubmitKp("N_HUASL_SZ",5);
 	}
+	/**
+	 *         诺税通saas发票详情查询接口 nuonuo.OpeMplatform.queryInvoiceResult
+	 */
+	@Test
+	public void Test5() {
+		NNOpenSDK sdk = NNOpenSDK.getIntance();
+		String taxnum ="339901999999199";////测试
+		String appKey = "78607195";
+		String appSecret = "26A860C451744A21";
+		String method = "nuonuo.OpeMplatform.queryInvoiceResult"; // API方法名
+		String url = "https://sdk.nuonuo.com/open/v1/services";//SDK请求地址
+		String token = "77f21f617f87135fcd97ef1ueud3dxdi";
+		Map<String,Object> reqParam=new HashMap<>();
+		reqParam.put("isOfferInvoiceDetail","1");// 是否需要提供明细 1-是, 0-否(不填默认 0)
+		List<String> serialNos = new ArrayList<>(); //发票流水号,两字段二选一,同时存在以流水号为准(最多查50个订单号)
+		serialNos.add("SZ23070004");
+		reqParam.put("serialNos","[]");
+		List list =new ArrayList<>();
+		list.add("SZ23070004");
+		reqParam.put("orderNos","[]"); //订单编号(最多查50个订单号)
+		String content=JSONArray.toJSONString(reqParam);
+//                content=sdk.convertToUtf8(content);
+		System.out.println(content);
+//                content = "{\"originalOrderNo\": \"SZ23070004\", \"saleTaxNum\":[\"339901999999199\"], \"needInvoiceSourceDetail\":\"1\" }";
+		String senid = UUID.randomUUID().toString().replace("-", ""); // 唯一标识,32位随机码,无需修改,保持默认即可
+		String result = sdk.sendPostSyncRequest(url, senid, appKey, appSecret, token, taxnum, method, content);
+		System.out.println(result);
+	}
 }