Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
hp 3 years ago
parent
commit
3378c8d9ce
  1. 180
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  2. 9
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/BdCustomerService.java
  3. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java
  4. 25
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java
  5. 147
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java

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

@ -48,107 +48,6 @@ public class FinKingDeeService {
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 查看审核金蝶的数据接口
* @param number
* @return
*/
/* public ResultBean<List<KingDeeResult>> getKingDeeBillDataByNumber(String formId, String number) throws Exception {
*//* 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<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用提交金蝶的数据接口
* @param formId
* @param data
* @return
*/
/*public ResultBean<List<KingDeeResult>> submitKingDeeBillData(String formId,String data) throws Exception {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用提交金蝶的数据接口
* @param formId
* @param result
* @return
*/
/* public ResultBean<List<KingDeeResult>> submitKingDeeBillData(String formId,ResultBean<List<KingDeeResult>> result) throws Exception {
String data = getSubmitKD(result, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用审核金蝶的数据接口
* @param formId
* @param data
* @return
*/
/*public ResultBean<List<KingDeeResult>> auditKingDeeBillData(String formId,String data) throws Exception {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用审核金蝶的数据接口
* @param formId
* @param result
* @return
*/
/* public ResultBean<List<KingDeeResult>> auditKingDeeBillData(String formId,ResultBean<List<KingDeeResult>> result) throws Exception {
String data = getAuditKD(result, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用分配金蝶的数据接口
* @param formId
* @param data
* @return
*/
/*public ResultBean<List<KingDeeResult>> allocateKingDeeBillData(String formId, String data) throws Exception {
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用分配金蝶的数据接口
* @param formId
* @return
*/
/* public ResultBean<List<KingDeeResult>> allocateKingDeeBillData(String formId,String tOrgIds,ResultBean<List<KingDeeResult>> result) throws Exception {
String data = getAllocate(result,tOrgIds, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
private KingDeeParams getKingDeeParams(String formId, String data) {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
@ -195,6 +94,18 @@ public class FinKingDeeService {
}
return resultList;
}
/**
* 构造单据查询接口的数据格式
* @return
*/
public String getQueryKDTempJSON(String formId, String Numbers) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
return "{\"data\":\"{\\\"FormId\\\":\\\""+formId+"\\\"," +
"\\\"FieldKeys\\\":\\\"FName,FNumber,FUseOrgId\\\",\\\"FilterString\\\":\\\"FNumber='"+Numbers+"'\\\"," +
"\\\"OrderString\\\":\\\"\\\",\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"20\\\"}\"}";
}
/**
* 构造查看接口的数据格式
* @return
@ -209,61 +120,42 @@ public class FinKingDeeService {
* 构造提交接口的数据格式
* @return
*/
public String getSubmitKD(String data,String formId) {
public String getSubmitKDTempJson( String formId,String s) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
/* List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);*/
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
JSONArray successEntitys = (JSONArray)responseStatus.get("SuccessEntitys");
StringBuilder Ids=new StringBuilder();
for (int i=0;i<successEntitys.size();i++){
JSONObject o = (JSONObject)successEntitys.get(i);
Ids.append(o.get("Id")).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\"}\"}";
}
/**
* 构造审核接口的数据格式
* @param resultBean
* @return
*/
public String getAuditKD(String data,String formId) {
public String getAuditKDTempJson(String formId,String s) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
JSONArray successEntitys = (JSONArray)responseStatus.get("SuccessEntitys");
StringBuilder Ids=new StringBuilder();
for (int i=0;i<successEntitys.size();i++){
JSONObject o = (JSONObject)successEntitys.get(i);
Ids.append(o.get("Id")).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
}
/**
* 构造分配接口的数据格式
* @param resultBean
* @return
*/
public String getAllocate(String data,String tOrgIds,String formId) {
public String getAllocateTempJson(String formId,String s,String tOrgIds) {
/* 2.1.PkIds被分配的基础资料内码集合字符串类型格式"PkId1,PkId2,..."必录
2.2.TOrgIds目标组织内码集合字符串类型格式"TOrgId1,TOrgId2,..."必录
2.3.IsAutoSubmitAndAudit是否自动提交与审核布尔类型默认false非必录*/
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
public String getAllocate(String data,String tOrgIds,String formId) {
return getAllocateTempJson(formId,getParam(data),tOrgIds);//"{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
public String getAuditKD(String data,String formId) {
return getAuditKDTempJson(formId,getParam(data));//"{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
}
public String getSubmitKD(String data,String formId) {
return getSubmitKDTempJson(formId,getParam(data));//"{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\"}\"}";
}
private String getParam(String data) {
JSONObject jsonObject = JSONObject.parseObject(data);
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
@ -275,24 +167,8 @@ public class FinKingDeeService {
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
/*{\"PkIds\":\"0\",\"TOrgIds\":\"\",\"IsAutoSubmitAndAudit\":\"false\"}*/
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
return s;
}
/* public ResultBean<List<KingDeeResult>> getKingDataInfoByNumber(String formId, String number) throws Exception {
ResultBean<List<KingDeeResult>> kingDeeBillDataByNumber = getKingDeeBillDataByNumber(formId, number);
return kingDeeBillDataByNumber;
}*/
/* public ResultBean<List<KingDeeResult>> getKingBillDataInfoList(String formId, String jsonParam) throws Exception {
*//*String jsonParam="{\\\"FormId\\\":\\\""+KingDeeBillId.BD_MATERIAL+"\\\"," +
"\\\"FieldKeys\\\":\\\"\\\",\\\"FilterString\\\":\\\"FName=''\\\",\\\"OrderString\\\":\\\"\\\"," +
"\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"0\\\"}";*//*
KingDeeParams kdp = getKingDeeParams(formId, jsonParam);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}*/
/**
* 调用金蝶接口的数据格式

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

@ -47,9 +47,8 @@ public class BdCustomerService extends FinKingDeeService {
String kingDeeData = BdCustomerCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> resultBean = accessKingDeeInterface(
KingDeeBillId.BD_CUSTOMER.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
String data = resultBean.getData();
String submitKD = getSubmitKD(null,KingDeeBillId.BD_CUSTOMER.getID());
String submitKD = getSubmitKD(resultBean.getData(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.BD_CUSTOMER.getID(), submitKD,KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("客户提交失败!");
@ -57,7 +56,7 @@ public class BdCustomerService extends FinKingDeeService {
}
log.info("客户提交成功!");
String auditKD = getAuditKD(null,KingDeeBillId.BD_CUSTOMER.getID());
String auditKD = getAuditKD(resultBean.getData(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.BD_CUSTOMER.getID(), auditKD,KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("客户审核失败!");
@ -65,7 +64,7 @@ public class BdCustomerService extends FinKingDeeService {
}
log.info("客户审核成功!");
String allocate = getAllocate(null,bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
String allocate = getAllocate(resultBean.getData(),bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<String> resultBean3 = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(),allocate,KingDeeBillUrl.ALLOCATE_URL.getURL());
if(!resultBean3.getSuccess()){
log.info("客户分配失败!");
@ -73,7 +72,7 @@ public class BdCustomerService extends FinKingDeeService {
}
log.info("客户分配成功!");
return resultBean3;
return resultBean;
} catch (Exception e) {
e.printStackTrace();
}

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

@ -1,5 +1,7 @@
package com.yxt.anrui.fin.biz.kingdee.bdsupplier;
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.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
@ -46,7 +48,7 @@ public class BdSupplierService extends FinKingDeeService {
Map<String,String> map_fEntityModel_= object2Map(bdSupplier);
String kingDeeData = BdSupplierCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> resultBean = accessKingDeeInterface(KingDeeBillId.BD_SUPPLIER.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
String submitKD = getSubmitKD(null,KingDeeBillId.BD_SUPPLIER.getID());
String submitKD = getSubmitKD(resultBean.getData(),KingDeeBillId.BD_SUPPLIER.getID());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.BD_SUPPLIER.getID(), submitKD,KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("供应商提交失败!");
@ -54,15 +56,16 @@ public class BdSupplierService extends FinKingDeeService {
}
log.info("供应商提交成功!");
String auditKD = getAuditKD(null,KingDeeBillId.BD_CUSTOMER.getID());
String auditKD = getAuditKD(resultBean.getData(),KingDeeBillId.BD_SUPPLIER.getID());
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.BD_SUPPLIER.getID(), auditKD,KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("供应商审核失败!");
return rb.setMsg("供应商审核失败!");
}
log.info("供应商审核成功!");
/*
String allocate = getAllocate(null,bdSupplier.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
String allocate = getAllocate(resultBean.getData(),bdSupplier.getTOrgIds(),KingDeeBillId.BD_SUPPLIER.getID());
ResultBean<String> resultBean3 = accessKingDeeInterface(
KingDeeBillId.BD_SUPPLIER.getID(), allocate,KingDeeBillUrl.ALLOCATE_URL.getURL());
if(!resultBean3.getSuccess()){
@ -70,8 +73,9 @@ public class BdSupplierService extends FinKingDeeService {
return rb.setMsg("供应商分配失败!");
}
log.info("供应商分配成功!");
*/
return resultBean3;
return resultBean2;
} catch (Exception e) {
e.printStackTrace();
}

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

@ -8,6 +8,7 @@ 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;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
@ -35,25 +36,25 @@ public class OrgOrganizationsService extends FinKingDeeService {
return result;
}
String number = orgOrganizations.getFNumber();
String data="{\"formId\":\""+KingDeeBillId.ORG_ORGANIZATIONS+"\"," +
"\"data\":\"{\\\"CreateOrgId\\\":\\\"0\\\",\\\"Number\\\":\\\""+number+"\\\",\\\"Id\\\":\\\"\\\"}\"}";
ResultBean<String> listResultBean = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), data,
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.ORG_ORGANIZATIONS.getID(), number);
ResultBean<String> listResultBean = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), getKDForNumbers,
KingDeeConfig.userName_administrator, KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
// List<KingDeeResult> data1 = listResultBean.getData();
String Id = "";// data1.get(0).getId();
String data_submit = "{\"formId\":\""+KingDeeBillId.ORG_ORGANIZATIONS.getID()+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+Id+"\\\"}\"}";
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), data_submit, KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.SUBMIT_URL.getURL());
String vie_result =listResultBean.getData();
JSONObject jsonObject = JSONObject.parseObject(vie_result);
JSONObject result1 = (JSONObject)jsonObject.get("Result");
JSONObject Result2 = (JSONObject)result1.get("Result");
Integer Id = (Integer)Result2.get("Id");
String id= Id+"";
String submitKDTempJson = getSubmitKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(), id);
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), submitKDTempJson, KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("组织机构提交失败!");
return rb.setMsg("组织机构提交失败!");
}
log.info("组织机构提交成功!");
String data_audit = "{\"formId\":\""+KingDeeBillId.ORG_ORGANIZATIONS.getID()+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+Id+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
String auditKDTempJson = getAuditKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(), id);
ResultBean<String> resultBean2 =
accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), data_audit,KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.AUDIT_URL.getURL());
accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), auditKDTempJson,KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("组织机构审核失败!");
return rb.setMsg("组织机构审核失败!");

