Browse Source

【越加红电子发票】【增加try catch】

DINGYL 1 year ago
parent
commit
219db8978e
1 changed files with 111 additions and 105 deletions
  1. 111 105
      src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

+ 111 - 105
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -47,120 +47,126 @@ public class ERPServiceImpl implements ERPService {
     @Override
     public Map<String, Object> pushInvoiceOrder(String master, int id) {
         Map<String, Object> map = new HashMap<String, Object>();
-        Object[] obs = baseDao.getFieldsDataByCondition("DATACENTER.dock_invoice_config", new String[]{"appKey", "appSecret", "token", "taxnum"}, "username='" + master + "'");
-        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()) {
-            appKey = obs[0].toString();
-            appSecret = obs[1].toString();
-            token = obs[2].toString();// 访问令牌
-            taxnum = obs[3].toString();// 授权企业税号
-        }
-        logger.info("pushInvoiceOrder begin: master {} ,id {} ", master, id);
-        SpObserver.putSp(master);
-        SqlRowList rs_main = baseDao.queryForRowSet("select * from invoiceOrder left join customer on io_cucode=cu_code " +
-                " left join custinvoicemsg on ci_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(rs_main.getGeneralString("IO_ORDERTYPE"));
-            invoiceOrderDTO.setAutoInvoiceFlag(rs_main.getGeneralString("io_autoinvoice"));//自动开票
-            invoiceOrderDTO.setRepeatCall("0");
+        try{
+            Object[] obs = baseDao.getFieldsDataByCondition("DATACENTER.dock_invoice_config", new String[]{"appKey", "appSecret", "token", "taxnum"}, "username='" + master + "'");
+            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()) {
+                appKey = obs[0].toString();
+                appSecret = obs[1].toString();
+                token = obs[2].toString();// 访问令牌
+                taxnum = obs[3].toString();// 授权企业税号
+            }
+            logger.info("pushInvoiceOrder begin: master {} ,id {} ", master, id);
+            SpObserver.putSp(master);
+            SqlRowList rs_main = baseDao.queryForRowSet("select * from invoiceOrder left join customer on io_cucode=cu_code " +
+                    " left join custinvoicemsg on ci_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(rs_main.getGeneralString("IO_ORDERTYPE"));
+                invoiceOrderDTO.setAutoInvoiceFlag(rs_main.getGeneralString("io_autoinvoice"));//自动开票
+                invoiceOrderDTO.setRepeatCall("0");
 
-            OrderDTO orderDTO = new OrderDTO();
-            orderDTO.setOriginalOrderNo(rs_main.getGeneralString("io_code"));
-            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(taxnum);//
-            orderDTO.setBuyerName(rs_main.getGeneralString("cu_name"));//客户名称
-            orderDTO.setTaxNum(rs_main.getGeneralString("ci_taxnum").trim());//购方税号
-            orderDTO.setAccount(rs_main.getGeneralString("ci_account"));
-            orderDTO.setAddress(rs_main.getGeneralString("ci_address"));
-            orderDTO.setTelephone(rs_main.getGeneralString("ci_telephone"));
-            orderDTO.setRemark(rs_main.getGeneralString("io_remark"));
-            orderDTO.setPayee(rs_main.getGeneralString("IO_PAYEE"));
-            orderDTO.setChecker(rs_main.getGeneralString("IO_CHECKER"));
-            orderDTO.setClerk(rs_main.getGeneralString("IO_clerk"));
-            orderDTO.setPhone(rs_main.getGeneralString("ci_jf_phone"));
-            orderDTO.setEmail(rs_main.getGeneralString("ci_jf_email"));
-            //原销售订单编号relateSaleOrderNo
-            orderDTO.setRelateSaleOrderNo(rs_main.getGeneralString("io_RelateSaleOrderNo"));
-            //原发票号码yfphm
-            orderDTO.setYfphm(rs_main.getGeneralString("io_Yfphm"));
-            invoiceOrderDTO.setOrderInfo(orderDTO);
+                OrderDTO orderDTO = new OrderDTO();
+                orderDTO.setOriginalOrderNo(rs_main.getGeneralString("io_code"));
+                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(taxnum);//
+                orderDTO.setBuyerName(rs_main.getGeneralString("cu_name"));//客户名称
+                orderDTO.setTaxNum(rs_main.getGeneralString("ci_taxnum").trim());//购方税号
+                orderDTO.setAccount(rs_main.getGeneralString("ci_account"));
+                orderDTO.setAddress(rs_main.getGeneralString("ci_address"));
+                orderDTO.setTelephone(rs_main.getGeneralString("ci_telephone"));
+                orderDTO.setRemark(rs_main.getGeneralString("io_remark"));
+                orderDTO.setPayee(rs_main.getGeneralString("IO_PAYEE"));
+                orderDTO.setChecker(rs_main.getGeneralString("IO_CHECKER"));
+                orderDTO.setClerk(rs_main.getGeneralString("IO_clerk"));
+                orderDTO.setPhone(rs_main.getGeneralString("ci_jf_phone"));
+                orderDTO.setEmail(rs_main.getGeneralString("ci_jf_email"));
+                //原销售订单编号relateSaleOrderNo
+                orderDTO.setRelateSaleOrderNo(rs_main.getGeneralString("io_RelateSaleOrderNo"));
+                //原发票号码yfphm
+                orderDTO.setYfphm(rs_main.getGeneralString("io_Yfphm"));
+                invoiceOrderDTO.setOrderInfo(orderDTO);
 
-            SqlRowList rs_det = baseDao.queryForRowSet("select * from invoiceOrderdet_view where id_ioid=" + id + " order by id_detno");
-            List<OrderDetDTO> dets = new ArrayList<>();//商品列表
-            while (rs_det.next()) {
-                OrderDetDTO orderDetDTO = new OrderDetDTO();
-                orderDetDTO.setRowNo(rs_det.getGeneralString("id_id"));//唯一值
-                orderDetDTO.setGoodsName(rs_det.getGeneralString("pr_detail"));
-                orderDetDTO.setSpec(rs_det.getGeneralString("pr_spec"));
-                orderDetDTO.setUnit(rs_det.getGeneralString("pr_unit"));
-                orderDetDTO.setNum(rs_det.getGeneralString("id_qty"));
-                //orderDetDTO.setPrice(rs_det.getGeneralString("id_price"));//平台算法问题 传单价会有差异,校验可能不通过,所有传金额和数量,不传单价
-                orderDetDTO.setTaxRate(rs_det.getGeneralString("taxrate"));//0.13
-                orderDetDTO.setTax(rs_det.getGeneralString("TAXTOTAL"));
+                SqlRowList rs_det = baseDao.queryForRowSet("select * from invoiceOrderdet_view where id_ioid=" + id + " order by id_detno");
+                List<OrderDetDTO> dets = new ArrayList<>();//商品列表
+                while (rs_det.next()) {
+                    OrderDetDTO orderDetDTO = new OrderDetDTO();
+                    orderDetDTO.setRowNo(rs_det.getGeneralString("id_id"));//唯一值
+                    orderDetDTO.setGoodsName(rs_det.getGeneralString("pr_detail"));
+                    orderDetDTO.setSpec(rs_det.getGeneralString("pr_spec"));
+                    orderDetDTO.setUnit(rs_det.getGeneralString("pr_unit"));
+                    orderDetDTO.setNum(rs_det.getGeneralString("id_qty"));
+                    //orderDetDTO.setPrice(rs_det.getGeneralString("id_price"));//平台算法问题 传单价会有差异,校验可能不通过,所有传金额和数量,不传单价
+                    orderDetDTO.setTaxRate(rs_det.getGeneralString("taxrate"));//0.13
+                    orderDetDTO.setTax(rs_det.getGeneralString("TAXTOTAL"));
 
                 /*传含税
                 orderDetDTO.setTaxAmount(rs_det.getGeneralString("id_amount"));
                 orderDetDTO.setHsbz(rs_det.getGeneralString("hsbz"));*/
-                /*传不含税*/
-                orderDetDTO.setTaxAmount(rs_det.getGeneralString("NETTOTAL"));
-                orderDetDTO.setHsbz("0");
+                    /*传不含税*/
+                    orderDetDTO.setTaxAmount(rs_det.getGeneralString("NETTOTAL"));
+                    orderDetDTO.setHsbz("0");
 
-                orderDetDTO.setSpbm(rs_det.getGeneralString("spbm"));
-                orderDetDTO.setZke(rs_det.getGeneralString("ZKE"));
-                dets.add(orderDetDTO);
-            }
-            invoiceOrderDTO.setOrderOriginalDetails(dets);
-            invoiceOrderDTO.setInvoiceGoodsTransports(new ArrayList<>());
-            System.out.println(JSONArray.toJSONString(invoiceOrderDTO));
-            logger.info("pushInvoiceOrder  master {} , id {} , content {}", master, id,JSONArray.toJSONString(invoiceOrderDTO));
-            //调用对接
-            NNOpenSDK sdk = NNOpenSDK.getIntance();
-            String method = "nuonuo.OpeMplatform.saveOrder"; // API方法名
-            String content = sdk.convertToUtf8(JSONArray.toJSONString(invoiceOrderDTO));
-            String senid = UUID.randomUUID().toString().replace("-", ""); // 唯一标识,32位随机码,无需修改,保持默认即可
-            System.out.println("appKey:"+appKey);
-            System.out.println("appSecret:"+appSecret);
-            System.out.println("token:"+token);
-            System.out.println("taxnum:"+taxnum);
-            System.out.println("content:"+content);
-            String result = sdk.sendPostSyncRequest(url, senid, appKey, appSecret, token, taxnum, method, content);
-            logger.info("pushInvoiceOrder resultString {}, token {}", result, token);
-            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='对接成功',IO_INVOICESTATUS=0 where io_id=" + id);
-                commonService.logSRecord("开票订单对接", id);
-            } else if (status != null && "9999".equals(status.toString()) && message != null && message.toString().contains("已存在原始订单")) {
-                baseDao.execute("update invoiceOrder set io_dockstatus='对接成功',IO_INVOICESTATUS=0 where io_id=" + id);
-                commonService.logFRecord("开票订单对接", "(" + status + ")" + message, id);
-            } else {
-                baseDao.execute("update invoiceOrder set io_dockstatus='对接失败' where io_id=" + id);
-                commonService.logFRecord("开票订单对接", "(" + status + ")" + message, id);
+                    orderDetDTO.setSpbm(rs_det.getGeneralString("spbm"));
+                    orderDetDTO.setZke(rs_det.getGeneralString("ZKE"));
+                    dets.add(orderDetDTO);
+                }
+                invoiceOrderDTO.setOrderOriginalDetails(dets);
+                invoiceOrderDTO.setInvoiceGoodsTransports(new ArrayList<>());
+                System.out.println(JSONArray.toJSONString(invoiceOrderDTO));
+                logger.info("pushInvoiceOrder  master {} , id {} , content {}", master, id,JSONArray.toJSONString(invoiceOrderDTO));
+                //调用对接
+                NNOpenSDK sdk = NNOpenSDK.getIntance();
+                String method = "nuonuo.OpeMplatform.saveOrder"; // API方法名
+                String content = sdk.convertToUtf8(JSONArray.toJSONString(invoiceOrderDTO));
+                String senid = UUID.randomUUID().toString().replace("-", ""); // 唯一标识,32位随机码,无需修改,保持默认即可
+                System.out.println("appKey:"+appKey);
+                System.out.println("appSecret:"+appSecret);
+                System.out.println("token:"+token);
+                System.out.println("taxnum:"+taxnum);
+                System.out.println("content:"+content);
+                String result = sdk.sendPostSyncRequest(url, senid, appKey, appSecret, token, taxnum, method, content);
+                logger.info("pushInvoiceOrder resultString {}, token {}", result, token);
+                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='对接成功',IO_INVOICESTATUS=0 where io_id=" + id);
+                    commonService.logSRecord("开票订单对接", id);
+                } else if (status != null && "9999".equals(status.toString()) && message != null && message.toString().contains("已存在原始订单")) {
+                    baseDao.execute("update invoiceOrder set io_dockstatus='对接成功',IO_INVOICESTATUS=0 where io_id=" + id);
+                    commonService.logFRecord("开票订单对接", "(" + status + ")" + message, id);
+                } else {
+                    baseDao.execute("update invoiceOrder set io_dockstatus='对接失败' where io_id=" + id);
+                    commonService.logFRecord("开票订单对接", "(" + status + ")" + message, id);
+                }
+                logger.info("pushInvoiceOrder master {} ,id {} status {} message {}", master, id, status, message);
+                map.put("success", true);
+                map.put("status", status);
+                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;
             }
-            logger.info("pushInvoiceOrder master {} ,id {} status {} message {}", master, id, status, message);
-            map.put("success", true);
-            map.put("status", status);
-            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;
+        }catch (Exception e){
+            e.printStackTrace();
+            commonService.logFRecord("开票订单对接", e.getMessage(), id);
         }
+        return map;
     }
 
     @Override