Browse Source

金蝶接口组织机构的对接

master
yxt_djz 3 years ago
parent
commit
5dbe58c70c
  1. 10
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  2. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  3. 9
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  4. 38
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  5. 51
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  6. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java
  7. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java
  8. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx

10
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java

@ -15,10 +15,9 @@ import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
/**
@ -94,4 +93,9 @@ public interface FinKingDeeFeign {
@PostMapping("/draftBdCustomer")
@ResponseBody
ResultBean<List<KingDeeResult>> draftBdCustomer(@RequestBody BdCustomer bdCustomer);
@ApiOperation("使用number查看数据表单")
@GetMapping("/getKingDataInfoByNumber/{formId}/{number}")
@ResponseBody
ResultBean<String> getKingDataInfoByNumber(@PathVariable("formId") String formId, @PathVariable("number") String number);
}

6
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java

@ -13,6 +13,7 @@ import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.common.core.result.ResultBean;
import java.util.HashMap;
import java.util.List;
public class FinKingDeeFeignFallBack
@ -77,4 +78,9 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> getKingDataInfoByNumber(String formId,String number) {
return null;
}
}

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

@ -30,6 +30,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
@Api(tags = "单据调用金蝶的保存接口")
@ -178,4 +179,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean<List<KingDeeResult>> draftBdCustomer(@RequestBody BdCustomer bdCustomer) {
return bdCustomerService.draftBdCustomer(bdCustomer);
}
@ApiOperation("使用number查看数据表单")
@GetMapping("/getKingDataInfoByNumber/{formId}/{number}")
@ResponseBody
@Override
public ResultBean<String> getKingDataInfoByNumber(@PathVariable("formId") String formId,@PathVariable("number") String number) {
return bdCustomerService.getKingDataInfoByNumber(formId,number);
}
}

38
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java

@ -1,11 +1,15 @@
package com.yxt.anrui.fin.biz.kingdee;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONString;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.common.core.result.ResultBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
@ -32,6 +36,26 @@ public class FinKingDeeService {
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 查看审核金蝶的数据接口
* @param number
* @return
*/
public ResultBean<String> getKingDeeBillDataByNumber(String formId,String number) {
/* String data="{\"formId\":\""+formId+"\"," +
"\"data\":\"{\\\"CreateOrgId\\\":\\\"0\\\",\\\"Number\\\":\\\""+number+"\\\",\\\"Id\\\":\\\"\\\"}\"}";
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}", JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.getKingDeeBillDataByNumber(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;*/
String data = getGetKDForNumbers(formId, number);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<String> listResultBean = KingDeeSaveSKD.getKingDeeBillDataByNumber(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用提交金蝶的数据接口
* @param formId
@ -161,6 +185,16 @@ public class FinKingDeeService {
}
return resultList;
}
/**
* 构造查看接口的数据格式
* @return
*/
public String getGetKDForNumbers(String formId, String Numbers) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Number\\\":\\\""+Numbers+"\\\",\\\"Id\\\":\\\"\\\"}\"}";
}
/**
* 构造提交接口的数据格式
* @param resultBean
@ -216,6 +250,10 @@ public class FinKingDeeService {
/*{\"PkIds\":\"0\",\"TOrgIds\":\"\",\"IsAutoSubmitAndAudit\":\"false\"}*/
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
public ResultBean<String> getKingDataInfoByNumber(String formId,String number) {
ResultBean<String> kingDeeBillDataByNumber = getKingDeeBillDataByNumber(formId, number);
return kingDeeBillDataByNumber;
}
/**
* 调用金蝶接口的数据格式
*/

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

