推送bip接口增加 local_notax_de 组织本币无税金额
This commit is contained in:
		
							parent
							
								
									8cd7fd6752
								
							
						
					
					
						commit
						eeeeaeccb2
					
				|  | @ -185,6 +185,77 @@ public class YongyouBIPOperation extends AbstractOperationServicePlugIn implemen | |||
| //                payrequestinfo.getDynamicObjectType().getAlias();//获取数据库表名 | ||||
|             } | ||||
|         } | ||||
|         else if("submit".equals(eok)){ | ||||
|             DynamicObject[] dos =  e.getDataEntities(); | ||||
|             DynamicObject prinfo = null; | ||||
|             for (int i = 0; i < dos.length; i++) { | ||||
|                 prinfo = dos[i]; | ||||
| //                prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(),dos[i].getDataEntityType().getName()); | ||||
|                 testBip(prinfo); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private boolean testBip(DynamicObject prinfo){ | ||||
|         String accesstoken = null; | ||||
|         String eventName = "submit-test"; | ||||
|         APICurUtils apiutil = new APICurUtils();//处理认证接口的工具类(用友提供的第三方工具),得到accesstoken | ||||
|         apiutil.init(DobeDWUtils.yyip,DobeDWUtils.yyport,DobeDWUtils.bizcenter,DobeDWUtils.clientid,DobeDWUtils.clientsecret,DobeDWUtils.pubKey,DobeDWUtils.clientid,null); | ||||
|         try { | ||||
|             String tokenresult = apiutil.getTokenByClient(); | ||||
|             if(DobeDWUtils.isEmpty(tokenresult)){ | ||||
|                 log.error("用友认证接口返回的accessToken为空"); | ||||
|                 return false; | ||||
|             } | ||||
|             JSONObject json_reuslt = JSON.parseObject(tokenresult); | ||||
|             if(json_reuslt.getJSONObject("data") == null){ | ||||
|                 log.error("用友认证接口返回的data为空"); | ||||
|                 return false; | ||||
|             } | ||||
|             accesstoken = json_reuslt.getJSONObject("data").getString("access_token"); | ||||
|         } catch (Exception e) { | ||||
|             log.error(String.format("用友认证接口异常:%s", e.getMessage())); | ||||
|             throw new RuntimeException(e); | ||||
|         } | ||||
|         if(DobeDWUtils.isEmpty(accesstoken)){ | ||||
|             log.error("用友认证接口返回的accessToken为空"); | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         JSONObject payData = JSONObject.parseObject(prinfo.getString("qeug_inputs")); | ||||
|         OkHttpClient client = new OkHttpClient(); | ||||
|         //付款单新增接口,上一步的accesstoken作为header | ||||
|         Request request = new Request.Builder().url(DobeDWUtils.payUrl) | ||||
|                 .post(createFormRequestBody(payData)) | ||||
|                 .header("Content-Type", "application/json;charset=utf-8") | ||||
|                 .header("access_token", accesstoken) | ||||
|                 .header("repeat_check", "Y") | ||||
|                 .header("ucg_flag", "Y") | ||||
|                 .header("client_id", DobeDWUtils.clientid) | ||||
|                 .build(); | ||||
|         String yynum = null;//用友单据编号 | ||||
|         String yyid = null;//用友单据id | ||||
|         JSONObject json_reuslt = null; | ||||
|         try { | ||||
|             Response response = client.newCall(request).execute(); | ||||
|             json_reuslt = JSON.parseObject(response.body().string()); | ||||
|             if(!"true".equals(json_reuslt.getString("success"))){ | ||||
|                 log.error(String.format("用友付款接口处理失败,具体原因:%s", json_reuslt.toString())); | ||||
|                 //此时除了日志打印,增加日志记录 | ||||
|                 DobeDWUtils.saveLog(prinfo.getString("number"),"用友BIP",payData.toString(),json_reuslt.toString(),false,eventName); | ||||
|                 return false; | ||||
|             }else{ | ||||
|                 yynum = json_reuslt.getJSONObject("data").getString("billno"); | ||||
|                 yyid = json_reuslt.getJSONObject("data").getString("pk_bill"); | ||||
|             } | ||||
|         } catch (Exception e) { | ||||
|             log.error(String.format("用友付款接口异常:%s", e.getMessage())); | ||||
| //            throw new RuntimeException(e); | ||||
|             DobeDWUtils.saveLog(prinfo.getString("number"),"用友BIP",payData.toString(),e.getMessage(),false,eventName); | ||||
|             return false; | ||||
|         } | ||||
|         DobeDWUtils.saveLog(prinfo.getString("number"),"用友BIP",payData.toString(),json_reuslt.toString(),true,eventName); | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|     private String getInvoiceNumber(DynamicObject payrequestinfo, boolean isnotext){ | ||||
|  | @ -329,10 +400,12 @@ public class YongyouBIPOperation extends AbstractOperationServicePlugIn implemen | |||
|                 items.put("local_tax_de",payrequestinfo.getBigDecimal("tax").toString());//税额 | ||||
|             } | ||||
|             items.put("notax_de",payrequestinfo.getBigDecimal("notaxamt").toString());//贷方无税金额,除税金额 | ||||
|             items.put("local_notax_de",payrequestinfo.getBigDecimal("notaxamt").toString());//组织本币无税金额 | ||||
|             if("unaudit".equals(eventName)){ | ||||
|                 //如果此时是反审核,则需要将金额置为负数 | ||||
|                 items.put("local_tax_de","-"+items.getString("local_tax_de")); | ||||
|                 items.put("notax_de","-"+items.getString("notax_de")); | ||||
|                 items.put("local_notax_de","-"+items.getString("notax_de")); | ||||
|             } | ||||
|         }else{ | ||||
|             //付款申请单的处理方式 | ||||
|  | @ -341,9 +414,11 @@ public class YongyouBIPOperation extends AbstractOperationServicePlugIn implemen | |||
|                 items.put("taxrate","0");//税率 | ||||
|                 items.put("local_tax_de","0");//税额 | ||||
|                 items.put("notax_de",bcsqje.toString());//贷方无税金额,除税金额 | ||||
|                 items.put("local_notax_de",bcsqje.toString());//组织本币无税金额 | ||||
|                 if("unaudit".equals(eventName)){ | ||||
|                     //如果此时是反审核,则需要将金额置为负数 | ||||
|                     items.put("notax_de","-"+bcsqje.toString()); | ||||
|                     items.put("local_notax_de","-"+bcsqje.toString());//组织本币无税金额 | ||||
|                 } | ||||
|             }else{ | ||||
|                 //不含税金额 | ||||
|  | @ -352,10 +427,12 @@ public class YongyouBIPOperation extends AbstractOperationServicePlugIn implemen | |||
|                 items.put("taxrate",invoicetax.divide(notaxv,10,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).toString());//税率=税额/不含税 * 100 | ||||
|                 items.put("local_tax_de",invoicetax.toString());//税额 | ||||
|                 items.put("notax_de",notaxv.toString());//贷方无税金额,除税金额 | ||||
|                 items.put("local_notax_de",notaxv.toString());//组织本币无税金额 | ||||
|                 if("unaudit".equals(eventName)){ | ||||
|                     //如果此时是反审核,则需要将金额置为负数 | ||||
|                     items.put("local_tax_de","-"+items.getString("local_tax_de")); | ||||
|                     items.put("notax_de","-"+items.getString("notax_de")); | ||||
|                     items.put("local_notax_de","-"+items.getString("notax_de")); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue