Browse Source

【英唐电子发票】

DINGYL 2 years ago
parent
commit
e4706e09e8

+ 8 - 1
src/main/java/com/uas/eis/controller/ERPController.java

@@ -35,9 +35,16 @@ public class ERPController {
         return erpService.findOrderState(master,id);
     }
     /*
-    * 开票订单-提交开票(目前不启用此接口,财务去平台开票)
+    * 开票订单-提交开票(目前不启用此接口,财务人员去平台开票)
     * */
     public Map<String, Object> invoiceOrderSubmitKp(String master,int id){
         return erpService.invoiceOrderSubmitKp(master,id);
     }
+    /**
+     * 开票订单删除
+     */
+    @RequestMapping("/erp/cancelInvoiceOrder")
+    public Map<String, Object> cancelInvoiceOrder(String master, Integer id){
+        return erpService.cancelInvoiceOrder(master,id);
+    }
 }

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

@@ -14,5 +14,5 @@ public interface ERPService {
     Map<String, Object> pushInvoiceOrder(String master, int id);
     Map<String, Object> invoiceOrderSubmitKp(String master,int id);
     Map<String, Object> findOrderState(String master,int id);
-
+    Map<String, Object> cancelInvoiceOrder(String master, int id);
 }

+ 61 - 2
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -61,10 +61,11 @@ public class ERPServiceImpl implements ERPService {
         //Object tab_ma=baseDao.getFieldDataByCondition("enterprise","EN_WHICHSYSTEM","1=1");
         SqlRowList rs_main = baseDao.queryForRowSet("select * from invoiceOrder left join customer on io_cucode=cu_code where io_id="+id);
         if(rs_main.next()){
+            String autoInvoiceFlag= baseDao.isDBSetting("InvoiceOrder", "autoInvoice")?"true":"false";
             //数据组装
             InvoiceOrderDTO invoiceOrderDTO=new InvoiceOrderDTO();
             invoiceOrderDTO.setOrderType("1");
-            invoiceOrderDTO.setAutoInvoiceFlag("false");//自动开票
+            invoiceOrderDTO.setAutoInvoiceFlag(autoInvoiceFlag );//自动开票
             invoiceOrderDTO.setRepeatCall("0");
 
             OrderDTO orderDTO=new OrderDTO();
@@ -72,7 +73,7 @@ public class ERPServiceImpl implements ERPService {
             orderDTO.setAddDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(rs_main.getDate("io_date")));
             orderDTO.setInvoiceLine(rs_main.getGeneralString("io_invoiceline"));
             orderDTO.setSpecificFactor("0");
-            orderDTO.setSaleTaxNum(donlimConfig.getTaxnum());
+            orderDTO.setSaleTaxNum(donlimConfig.getTaxnum());//
             orderDTO.setBuyerName(rs_main.getGeneralString("cu_name"));//客户名称
             orderDTO.setTaxNum(rs_main.getGeneralString("cu_taxid").trim());//购方税号
             orderDTO.setAccount(rs_main.getGeneralString("cu_bankaccount"));
@@ -212,4 +213,62 @@ public class ERPServiceImpl implements ERPService {
         }
         return null;
     }
+
+    @Override
+    public Map<String, Object> cancelInvoiceOrder(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;//对接信息为配置
+        }
+        String url=donlimConfig.getRoute();
+        System.out.println(url);
+        String appKey = donlimConfig.getAppKey();
+        String appSecret = donlimConfig.getAppSecret();
+        String token =  donlimConfig.getToken();
+        String taxnum=  donlimConfig.getTaxnum();
+        if(donlimConfig.isProd()){
+            System.out.println("prod");
+            appKey =  obs[0].toString();
+            appSecret =  obs[1].toString();
+            token = obs[2].toString();// 访问令牌
+            taxnum = obs[3].toString();// 授权企业税号
+        }else{
+            System.out.println("dev");
+        }
+        SpObserver.putSp(master);
+        SqlRowList rs_main = baseDao.queryForRowSet("select * from invoiceOrder left join customer on io_cucode=cu_code where io_id="+id);
+        if(rs_main.next()){
+            String code= rs_main.getGeneralString("io_code");
+            Map<String,String> reqParam=new HashMap<>();
+            reqParam.put("originalOrderNo",code);
+            reqParam.put("saleTaxNum",taxnum);
+
+            String content=JSONArray.toJSONString(reqParam);
+            NNOpenSDK sdk = NNOpenSDK.getIntance();
+            String method = "nuonuo.OpeMplatform.deleteOrder"; // API方法名
+            String senid = UUID.randomUUID().toString().replace("-", ""); // 唯一标识,32位随机码,无需修改,保持默认即可
+            String result = sdk.sendPostSyncRequest(url, senid, appKey, appSecret, token, taxnum, method, content);
+            Map<Object, Object> res=JSONUtil.toMap(result);
+            System.out.println(result);
+            Object status=res.get("status");
+            Object message=res.get("message");
+            if(status !=null && "0000".equals(status.toString())){//调用成功
+                baseDao.execute("update invoiceOrder set io_dockstatus='' where io_id="+id);
+                baseDao.execute("insert into invoicedockLog(id_,code_,date_,result_,err_,keyvalue_)values(invoicedockLog_seq.nextval,'开票订单删除',sysdate,'SUCCEED','',"+id+") ");
+                map.put("success", true);
+                map.put("message", message);
+            }else{
+                baseDao.execute("update invoiceOrder set io_dockstatus='取消失败' where io_id="+id);
+                baseDao.execute("insert into invoicedockLog(id_,code_,date_,result_,err_,keyvalue_)values(invoicedockLog_seq.nextval,'开票订单删除',sysdate,'FAILED','("+status+")"+message+"',"+id+") ");
+                map.put("success", false);
+                map.put("message", "("+status+")"+message);
+            }
+            logger.info("pushInvoiceOrder master {} ,id {} status {} message {}",master,id,status,message);
+            return map;
+        }else{//数据无效
+            logger.info("findOrderState err {对接源信息无效} ,master {} , id {} status {} message {}",master,id);
+        }
+        return null;
+    }
 }

+ 5 - 0
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -86,4 +86,9 @@ public class UasEisApplicationTests {
 	public void Test3() {
 		erpService.invoiceOrderSubmitKp("N_HUASL_SZ",5);
 	}
+
+	@Test
+	public void Test_del() {
+		erpService.cancelInvoiceOrder("N_HUASL_SZ",7);
+	}
 }