Browse Source

完善调拨单的金蝶接口。

master
yxt_djz 3 years ago
parent
commit
4eaf157de9
  1. 31
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  2. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java
  3. 75
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java

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

@ -293,7 +293,38 @@ public class FinKingDeeService {
}
return new ResultBean<String>().fail().setMsg("查询异常");
}
/**
* 审核
* @param data
* @return
* @throws Exception
*/
public ResultBean<String> audit( String data,String formId) throws Exception {
String auditKD = getAuditKDTempJson(formId,data);
ResultBean<String> resultBean2 = accessKingDeeInterface(formId, auditKD,KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info(formId+"审核失败!"+data);
}
log.info(formId+"审核成功!"+data);
return resultBean2;
}
/**
* 提交
* @param data
* @return
* @throws Exception
*/
public ResultBean<String> submit( String data,String formId) throws Exception {
String submitKD = getSubmitKDTempJson(formId,data);
ResultBean<String> resultBean1 = accessKingDeeInterface(formId,
submitKD,KingDeeBillUrl.SUBMIT_URL.getURL());//submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), submitKD);
if(!resultBean1.getSuccess()){
log.info(formId+"提交失败!"+data);
}
log.info(formId+"提交成功!"+data);
return resultBean1;
}
/**
* 调用金蝶接口的数据格式
*/

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java

@ -340,7 +340,7 @@ public class BdMaterialService extends FinKingDeeService {
}
/**
* 判断是否存在物料
* 反审核
* @param bdMaterial
* @return
* @throws Exception

75
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java

@ -4,6 +4,7 @@ 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.KingDeeCode;
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
@ -35,36 +36,68 @@ public class StkTransferDirectService extends FinKingDeeService {
for (StkTransferDirect.FBillEntry f: fBillEntry){
f.setFDestStockId("ARZSCK");//调入仓库 默认为:分公司正式仓库 每隔分公司都有这个编码的仓库。
//单据查看的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 result2 = (JSONObject)result.get("Result");
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
log.info("result2:{}",result2);
JSONObject result2 = getMaterial(f);
if(result2==null){
return rb.setMsg(f.getFMaterialId()+"物料不存在");
}
JSONArray materialStocks = (JSONArray)result2.get("MaterialStock");
JSONObject materialStock = (JSONObject)materialStocks.get(0);
boolean IsBatchManage = (boolean) materialStock.get("IsBatchManage");
if(!IsBatchManage){//未开启批号管理
f.setFLot("");//批号
f.setFDestLot("");//调入批号
}else{//开启批号管理
f.setFLot(f.getFMaterialId());//批号
f.setFDestLot(f.getFMaterialId());//调入批号
}
setFlot(f, result2);
}
//准备 物料列表的数据 ForEntryBill
List<Map<String, String>> vehicleListMap = createVehicleLists(fBillEntry);
String kingDeeData = StkTransferDirectCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
return accessKingDeeInterface(KingDeeBillId.STK_TRANSFERDIRECT.getID(),kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
/*{"Result":{"ResponseStatus":{"IsSuccess":true,"Errors":[],"SuccessEntitys":[{"Id":102499,"Number":"","DIndex":0}],"SuccessMessages":[],"MsgCode":0},"Id":102499,"Number":"","NeedReturnData":[{}]}}*/
ResultBean<String> stringResultBean = accessKingDeeInterface(KingDeeBillId.STK_TRANSFERDIRECT.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
String data = stringResultBean.getData();
JSONObject jsonObject = JSONObject.parseObject(data.toString());
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject result2 = (JSONObject)result.get("Result");
log.info("StkTransferDirect:{}",data);
log.info("result2:{}",result2);
String id = (String)result.get("id");
ResultBean<String> submit = submit(data,KingDeeBillId.STK_TRANSFERDIRECT.getID());
if (!submit.getSuccess()) return rb.setCode(KingDeeCode.SUBMIT.getCode()).setData(submit.getData());
ResultBean<String> audit = audit(data,KingDeeBillId.STK_TRANSFERDIRECT.getID());
if (!audit.getSuccess()) return rb.setCode(KingDeeCode.AUDIT.getCode()).setData(audit.getData());
return stringResultBean;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
return rb.setMsg("调拨单推送失败!");
}
/**
* 设置批号
* @param f
* @param result2
*/
private void setFlot(StkTransferDirect.FBillEntry f, JSONObject result2) {
JSONArray materialStocks = (JSONArray) result2.get("MaterialStock");
JSONObject materialStock = (JSONObject)materialStocks.get(0);
boolean IsBatchManage = (boolean) materialStock.get("IsBatchManage");
if(!IsBatchManage){//未开启批号管理
f.setFLot("");//批号
f.setFDestLot("");//调入批号
}else{//开启批号管理
f.setFLot(f.getFMaterialId());//批号
f.setFDestLot(f.getFMaterialId());//调入批号
}
}
/**
* 查询物料
* @param f
* @return
* @throws Exception
*/
private JSONObject getMaterial(StkTransferDirect.FBillEntry f) throws Exception {
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 result2 = (JSONObject)result.get("Result");
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
log.info("result2:{}",result2);
return result2;
}
}

Loading…
Cancel
Save