Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
yunuo970428 3 years ago
parent
commit
7c87b0b20b
  1. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/Data.java
  2. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  3. 60
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java
  4. 170
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  5. 28
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/EntryBillCastToKingDeeBillFields.java

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/Data.java

@ -28,7 +28,7 @@ public class Data {
private String NumberSearch;
@JSONField(name = "InterationFlags")
private String InterationFlags;
/* @JSONField(name = "Model")
/*@JSONField(name = "Model")
private Model Model;*/
public void setCreator(String Creator) {
this.Creator = Creator;

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -5,6 +5,7 @@ import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeignFallBack;
import com.yxt.anrui.fin.api.kingdee.entrybill.EntryBillDto;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -13,9 +14,10 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/finKingDee")
public class FinKingDeeFeignRest implements FinKingDeeFeign {
@Autowired
private FinKingDeeFeignService finKingDeeFeignService;
@Override
public ResultBean draftEntryBill(EntryBillDto entryBillDto) {
return null;
return finKingDeeFeignService.draftEntryBill(entryBillDto);
}
}

60
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java

@ -0,0 +1,60 @@
package com.yxt.anrui.fin.biz.kingdee;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.Data;
import com.yxt.anrui.fin.api.kingdee.entrybill.EntryBillDto;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
/**
* 转换业务数据到金蝶的接口上
*/
@Service
public class FinKingDeeFeignService {
/**
* 保存入账申请接口生成的应付单的数据推送到金蝶的平台中
* @param entryBillDto
* @return
*/
public ResultBean draftEntryBill(EntryBillDto entryBillDto) {
ResultBean rb=ResultBean.fireFail();
Data data=new Data();
EntryBillCastToKingDeeBillFields.cast(entryBillDto,data);
try {
return saveBill("",data);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 调用金蝶的接口
* @param data
* @return
*/
private ResultBean saveBill(String formId,Data data) throws Exception {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
kdp.setFormId(formId);
String jsonParam = JSONObject.toJSONString(kdp);
return KingDeeSaveSKD.SavePurRKD(jsonParam);
}
/**
* 调用金蝶接口的数据格式
*/
private class KingDeeParams{
private String formId;
private Data data;
public void setFormId(String formId) {
this.formId = formId;
}
public void setData(Data data) {
this.data = data;
}
}
}

170
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java

@ -0,0 +1,170 @@
package com.yxt.anrui.fin.biz.kingdee;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yxt.common.core.result.ResultBean;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import java.net.URI;
public class KingDeeSaveSKD {
private static String sessionkey = "kdservice-sessionid";
private static String aspnetsessionkey = "ASP.NET_SessionId";
private static String sessionValue = "";
private static String aspnetsessionValue = "";
/**
* 保存采购入库单
*
* @throws Exception
*/
@SuppressWarnings({"resource", "deprecation"})
public static ResultBean SavePurRKD(String jsonParam ) throws Exception {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
JSONObject jsonResult = null;
/********** 用户登录Begin ************************/
try {
//登录,校验用户的API接口地址
String Login_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc";
URI uri = new URI(Login_URL);
HttpPost method = new HttpPost(uri);
//登录请求参数
String jsonParamdl = "{\"acctID\":\"61654d8e138fe6\"," +
"\"userName\":\"信息部\",\"password\":\"123321\",\"lcid\":2052}";
StringEntity entity = new StringEntity(jsonParamdl, "utf-8");
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
HttpResponse result = httpclient.execute(method);
// 请求发送成功,并得到响应
if (result.getStatusLine().getStatusCode() == 200) {
String str = "";
// 读取服务器返回过来的json字符串数据
str = EntityUtils.toString(result.getEntity());
// 把json字符串转换成json对象
jsonResult = JSONObject.parseObject(str);
//判断登录是否成功
if (jsonResult.getInteger("LoginResultType") == 1) {
System.out.println("登录成功!");
// 获取Cookie
Header[] headers = result.getHeaders("Set-Cookie");
for (int i = 1; i < headers.length; i++) {
Header header = headers[i];
String headerValue = header.getValue();
// 登录成功返回的登录session信息,保存下来,下面再调用接口的时候传给服务端
if (headerValue.trim().startsWith(sessionkey)) {
int endIndex = headerValue.indexOf(';');
sessionValue = headerValue.substring(20, endIndex);
} else if (headerValue.trim().startsWith( aspnetsessionkey)) {
int endIndex = headerValue.indexOf(';');
aspnetsessionValue = headerValue.substring(18, endIndex);
}
}
}
// 登录失败,不继续
else {
System.out.println("登录失败!");
return null;
}
} else {
System.out.println("登录异常!");
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
/********** 用户登录END ************************/
/********** 保存采购入库单Beigin************************/
try {
// 数据保存接口地址
String Save_URL = "http://121.36.43.55/k3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc";
URI save_uri = new URI(Save_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
System.out.println(jsonParam);
String ss = "{\"formid\":\"SAL_OUTSTOCK\", \"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"XSCKD01_SYS\\\"},\\\"FDate\\\":\\\"2021-12-31 00:00:00\\\",\\\"FSaleOrgId\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FCustomerID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FSaleDeptID\\\":{\\\"FNumber\\\":\\\"03\\\"},\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FReceiverID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FSettleID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FPayerID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FIsTotalServiceOrCost\\\":false,\\\"F_PAEZ_Assistant\\\":{\\\"FNumber\\\":\\\"00\\\"},\\\"SubHeadEntity\\\":{\\\"FSettleCurrID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FSettleOrgID\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FIsIncludedTax\\\":true,\\\"FLocalCurrID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FExchangeTypeID\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FIsPriceExcludeTax\\\":true},\\\"FEntity\\\":[{\\\"FRowType\\\":\\\"Standard\\\",\\\"FMaterialID\\\":{\\\"FNumber\\\":\\\" JX064673\\\"},\\\"Flot\\\":{\\\"FNumber\\\":\\\"11111djz\\\"},\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FRealQty\\\":1.0,\\\"FIsFree\\\":false,\\\"FOwnerTypeID\\\":\\\"BD_OwnerOrg\\\",\\\"FOwnerID\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FStockID\\\":{\\\"FNumber\\\":\\\"CK002\\\"},\\\"FStockStatusID\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FSalUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSALUNITQTY\\\":1.0,\\\"FSALBASEQTY\\\":1.0,\\\"FPRICEBASEQTY\\\":1.0,\\\"FOUTCONTROL\\\":false,\\\"FIsOverLegalOrg\\\":false,\\\"FARNOTJOINQTY\\\":1.0}],\\\"FOutStockTrace\\\":[{\\\"FLogComId\\\":{\\\"FCODE\\\":\\\"a2u\\\"},\\\"FDelTime\\\":\\\"2021-12-31 00:00:00\\\",\\\"FCarryBillNo\\\":\\\"2121122112\\\"}]}}\\n\"}";
String ff= "{\"formid\":\"AR_receivable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YSD01_SYS\\\"},\\\"FDATE\\\":\\\"2022-01-07 00:00:00\\\",\\\"FISINIT\\\":false,\\\"FENDDATE_H\\\":\\\"2022-01-07 00:00:00\\\",\\\"FCUSTOMERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSALEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISTAX\\\":true,\\\"FCancelStatus\\\":\\\"A\\\",\\\"FBUSINESSTYPE\\\":\\\"BZ\\\",\\\"FSetAccountType\\\":\\\"1\\\",\\\"FISHookMatch\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"F_PMZC_Assistant2\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FsubHeadSuppiler\\\":{\\\"FORDERID\\\":{\\\"fNumber\\\":\\\" JXYXB\\\"},\\\"FTRANSFERID\\\":{\\\"fNumber\\\":\\\" JXYXB\\\"},\\\"FChargeId\\\":{\\\"fNumber\\\":\\\" JXYXB\\\"}},\\\"FsubHeadFinc\\\":{\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-01-07 00:00:00\\\",\\\"FMAINBOOKSTDCURRID\\\":{\\\"fNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPE\\\":{\\\"fNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0},\\\"FEntityDetail\\\":[{\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FDeliveryControl\\\":false,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FIsFree\\\":false,\\\"FSalUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FPriceBaseDen\\\":1.0,\\\"FSalBaseNum\\\":1.0,\\\"FStockBaseNum\\\":1.0}]}}\"}";
// String s = "{\"data\":\"\"{\\\"Creator\\\":\\\"\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"IsDeleteEntry\\\":true,\\\"IsEntryBatchFill\\\":true,\\\"IsVerifyBaseDataField\\\":false,\\\"Model\\\":{\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"XSCKD01_SYS\\\"},\\\"FDate\\\":\\\"2021-12-30 00:00:00\\\",\\\"FDeliveryDeptID\\\":{\\\"FNumber\\\":\\\"\\\"},\\\"FEntity\\\":[{\\\"FARNOTJOINQTY\\\":1,\\\"FEntrynote\\\":\\\"\\\",\\\"FIsFree\\\":false,\\\"FIsOverLegalOrg\\\":false,\\\"FMaterialID\\\":{\\\"FNumber\\\":\\\" JX064673\\\"},\\\"FOUTCONTROL\\\":false,\\\"FOwnerID\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FOwnerTypeID\\\":\\\"BD_OwnerOrg\\\",\\\"FPRICEBASEQTY\\\":1,\\\"FPrice\\\":0,\\\"FRealQty\\\":1,\\\"FRowType\\\":\\\"Standard\\\",\\\"FSALBASEQTY\\\":1,\\\"FSALUNITQTY\\\":1,\\\"FSalUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FStockID\\\":{\\\"FNumber\\\":\\\"CK002\\\"},\\\"FStockStatusID\\\":{\\\"FNumber\\\":\\\"KCZT01_SYS\\\"},\\\"FTaxPrice\\\":0,\\\"FUnitID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"F_PAEZ_Decimal\\\":0,\\\"F_PAEZ_Decimal3\\\":0,\\\"F_PAEZ_Decimal4\\\":0,\\\"Flot\\\":{\\\"FNumber\\\":\\\"111\\\"}}],\\\"FID\\\":0,\\\"FIsTotalServiceOrCost\\\":false,\\\"FOutStockTrace\\\":[{\\\"FCarryBillNo\\\":\\\"1111111\\\",\\\"FDelTime\\\":1640933876112,\\\"FLogComId\\\":{\\\"FCODE\\\":\\\"a2u\\\"}}],\\\"FOwnerTypeIdHead\\\":\\\"BD_OwnerOrg\\\",\\\"FPayerID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FReceiverID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FSaleOrgId\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"FSettleID\\\":{\\\"FNumber\\\":\\\" 田拥涛\\\"},\\\"FStockOrgId\\\":{\\\"FNumber\\\":\\\"100\\\"},\\\"F_PAEZ_Assistant\\\":{\\\"FNumber\\\":\\\"00\\\"},\\\"F_PAEZ_Base\\\":{},\\\"F_PAEZ_Base1\\\":{},\\\"F_PAEZ_Date\\\":1640933876112,\\\"F_PAEZ_Decimal1\\\":0,\\\"F_PAEZ_Decimal2\\\":1,\\\"F_PAEZ_Text\\\":\\\"\\\",\\\"SubHeadEntity\\\":{\\\"FExchangeRate\\\":1,\\\"FExchangeTypeID\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FIsIncludedTax\\\":true,\\\"FIsPriceExcludeTax\\\":true,\\\"FLocalCurrID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FSettleCurrID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FSettleOrgID\\\":{\\\"FNumber\\\":\\\"100\\\"}}},\\\"NeedReturnFields\\\":[],\\\"NeedUpDateFields\\\":[],\\\"NumberSearch\\\":true,\\\"SubSystemId\\\":\\\"\\\",\\\"ValidateFlag\\\":true}\"\",\"formid\":\"SAL_OUTSTOCK\"}";
System.out.println(ss);
System.out.println(ff);
StringEntity entity = new StringEntity(jsonParam, "utf-8");
System.out.println(JSON.toJSON(entity));
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
//把成功登录的Session信息传进去,获取连接信息
method.setHeader(sessionkey, sessionValue);
method.setHeader(aspnetsessionkey, aspnetsessionValue);
//方法参数
method.setEntity(entity);
HttpResponse result = httpclient.execute(method);
// 请求发送成功,并得到响应
if (result.getStatusLine().getStatusCode() == 200) {
System.out.println("请求成功");
String str = "";
// 读取服务器返回过来的json字符串数据
str = EntityUtils.toString(result.getEntity());
System.out.println(str);
// 成功的字符串类似
// {"Result":{"ResponseStatus":{"IsSuccess":true},"Id":100040,"Number":"CGRK00016"}}
// 失败 的字符串类似
// {"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":"FStockId","Message":"单据体“明细信息”第1行字段“仓库”是必填项"},{"FieldName":"AbstractInteractionResult","Message":"AbstractInteractionResult.InteractionContext is null"}]},"Id":""}}
// 把json字符串转换成json对象,方便操作
jsonResult = JSONObject.parseObject(str);
}
} catch (Exception e) {
System.out.println("post请求提交失败:" + e);
}
return null;
/********** 保存采购入库单End************************/
}
}

28
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/EntryBillCastToKingDeeBillFields.java

@ -0,0 +1,28 @@
package com.yxt.anrui.fin.biz.kingdee.entrybill;
import com.yxt.anrui.fin.api.kingdee.Data;
import com.yxt.anrui.fin.api.kingdee.entrybill.EntryBillDto;
import org.springframework.stereotype.Service;
/**
* 封装转换的类
*/
public class EntryBillCastToKingDeeBillFields {
/**
* 入账的数据对象转换成金蝶数据对象
* @param source
* @param target
*/
public static void cast(EntryBillDto source, Data target) {
target.setCreator(source.getUserSid());
/**
* InterationFlags交互标志集合字符串类型分号分隔格式"flag1;flag2;..."非必录例如允许负库存标识STK_InvCheckResult
*/
target.setInterationFlags(" ");
/**
* IsDeleteEntry是否删除已存在的分录布尔类型默认true非必录
*/
target.setIsDeleteEntry("True ");
}
}
Loading…
Cancel
Save