147
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java

@ -1,12 +1,9 @@
package com.yxt.anrui.fin.biz.kingdee.stkinstock;
import cn.hutool.core.bean.BeanUtil;
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.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
@ -16,8 +13,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -33,75 +28,109 @@ public class STKInStockService extends FinKingDeeService {
*/
public ResultBean draftStkInStock(StkInStock stkInStock) throws Exception {
// stkInStock=StkInStock.createStkInStock();
ResultBean rb=ResultBean.fireFail();
List<StkInStock.FInStockEntry> fInStockEntry1 = stkInStock.getFInStockEntry();
for (StkInStock.FInStockEntry f: fInStockEntry1){
String data="{\"formId\":\""+KingDeeBillId.BD_MATERIAL+"\"," +
"\"data\":\"{\\\"CreateOrgId\\\":\\\"0\\\",\\\"Number\\\":\\\""+f.getFMaterialId()+"\\\",\\\"Id\\\":\\\"\\\"}\"}";
// ResultBean<String> kingDataInfoByNumber = getKingDataInfoByNumber(KingDeeBillId.BD_MATERIAL.getID(), f.getFMaterialId());
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(), data, KingDeeBillUrl.VIEW_URL.getURL());
//单据查看的json模板
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.BD_MATERIAL.getID(), f.getFMaterialId());
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(), getKDForNumbers,
KingDeeBillUrl.VIEW_URL.getURL());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject jsonObject = JSONObject.parseObject(kingDataInfoByNumber.getData().toString());
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
if(responseStatus!=null){
//不存在该物料
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
BdMaterial bdMaterial=new BdMaterial();
bdMaterial.setFName(f.getFMaterialId());
bdMaterial.setF_PAEZ_Base(f.getCllx());
bdMaterial.setFMaterialGroup(f.getWlfz());
bdMaterial.setTOrgIds(stkInStock.getTOrgId());
bdMaterialService.draftBdMaterial(bdMaterial);
}else{
//存在该物料
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
if(responseStatus!=null){//不存在该物料
//新增物料
bdMaterial(stkInStock, f);
}else{ //存在该物料
//单据查询
//分配物料
JSONObject result2 = (JSONObject)result.get("Result");
Integer Id = (Integer)result2.get("Id");
log.info("Id:{}",Id);
/* String jsonParam="{\\\"FormId\\\":\\\""+KingDeeBillId.BD_MATERIAL+"\\\"," +
"\\\"FieldKeys\\\":\\\"FUseOrgId\\\",\\\"FilterString\\\":\\\"FNumber='"+f.getFMaterialId()+"'\\\",\\\"OrderString\\\":\\\"\\\"," +
"\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"100\\\"}";*/
String jsonParam="{\"data\":\"{\\\"FormId\\\":\\\""+KingDeeBillId.BD_MATERIAL+"\\\"," +
"\\\"FieldKeys\\\":\\\"FName,FNumber,FUseOrgId\\\",\\\"FilterString\\\":\\\"FNumber='"+f.getFMaterialId()+"'\\\"," +
"\\\"OrderString\\\":\\\"\\\",\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"20\\\"}\"}";
ResultBean<String> kingBillDataInfoList = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(), jsonParam, KingDeeBillUrl.EXECUTEBILLQUERY_URL.getURL());
JSONArray objects = JSONArray.parseArray(kingBillDataInfoList.getData());
boolean b=true;
for(int i=0;i<objects.size();i++){
JSONArray ja = (JSONArray) objects.get(i);
int o =(int) ja.get(2);
String tOrgId = stkInStock.getTOrgId();
if(tOrgId!=null&tOrgId.equals(o+"")){
b=false;
}
}
if(b){
String data2="{\"formId\":\""+KingDeeBillId.BD_MATERIAL.getID()+"\"," +
"\"data\":\"{\\\"PkIds\\\":\\\""+Id+"\\\",\\\"TOrgIds\\\":\\\""+stkInStock.getTOrgId()+"\\\"," +
"\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
ResultBean<String> resultBean3 =accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(),data2,KingDeeBillUrl.ALLOCATE_URL.getURL());// allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
if(!resultBean3.getSuccess()){
log.info("物料分配失败!");
// return resultBean3.setMsg("物料分配失败!");
}
log.info("物料分配成功!");
log.info("resultBean3:{}",resultBean3);
}
allocate(f,stkInStock,Id);
}
}
// ResultBean<String> kingBillDataInfoList = bdMaterialService.getKingBillDataInfoList(KingDeeBillId.BD_MATERIAL, "");
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(stkInStock);
List<StkInStock.FInStockEntry> fInStockEntry = stkInStock.getFInStockEntry();
//准备 物料列表的数据 ForEntryBill
List<Map<String, String>> vehicleListMap = createVehicleLists(fInStockEntry);
String kingDeeData =STKInStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return accessKingDeeInterface(KingDeeBillId.STK_INSTOCK.getID(),kingDeeData,KingDeeBillUrl.SAVE_URL.getURL());
//推送入库单
return stkInstock(stkInStock);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 新增物料
* @param stkInStock
* @param f
*/
private void bdMaterial(StkInStock stkInStock, StkInStock.FInStockEntry f) {
BdMaterial bdMaterial=new BdMaterial();
bdMaterial.setFName(f.getFMaterialId());
bdMaterial.setF_PAEZ_Base(f.getCllx());
bdMaterial.setFMaterialGroup(f.getWlfz());
bdMaterial.setTOrgIds(stkInStock.getTOrgId());
bdMaterialService.draftBdMaterial(bdMaterial);
}
/**
* 单据查询
* @param f
* @return
* @throws Exception
*/
private JSONArray executeBillQuery(StkInStock.FInStockEntry f) throws Exception {
String queryKDTempJSON = getQueryKDTempJSON(KingDeeBillId.BD_MATERIAL.getID(), f.getFMaterialId());
ResultBean<String> kingBillDataInfoList = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(), queryKDTempJSON, KingDeeBillUrl.EXECUTEBILLQUERY_URL.getURL());
JSONArray objects = JSONArray.parseArray(kingBillDataInfoList.getData());
return objects;
}
/**
* 推送入库单
* @param stkInStock
* @return
* @throws Exception
*/
private ResultBean<String> stkInstock(StkInStock stkInStock) throws Exception {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(stkInStock);
List<StkInStock.FInStockEntry> fInStockEntry = stkInStock.getFInStockEntry();
//准备 物料列表的数据 ForEntryBill
List<Map<String, String>> vehicleListMap = createVehicleLists(fInStockEntry);
String kingDeeData =STKInStockCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return accessKingDeeInterface(KingDeeBillId.STK_INSTOCK.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
}
/**
* 分配物料
* @throws Exception
*/
private void allocate(StkInStock.FInStockEntry f,StkInStock stkInStock,Integer Id) throws Exception {
JSONArray objects= executeBillQuery(f);
boolean b=true;
for(int i=0;i<objects.size();i++){
JSONArray ja = (JSONArray) objects.get(i);
int o =(int) ja.get(2);//金蝶系统中物料的使用组织的ID
String tOrgId = stkInStock.getTOrgId();
if(tOrgId!=null&tOrgId.equals(o+"")){
b=false;
}
}
if(b){
String allocateTempJson = getAllocateTempJson(KingDeeBillId.BD_MATERIAL.getID(), Id+"", stkInStock.getTOrgId());
ResultBean<String> resultBean3 =accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(),
allocateTempJson,KingDeeBillUrl.ALLOCATE_URL.getURL());// allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
if(!resultBean3.getSuccess()){
log.info("物料分配失败!");
}else{
log.info("物料分配成功!");
}
log.info("resultBean3:{}",resultBean3);
}
}
}

Loading…
Cancel
Save