|
|
@ -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,19 +36,41 @@ 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 result2 = getMaterial(f); |
|
|
|
if(result2==null){ |
|
|
|
return rb.setMsg(f.getFMaterialId()+"物料不存在"); |
|
|
|
} |
|
|
|
setFlot(f, result2); |
|
|
|
} |
|
|
|
//准备 物料列表的数据 ForEntryBill
|
|
|
|
List<Map<String, String>> vehicleListMap = createVehicleLists(fBillEntry); |
|
|
|
String kingDeeData = StkTransferDirectCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap); |
|
|
|
/*{"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("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData()); |
|
|
|
log.info("StkTransferDirect:{}",data); |
|
|
|
log.info("result2:{}",result2); |
|
|
|
if(result2==null){ |
|
|
|
return rb.setMsg(f.getFMaterialId()+"物料不存在"); |
|
|
|
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.setMsg("调拨单推送失败!"); |
|
|
|
} |
|
|
|
JSONArray materialStocks = (JSONArray)result2.get("MaterialStock"); |
|
|
|
/** |
|
|
|
* 设置批号 |
|
|
|
* @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){//未开启批号管理
|
|
|
@ -58,13 +81,23 @@ public class StkTransferDirectService extends FinKingDeeService { |
|
|
|
f.setFDestLot(f.getFMaterialId());//调入批号
|
|
|
|
} |
|
|
|
} |
|
|
|
//准备 物料列表的数据 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()); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb; |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询物料 |
|
|
|
* @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; |
|
|
|
} |
|
|
|
} |
|
|
|