diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java index 698eade787..b1aedc2b27 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java +++ b/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().fail().setMsg("查询异常"); } + /** + * 审核 + * @param data + * @return + * @throws Exception + */ + public ResultBean audit( String data,String formId) throws Exception { + String auditKD = getAuditKDTempJson(formId,data); + ResultBean 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 submit( String data,String formId) throws Exception { + String submitKD = getSubmitKDTempJson(formId,data); + ResultBean 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; + } /** * 调用金蝶接口的数据格式 */ diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java index 6e2bbf24ef..f1417949d6 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java +++ b/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 diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java index 2beddc3337..d6eb9a0645 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java +++ b/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 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> 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 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 submit = submit(data,KingDeeBillId.STK_TRANSFERDIRECT.getID()); + if (!submit.getSuccess()) return rb.setCode(KingDeeCode.SUBMIT.getCode()).setData(submit.getData()); + ResultBean 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 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; } }