@ -66,6 +66,8 @@ public class KingDeeSaveSKD {
private static String Audit_URL = url+"DynamicFormService.Audit.common.kdsvc";
//数据分配接口的地址
private static String Allocate_URL = url+"DynamicFormService.Allocate.common.kdsvc";
//查看单据接口的地址
private static String View_URL = url+"DynamicFormService.View.common.kdsvc";
//登录,校验用户的API接口地址
private static String Login_URL = url+"AuthService.ValidateUser.common.kdsvc";
@ -269,6 +271,50 @@ public class KingDeeSaveSKD {
return rb;
}
/**
* 查看金蝶数据
* @param jsonParam
* @return
*/
public static ResultBean<String> getKingDeeBillDataByNumber(FinKingDeeService.KingDeeParams jsonParam) {
ResultBean<String > rb= ResultBean.fireFail();
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb;
try {
URI save_uri = new URI(View_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info("jsonParam:{}",JSON.toJSON(jsonParam.getData()));
//StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(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) {
log.info("请求成功");
// 读取服务器返回过来的json字符串数据
String str = EntityUtils.toString(result.getEntity());
if(StringUtils.isBlank(str)){
return rb.setMsg("操作失败");
}
log.info(str);
return rb.success().setData(str);
}
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
public static ResultBean<List<KingDeeResult>> loginKingDeeSystem( HttpClient httpclient) {
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
@ -357,10 +403,11 @@ public class KingDeeSaveSKD {
JSONObject jr=JSONObject.parseObject(JSON.toJSONString(f));
KingDeeResult kingDeeResult = new KingDeeResult();
kingDeeResult.setDIndex(jr.get("DIndex").toString());
kingDeeResult.setId(jr.get("Id").toString());
kingDeeResult.setNumber(jr.get("Number").toString());
kingDeeResult.setId(jr.get("Id")!=null?jr.get("Id").toString():"");
kingDeeResult.setNumber(jr.get("Number")!=null?jr.get("Number").toString():"");
list.add(kingDeeResult);
});
return new ResultBean<List<KingDeeResult>> (aBoolean,"操作成功!","200").setData(list);
}
}

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

@ -46,7 +46,7 @@ public class BdSupplierService extends FinKingDeeService {
String kingDeeData = BdSupplierCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<List<KingDeeResult>> resultBean = saveBill(KingDeeBillId.BD_SUPPLIER.getID(), kingDeeData);
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(), resultBean);
if(!resultBean1.getSuccess()){
log.info("供应商提交失败!");
return rb.setMsg("供应商提交失败!");
@ -54,7 +54,7 @@ public class BdSupplierService extends FinKingDeeService {
log.info("供应商提交成功!");
//String auditKD = getAuditKD(resultBean,KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(), resultBean);
if(!resultBean2.getSuccess()){
log.info("供应商审核失败!");
return rb.setMsg("供应商审核失败!");
@ -62,7 +62,7 @@ public class BdSupplierService extends FinKingDeeService {
log.info("供应商审核成功!");
//String allocate = getAllocate(resultBean1,bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),bdSupplier.getTOrgIds(), resultBean1);
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(),bdSupplier.getTOrgIds(), resultBean1);
if(!resultBean3.getSuccess()){
log.info("供应商分配失败!");
return rb.setMsg("供应商分配失败!");

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java

@ -1,6 +1,8 @@
package com.yxt.anrui.fin.biz.kingdee.orgorganizations;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
@ -26,10 +28,23 @@ public class OrgOrganizationsService extends FinKingDeeService {
Map<String,String> map_fEntityModel_= object2Map(orgOrganizations);
//准备 物料列表的数据 ForEntryBill
String kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
return saveBill(KingDeeBillId.ORG_ORGANIZATIONS.getID(),kingDeeData);
ResultBean<List<KingDeeResult>> result = saveBill(KingDeeBillId.ORG_ORGANIZATIONS.getID(), kingDeeData);
if (!result.getSuccess()){
return result;
}
String number = orgOrganizations.getFNumber();
ResultBean<String> kingDeeBillDataByNumber = getKingDeeBillDataByNumber(KingDeeBillId.ORG_ORGANIZATIONS.getID(), number);
String data = kingDeeBillDataByNumber.getData();
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject result1 = (JSONObject) jsonObject.get("Result");
JSONObject result2 = (JSONObject) result1.get("Result");
int Id = (int) result2.get("Id");
return kingDeeBillDataByNumber.setData(Id+"");
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx

Binary file not shown.
Loading…
Cancel
Save