diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java index c005f5e7ee..6b24622feb 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java @@ -3,6 +3,7 @@ package com.yxt.anrui.fin.api.kingdee; import com.yxt.anrui.fin.api.kingdee.appayable.APPayable; import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; +import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill; import com.yxt.anrui.fin.api.kingdee.bank.BDBank; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment; @@ -54,6 +55,12 @@ public interface FinKingDeeFeign { @PostMapping("/draftReceivableBill") @ResponseBody ResultBean draftReceivableBill(@RequestBody @Valid ARReceivable aRReceivable); + + @ApiOperation("暂存付款单的接口") + @PostMapping("/draftArReceivebill") + @ResponseBody + ResultBean draftArReceivebill(@RequestBody @Valid ARReceivebill arReceivebill); + @ApiOperation("暂存付款单的接口") @PostMapping("/draftApPayBill") @ResponseBody diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java index e986d77999..39b9174cbf 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java @@ -3,6 +3,7 @@ package com.yxt.anrui.fin.api.kingdee; import com.yxt.anrui.fin.api.kingdee.appayable.APPayable; import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; +import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill; import com.yxt.anrui.fin.api.kingdee.bank.BDBank; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment; @@ -34,6 +35,11 @@ implements FinKingDeeFeign{ return null; } + @Override + public ResultBean draftArReceivebill(ARReceivebill arReceivebill) { + return null; + } + @Override public ResultBean draftApPayBill(ApPayBill apPayBill) { return null; diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivebill/ARReceivebill.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivebill/ARReceivebill.java new file mode 100644 index 0000000000..0cac6f028f --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/arreceivebill/ARReceivebill.java @@ -0,0 +1,93 @@ +package com.yxt.anrui.fin.api.kingdee.arreceivebill; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.ArrayList; +import java.util.List; + +/** + * 收款单 + */ +@Data +public class ARReceivebill { + @JsonProperty("FDATE") + @NotBlank(message = "FDATE不能为空") + // 业务日期:FDATE (必填项) + public String FDATE; + @JsonProperty("FCONTACTUNIT") + @NotBlank(message = "FCONTACTUNIT不能为空") + // 往来单位:FCONTACTUNIT (必填项) + public String FCONTACTUNIT; + @JsonProperty("FPAYORGID") + @NotBlank(message = "FPAYORGID不能为空") + // 收款组织:FPAYORGID (必填项) + public String FPAYORGID; + @JsonProperty("FSALEDEPTID") + @NotBlank(message = "FSALEDEPTID不能为空") + // 销售部门:FSALEDEPTID (必填项) + public String FSALEDEPTID; + /* @JsonProperty("F_PAEZ_Assistant") + @NotBlank(message = "F_PAEZ_Assistant不能为空") + // 项目类别:F_PAEZ_Assistant (必填项) + public String F_PAEZ_Assistant;*/ + /** + * //应付类别:F_PAEZ_AssistantType (必填项) 默认:005 定金 + */ + @JsonProperty("F_PAEZ_AssistantType") + @NotBlank(message = "F_PAEZ_AssistantType不能为空") + public String F_PAEZ_AssistantType; + /** + * //应付类别:F_PAEZ_AssistantKey (必填项) 默认:005 定金 + */ + @JsonProperty("F_PAEZ_AssistantKey") + @NotBlank(message = "F_PAEZ_AssistantKey不能为空") + public String F_PAEZ_AssistantKey; + @JsonProperty("FRECEIVEBILLENTRY") + public List FRECEIVEBILLENTRY=new ArrayList<>(); + @Data + public static class FRECEIVEBILLENTRY { + /* @JsonProperty("FSETTLETYPEID") + @NotBlank(message = "FSETTLETYPEID不能为空") + // 结算方式:FSETTLETYPEID (必填项) + public String FSETTLETYPEID;*/ + /** + * 结算方式:FSETTLETYPEIDKey (必填项) + */ + @JsonProperty("FSETTLETYPEIDKey") + @NotBlank(message = "FSETTLETYPEIDKey不能为空") + public String FSETTLETYPEIDKey; + /** + * 结算方式:FSETTLETYPEIDType (必填项) + */ + @JsonProperty("FSETTLETYPEIDType") + @NotBlank(message = "FSETTLETYPEIDType不能为空") + public String FSETTLETYPEIDType; + /* @JsonProperty("FPURPOSEID") + @NotBlank(message = "FPURPOSEID不能为空") + // 收款用途:FPURPOSEID (必填项) + public String FPURPOSEID;*/ + /** + * 付款用途:FPURPOSEIDType (必填项) SFKYT08_SYS:采购付款 SFKYT09_SYS:预付款 + */ + @JsonProperty("FPURPOSEIDType") + @NotBlank(message = "FPURPOSEIDType不能为空") + public String FPURPOSEIDType; + /** + * 付款用途:FPURPOSEIDKey (必填项) SFKYT08_SYS:采购付款 SFKYT09_SYS:预付款 + */ + @JsonProperty("FPURPOSEIDKey") + @NotBlank(message = "FPURPOSEIDKey不能为空") + public String FPURPOSEIDKey; + @JsonProperty("FPOSTDATE") + @NotBlank(message = "FPOSTDATE不能为空") + // 登账日期:FPOSTDATE (必填项) + public String FPOSTDATE; + @JsonProperty("FRECTOTALAMOUNTFOR") + @NotBlank(message = "FRECTOTALAMOUNTFOR不能为空") + // 表体-应收金额:FRECTOTALAMOUNTFOR (必填项) + public String FRECTOTALAMOUNTFOR; + } + +} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index cf54193c0f..a45c22d030 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -1,12 +1,11 @@ package com.yxt.anrui.fin.biz.kingdee; -import cn.hutool.json.JSONString; import com.alibaba.fastjson.JSONObject; import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; -import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; import com.yxt.anrui.fin.api.kingdee.appayable.APPayable; import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; +import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill; import com.yxt.anrui.fin.api.kingdee.bank.BDBank; import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer; import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment; @@ -24,6 +23,7 @@ import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock; import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect; import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService; import com.yxt.anrui.fin.biz.kingdee.appayable.APPayableService; +import com.yxt.anrui.fin.biz.kingdee.arreceivebill.ArReceivebillService; import com.yxt.anrui.fin.biz.kingdee.bank.BDBankService; import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService; import com.yxt.anrui.fin.biz.kingdee.bddepartment.BdDepartmentService; @@ -150,6 +150,11 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { */ @Autowired private FinKingDeeService finKingDeeService; + /** + * 收款单 + */ + @Autowired + private ArReceivebillService arReceivebillService; @ApiOperation("入账暂存应付单的接口") @PostMapping("/draftEntryBill") @ResponseBody @@ -166,6 +171,15 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { log.info("FinKingDeeFeignRest-draftReceivableBill:{}", JSONObject.toJSONString(aRReceivable)); return receivableBillService.draftReceivableBill(aRReceivable); } + @ApiOperation("暂存收款单的接口") + @PostMapping("/draftArReceivebill") + @ResponseBody + @Override + public ResultBean draftArReceivebill(@RequestBody @Valid ARReceivebill arReceivebill) { + log.info("FinKingDeeFeignRest-draftArReceivebill:{}", JSONObject.toJSONString(arReceivebill)); + return arReceivebillService.draftArReceivebill(arReceivebill); + } + @ApiOperation("暂存付款单的接口") @PostMapping("/draftApPayBill") @ResponseBody diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillCastToKingDeeBillFields.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillCastToKingDeeBillFields.java new file mode 100644 index 0000000000..5380de3256 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillCastToKingDeeBillFields.java @@ -0,0 +1,60 @@ +package com.yxt.anrui.fin.biz.kingdee.arreceivebill; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 封装转换的类 + */ +public class ArReceivebillCastToKingDeeBillFields { + /** + * 构造金蝶需要的数据结构 并对字段赋值 + * + * @param map_fEntityModel_ + * @param vehicleList + * @return + */ + public static String getKingDeeData(Map map_fEntityModel_,List> vehicleList){ + /** + * 取模板 + */ + String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/arreceivebill/data.json"); + String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_data.json"); + String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_model.json"); + String fPAYBILLENTRY_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_FRECEIVEBILLENTRY.json"); + + //模板字符创转json + JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField); + JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField); + + fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_); + JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField); + + List list_fEntityDetail_=new ArrayList<>(); + + //对模板字段赋值 根据传递进来的map数据的集合进行赋值 + for(int i=0;i params=vehicleList.get(i); + Map map_fEntityDetail_=new HashMap<>(); + for (Map.Entry entry : params.entrySet()) { + map_fEntityDetail_.put(entry.getKey(),entry.getValue()); + } + fPAYBILLENTRY_ =KingDeeUtils.replaceTemplateParams(fPAYBILLENTRY_, map_fEntityDetail_); + list_fEntityDetail_.add(JSONObject.parseObject(fPAYBILLENTRY_,Feature.OrderedField)); + } + + jsonFEntityModel_.put("FRECEIVEBILLENTRY", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_))); + jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); + jsonObj.put("data",jsonFEntityData_.toJSONString()); + + return jsonObj.toJSONString(); + } +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillService.java new file mode 100644 index 0000000000..bfa0c09ca9 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/ArReceivebillService.java @@ -0,0 +1,88 @@ +package com.yxt.anrui.fin.biz.kingdee.arreceivebill; + +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.appaybill.ApPayBill; +import com.yxt.anrui.fin.api.kingdee.arreceivebill.ARReceivebill; +import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; +import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoQuery; +import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoVo; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class ArReceivebillService extends FinKingDeeService { + + /** + * 保存收款单 + * @param apPayBill + * @return + */ + public ResultBean draftArReceivebill(ARReceivebill apPayBill) { + // apPayBill=ApPayBill.createApPayBill(); + ResultBean rb=ResultBean.fireFail(); + try { + //业务表的主表数据集合 + Map map_fEntityModel_= object2Map(apPayBill);//createMapParams(stringObjectMap); + //项目类别 + ResultBean sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "项目类别", + map_fEntityModel_.get("F_PAEZ_AssistantKey"), map_fEntityModel_.get("F_PAEZ_AssistantType")); + boolean success = sysMappingInfoVoResultBean.getSuccess(); + if(!success){ + return rb.setMsg(sysMappingInfoVoResultBean.getMsg()); + } + map_fEntityModel_.put("F_PAEZ_Assistant",sysMappingInfoVoResultBean.getData().getMap_itemKey());//"001"); + //准备 物料列表的数据 ForEntryBill + List freceivebillentry = apPayBill.getFRECEIVEBILLENTRY(); + List> vehicleListMap = createVehicleLists(freceivebillentry); + for(int i=0;i params=vehicleListMap.get(i); + //付款用途 + sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "收款用途", params.get("FPURPOSEIDKey"), params.get("FPURPOSEIDType")); + if(! sysMappingInfoVoResultBean.getSuccess()){ + return rb.setMsg(sysMappingInfoVoResultBean.getMsg()); + } + params.put("FPURPOSEID",sysMappingInfoVoResultBean.getData().getMap_itemKey());//"SFKYT08_SYS"); + //结算方式 + sysMappingInfoVoResultBean = getSysMappingInfoVoResultBean( "结算方式", params.get("FSETTLETYPEIDKey"), params.get("FSETTLETYPEIDType")); + if(!sysMappingInfoVoResultBean.getSuccess()){ + return rb.setMsg(sysMappingInfoVoResultBean.getMsg()); + } + params.put("FSETTLETYPEID",sysMappingInfoVoResultBean.getData().getMap_itemKey());//"02");// + } + String kingDeeData = ArReceivebillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap); + // ResultBean stringResultBean = accessKingDeeInterface(KingDeeBillId.AP_PAYBILL.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL()); + ResultBean stringResultBean = accessKingDeeInterface(KingDeeBillId.AR_RECEIVEBILL.getID(), kingDeeData, KingDeeBillUrl.SAVE_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("ArReceivebillService:{}",data); + log.info("result:{}",result); + log.info("result2:{}",result2); + int id = (int)result.get("Id"); + ResultBean submit = submit(KingDeeBillId.AR_RECEIVEBILL.getID(),id+""); + if (!submit.getSuccess()) return rb.setCode(KingDeeCode.SUBMIT.getCode()).setData(submit.getData()); + return stringResultBean; + } catch (Exception e) { + e.printStackTrace(); + } + return rb; + } + + private ResultBean getSysMappingInfoVoResultBean( String Map_item, String FPURPOSEIDKey, + String FPURPOSEIDType) { + SysMappingInfoQuery smiq =new SysMappingInfoQuery(); + smiq.setMap_sourceKey("CWXT"); + smiq.setMap_object("收款单"); + smiq.setMap_item(Map_item); + smiq.setDictKey(FPURPOSEIDKey); + smiq.setDictTypeCode(FPURPOSEIDType); + return sysMappingFeign.selectMappingInfo(smiq); + } +} diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data.json new file mode 100644 index 0000000000..b62ff6115c --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data.json @@ -0,0 +1,4 @@ +{ + "formId": "AR_RECEIVEBILL", + "data": "@KD_data" +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_FRECEIVEBILLENTRY.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_FRECEIVEBILLENTRY.json new file mode 100644 index 0000000000..287a26aa99 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_FRECEIVEBILLENTRY.json @@ -0,0 +1,22 @@ +{ + "FSETTLETYPEID": { + "FNumber": "@KD_FSETTLETYPEID" + }, + "F_PAEZ_Base": { + "FNUMBER": "" + }, + "F_PAEZ_Base1": { + "FNUMBER": "" + }, + "FPURPOSEID": { + "FNumber": "@KD_FPURPOSEID" + }, + "FRECTOTALAMOUNTFOR":@KD_FRECTOTALAMOUNTFOR, + "FRECAMOUNTFOR_E": 0, + "F_PMZC_Text": "0", + "FACCOUNTID": { + "FNumber": "" + }, + "FRECAMOUNT_E": 0, + "FPOSTDATE": "@KD_FPOSTDATE" +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_data.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_data.json new file mode 100644 index 0000000000..f8b9dc071d --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_data.json @@ -0,0 +1,13 @@ +{ + "Creator": "", + "NeedUpDateFields": [], + "NeedReturnFields": [], + "IsDeleteEntry": "True", + "SubSystemId": "", + "IsVerifyBaseDataField": "false", + "IsEntryBatchFill": "True", + "ValidateFlag": "True", + "NumberSearch": "True", + "InterationFlags": "", + "Model": {} +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_model.json new file mode 100644 index 0000000000..4f5d287842 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/data_model.json @@ -0,0 +1,45 @@ +{ + "FID": 0, + "FBillTypeID": { + "FNUMBER": "SKDLX01_SYS" + }, + "FDATE": "@KD_FDATE", + "FCONTACTUNITTYPE": "BD_Customer", + "FCONTACTUNIT": { + "FNumber": "@KD_FCONTACTUNIT" + }, + "FPAYUNITTYPE": "BD_Customer", + "FPAYUNIT": { + "FNumber": "@KD_FCONTACTUNIT" + }, + "FCURRENCYID": { + "FNumber": "PRE001" + }, + "FPAYORGID": { + "FNumber": "@KD_FPAYORGID" + }, + "FSETTLERATE": 1.0, + "FSETTLEORGID": { + "FNumber": "@KD_FPAYORGID" + }, + "FSALEORGID": { + "FNumber": "@KD_FPAYORGID" + }, + "FSALEDEPTID": { + "FNumber": "@KD_FSALEDEPTID" + }, + "FDOCUMENTSTATUS": "Z", + "FBUSINESSTYPE": "1", + "FISINIT": false, + "FEXCHANGERATE": 1.0, + "FCancelStatus": "A", + "FSETTLECUR": { + "FNUMBER": "PRE001" + }, + "FISB2C": false, + "FIsWriteOff": false, + "F_PAEZ_Assistant": { + "FNumber": "@KD_F_PAEZ_Assistant" + }, + "FRECEIVEBILLENTRY": [] +} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/remarks.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/remarks.txt new file mode 100644 index 0000000000..f9646b686a --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/remarks.txt @@ -0,0 +1,186 @@ +一、请求参数说明: +1.formid:业务对象表单Id,字符串类型(必录) +2.data:Json格式数据(详情参考Json格式数据)(必录) + 2.1.Creator:创建者内码(非必录) + 2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key) + 2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key) + 2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录) + 2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录) + 2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录) + 2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录) + 2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录) + 2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录) + 2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult) + 2.11.Model:表单数据包,Json类型(必录) + +二、Json格式数据: +{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":\"0\",\"FBillTypeID\":{\"FNUMBER\":\"\"},\"FBillNo\":\"\",\"FDATE\":\"1900-01-01\",\"FCONTACTUNITTYPE\":\"\",\"FCONTACTUNIT\":{\"FNumber\":\"\"},\"FPAYUNITTYPE\":\"\",\"FPAYUNIT\":{\"FNumber\":\"\"},\"FCURRENCYID\":{\"FNumber\":\"\"},\"FPAYORGID\":{\"FNumber\":\"\"},\"FSETTLERATE\":\"0\",\"FSETTLEORGID\":{\"FNumber\":\"\"},\"FSALEORGID\":{\"FNumber\":\"\"},\"FSALEDEPTID\":{\"FNumber\":\"\"},\"FSALEGROUPID\":{\"FNumber\":\"\"},\"FSALEERID\":{\"FNumber\":\"\"},\"FDOCUMENTSTATUS\":\"\",\"FDepartment\":{\"FNumber\":\"\"},\"FBUSINESSTYPE\":\"\",\"FISINIT\":\"false\",\"FEXCHANGERATE\":\"0\",\"FCancelStatus\":\"\",\"FScanPoint\":{\"FNUMBER\":\"\"},\"FSETTLECUR\":{\"FNUMBER\":\"\"},\"FISB2C\":\"false\",\"FIsWriteOff\":\"false\",\"FMatchMethodID\":\"0\",\"FKDPAYNO\":\"\",\"FREMARK\":\"\",\"F_PAEZ_Assistant\":{\"FNumber\":\"\"},\"FTHIRDBILLNO\":\"\",\"F_PAEZ_Date\":\"1900-01-01\",\"FRECEIVEBILLENTRY\":[{\"FEntryID\":\"0\",\"FSETTLETYPEID\":{\"FNumber\":\"\"},\"F_PAEZ_Base\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base1\":{\"FNUMBER\":\"\"},\"FPURPOSEID\":{\"FNumber\":\"\"},\"FRECEIVEITEMTYPE\":\"\",\"FRECEIVEITEM\":\"\",\"FSaleOrderID\":\"0\",\"FRECTOTALAMOUNTFOR\":\"0\",\"FRECAMOUNTFOR_E\":\"0\",\"FSETTLEDISTAMOUNTFOR\":\"0\",\"FHANDLINGCHARGEFOR\":\"0\",\"FOVERUNDERAMOUNTFOR\":\"0\",\"F_PMZC_Text\":\"\",\"FACCOUNTID\":{\"FNumber\":\"\"},\"FOPPOSITEBANKACCOUNT\":\"\",\"FOPPOSITECCOUNTNAME\":\"\",\"FINNERACCOUNTID\":{\"FNUMBER\":\"\"},\"FCashAccount\":{\"FNUMBER\":\"\"},\"FSETTLENO\":\"\",\"FOPPOSITEBANKNAME\":\"\",\"F_PMZC_Assistant\":{\"FNumber\":\"\"},\"F_PMZC_Base\":{\"FNUMBER\":\"\"},\"F_PMZC_Assistant1\":{\"FNumber\":\"\"},\"FCOMMENT\":\"\",\"FRECAMOUNT_E\":\"0\",\"FPOSTDATE\":\"1900-01-01\",\"FMATERIALID\":{\"FNUMBER\":\"\"},\"FSALEORDERNO\":\"\",\"FMATERIALSEQ\":\"0\",\"FORDERENTRYID\":\"0\",\"FASSSALESORDER\":[{\"FDetailID\":\"0\"}]}],\"FRECEIVEBILLSRCENTRY\":[{\"FEntryID\":\"0\",\"FORDERBILLNO\":\"\",\"FSRCMATERIALID\":{\"FNumber\":\"\"},\"FSRCMATERIALSEQ\":\"0\",\"FSRCORDERENTRYID\":\"0\"}],\"FBILLRECEIVABLEENTRY\":[{\"FEntryID\":\"0\",\"FInnerAccountID_B\":{\"FNUMBER\":\"\"},\"FBILLID\":{\"FNumber\":\"\"},\"FUSEDAMOUNTFOR\":\"0\",\"FBILLPARAMOUNT\":\"0\",\"FPARLEFTAMOUNTSTD\":\"0\",\"FUSEDAMOUNTSTD\":\"0\",\"FTempOrgId\":{\"FNumber\":\"\"}}],\"FBILLSKDRECENTRY\":[{\"FEntryID\":\"0\",\"FInnerActId\":{\"FNUMBER\":\"\"},\"FReceivebleBillId\":{\"FNUMBER\":\"\"},\"FPayPurse\":{\"FNUMBER\":\"\"},\"FReturnAmount\":\"0\",\"FReturnAmountStd\":\"0\",\"FKDBPARBILLNO\":\"\",\"FParAmount\":\"0\",\"FPARAMOUNTSTD\":\"0\",\"FBCONTACTUNITTYPE\":\"\",\"FBCONTACTUNIT\":{\"FNumber\":\"\"}}]}} + +三、返回参数: +{\"Result\":{\"ResponseStatus\":{\"ErrorCode\":\"\",\"IsSuccess\":\"false\",\"Errors\":[{\"FieldName\":\"\",\"Message\":\"\",\"DIndex\":0}],\"SuccessEntitys\":[{\"Id\":\"\",\"Number\":\"\",\"DIndex\":0}],\"SuccessMessages\":[{\"FieldName\":\"\",\"Message\":\"\",\"DIndex\":0}]},\"Id\":\"\",\"NeedReturnData\":[{}]}} + +四、代码示例: +// 使用webapi引用组件Kingdee.BOS.WebApi.Client.dll +K3CloudApiClient client = new K3CloudApiClient("http://121.36.43.55/k3cloud/"); +var ret = client.ValidateLogin("61dce6601125a0","Administrator","888888",2052); +var result = JObject.Parse(ret)["LoginResultType"].Value(); +// 登陆成功 +if (result == 1) +{ + client.Draft("AR_RECEIVEBILL","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":\"0\",\"FBillTypeID\":{\"FNUMBER\":\"\"},\"FBillNo\":\"\",\"FDATE\":\"1900-01-01\",\"FCONTACTUNITTYPE\":\"\",\"FCONTACTUNIT\":{\"FNumber\":\"\"},\"FPAYUNITTYPE\":\"\",\"FPAYUNIT\":{\"FNumber\":\"\"},\"FCURRENCYID\":{\"FNumber\":\"\"},\"FPAYORGID\":{\"FNumber\":\"\"},\"FSETTLERATE\":\"0\",\"FSETTLEORGID\":{\"FNumber\":\"\"},\"FSALEORGID\":{\"FNumber\":\"\"},\"FSALEDEPTID\":{\"FNumber\":\"\"},\"FSALEGROUPID\":{\"FNumber\":\"\"},\"FSALEERID\":{\"FNumber\":\"\"},\"FDOCUMENTSTATUS\":\"\",\"FDepartment\":{\"FNumber\":\"\"},\"FBUSINESSTYPE\":\"\",\"FISINIT\":\"false\",\"FEXCHANGERATE\":\"0\",\"FCancelStatus\":\"\",\"FScanPoint\":{\"FNUMBER\":\"\"},\"FSETTLECUR\":{\"FNUMBER\":\"\"},\"FISB2C\":\"false\",\"FIsWriteOff\":\"false\",\"FMatchMethodID\":\"0\",\"FKDPAYNO\":\"\",\"FREMARK\":\"\",\"F_PAEZ_Assistant\":{\"FNumber\":\"\"},\"FTHIRDBILLNO\":\"\",\"F_PAEZ_Date\":\"1900-01-01\",\"FRECEIVEBILLENTRY\":[{\"FEntryID\":\"0\",\"FSETTLETYPEID\":{\"FNumber\":\"\"},\"F_PAEZ_Base\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base1\":{\"FNUMBER\":\"\"},\"FPURPOSEID\":{\"FNumber\":\"\"},\"FRECEIVEITEMTYPE\":\"\",\"FRECEIVEITEM\":\"\",\"FSaleOrderID\":\"0\",\"FRECTOTALAMOUNTFOR\":\"0\",\"FRECAMOUNTFOR_E\":\"0\",\"FSETTLEDISTAMOUNTFOR\":\"0\",\"FHANDLINGCHARGEFOR\":\"0\",\"FOVERUNDERAMOUNTFOR\":\"0\",\"F_PMZC_Text\":\"\",\"FACCOUNTID\":{\"FNumber\":\"\"},\"FOPPOSITEBANKACCOUNT\":\"\",\"FOPPOSITECCOUNTNAME\":\"\",\"FINNERACCOUNTID\":{\"FNUMBER\":\"\"},\"FCashAccount\":{\"FNUMBER\":\"\"},\"FSETTLENO\":\"\",\"FOPPOSITEBANKNAME\":\"\",\"F_PMZC_Assistant\":{\"FNumber\":\"\"},\"F_PMZC_Base\":{\"FNUMBER\":\"\"},\"F_PMZC_Assistant1\":{\"FNumber\":\"\"},\"FCOMMENT\":\"\",\"FRECAMOUNT_E\":\"0\",\"FPOSTDATE\":\"1900-01-01\",\"FMATERIALID\":{\"FNUMBER\":\"\"},\"FSALEORDERNO\":\"\",\"FMATERIALSEQ\":\"0\",\"FORDERENTRYID\":\"0\",\"FASSSALESORDER\":[{\"FDetailID\":\"0\"}]}],\"FRECEIVEBILLSRCENTRY\":[{\"FEntryID\":\"0\",\"FORDERBILLNO\":\"\",\"FSRCMATERIALID\":{\"FNumber\":\"\"},\"FSRCMATERIALSEQ\":\"0\",\"FSRCORDERENTRYID\":\"0\"}],\"FBILLRECEIVABLEENTRY\":[{\"FEntryID\":\"0\",\"FInnerAccountID_B\":{\"FNUMBER\":\"\"},\"FBILLID\":{\"FNumber\":\"\"},\"FUSEDAMOUNTFOR\":\"0\",\"FBILLPARAMOUNT\":\"0\",\"FPARLEFTAMOUNTSTD\":\"0\",\"FUSEDAMOUNTSTD\":\"0\",\"FTempOrgId\":{\"FNumber\":\"\"}}],\"FBILLSKDRECENTRY\":[{\"FEntryID\":\"0\",\"FInnerActId\":{\"FNUMBER\":\"\"},\"FReceivebleBillId\":{\"FNUMBER\":\"\"},\"FPayPurse\":{\"FNUMBER\":\"\"},\"FReturnAmount\":\"0\",\"FReturnAmountStd\":\"0\",\"FKDBPARBILLNO\":\"\",\"FParAmount\":\"0\",\"FPARAMOUNTSTD\":\"0\",\"FBCONTACTUNITTYPE\":\"\",\"FBCONTACTUNIT\":{\"FNumber\":\"\"}}]}}"); +} + +五、字段说明: +物料编码:FMATERIALID +是否登账:FISPOST +物料名称:FMATERIALNAME +订单行号:FMATERIALSEQ +销售订单号:FSALEORDERNO +登账日期:FPOSTDATE (必填项) +退款关联金额:FReFundAmount +内部账户名称:FINNERACCOUNTNAME +现金账号:FCashAccount +收款金额本位币:FRECAMOUNT_E +收款金额:FRECAMOUNTFOR_E +物流车辆:F_PMZC_Base +运输编号:F_PMZC_Assistant +油卡号码:F_PMZC_Assistant1 +应收金额:FAFTTAXTOTALAMOUNT +源单内码:FSRCBILLID +合同款:F_PMZC_Text +保证金转货款金额:FTOPAYMENTAMOUNTFOR +销售订单明细内码:FORDERENTRYID +已核销金额本位币:FWRITTENOFFAMOUNT +车架号:F_PAEZ_Base1 +收款科目:F_PAEZ_Base +表体-实收金额:FREALRECAMOUNTFOR_D +手续费本位币:FHANDLINGCHARGE +表体-实收金额本位币:FREALRECAMOUNT_D +预收项目类型:FRECEIVEITEMTYPE +关联总金额:FASSTOTALAMOUNTFOR +手续费:FHANDLINGCHARGEFOR +备注:FCOMMENT +表体明细-已核销金额:FWRITTENOFFAMOUNTFOR_D +对方银行账号:FOPPOSITEBANKACCOUNT +销售订单:FRECEIVEITEM +对方账户名称:FOPPOSITECCOUNTNAME +勾对:FBLEND +结算号:FSETTLENO +收款用途:FPURPOSEID (必填项) +内部账号:FINNERACCOUNTID +长短款本位币:FOVERUNDERAMOUNT +对方开户行:FOPPOSITEBANKNAME +我方银行账号:FACCOUNTID +销售订单号:FSaleOrderID +我方账户名称:FRECACCOUNTNAME +长短款:FOVERUNDERAMOUNTFOR +我方开户行:FRECBANKID +结算方式:FSRCSETTLETYPEID +当前占用金额本位币:FUSEDAMOUNTSTD +可用余额本位币:FPARLEFTAMOUNTSTD +票面金额:FBPBILLPARAMOUNT +内部账户:FInnerActId +是否托管:FISTRUST +票面金额本位币:FBILLPARAMOUNT +当前占用金额:FUSEDAMOUNTFOR +可用余额:FPARLEFTAMOUNTFOR +内部账号:FInnerAccountID_B +票据号:FBPBILLNUMBER +票据组织:FTempOrgId +往来单位:FBCONTACTUNIT +往来单位类型:FBCONTACTUNITTYPE +票据号:FKDBPARBILLNO +背书退回金额本位币:FReturnAmountStd +票面金额本位币:FPARAMOUNTSTD +票面金额:FParAmount +付款用途:FPayPurse +票据流水号:FReceivebleBillId +背书退回金额:FReturnAmount +客户:FKDBPCUSTOMER +票据类型:FKDBPARBILLTYPE +源单行内码:FSRCROWID +源单行号:FSRCSEQ +销售订单号:FORDERBILLNO +物料名称:FSRCMATERIALNAME +物料编码:FSRCMATERIALID +源单编号:FSRCBILLNO +到期日:FEXPIRY +源单币别:FSRCCURRENCYID +计划收款金额:FPLANRECAMOUNT +源单类型:FSRCBILLTYPEID +本次收款金额:FREALRECAMOUNT +票据流水号:FBILLID +预付预收已核销金额:FPREMATCHAMOUNTFOR +票据类型:FBPBILLTYPE +结算状态:FBPSETTLESTATUS +到期日:FBPBILLDUEDATE +关联金额:FASSAMOUNTFOR +销售订单明细内码:FSRCORDERENTRYID +订单行号:FSRCMATERIALSEQ +结算金额:FSETTLEAMOUNT +关联单据ID:FASSBILLID +关联单据编号:FASSBILLNO +核销状态:FWRITTENOFFSTATUS +汇率:FEXCHANGERATE +销售员:FSALEERID +销售部门:FSALEDEPTID (必填项) +销售组:FSALEGROUPID +修改日期:FModifyDate +业务日期:FDATE (必填项) +修改人:FModifierId +会计核算体系:FACCOUNTSYSTEM +表头-实收金额本位币:FREALRECAMOUNT_H +单据类型:FBillTypeID (必填项) +表头-实收金额:FREALRECAMOUNTFOR +单据状态:FDOCUMENTSTATUS (必填项) +单据编号:FBillNo +表头-应收金额:FRECEIVEAMOUNTFOR_H +汇率类型:FEXCHANGETYPE +本位币:FMAINBOOKCURID +币别:FCURRENCYID (必填项) +表头-应收金额本位币:FRECEIVEAMOUNT_H +销售组织:FSALEORGID +审核人:FAPPROVERID +创建人:FCreatorId +创建日期:FCreateDate +审核日期:FApproveDate +结算组织:FSETTLEORGID +作废日期:FCancelDate +金蝶支付流水号:FKDPAYNO +扫描点:FScanPoint +备注:FREMARK +转出往来单位:FOUTCONTACTID +第三方单据编号:FTHIRDBILLNO +核销方式:FMatchMethodID +B2C业务:FISB2C +是否转销:FIsWriteOff +流水号/对账码:FWBSETTLENO +折后金额本位币:FSETTLERECAMOUNT +表体-应收金额:FRECTOTALAMOUNTFOR +现金折扣本位币:FSETTLEDISTAMOUNT +表体明细-核销状态:FWRITTENOFFSTATUS_D +表体-应收金额本位币:FRECTOTALAMOUNT +现金折扣:FSETTLEDISTAMOUNTFOR +项目类别:F_PAEZ_Assistant (必填项) +转出往来单位类型:FOUTCONTACTTYPE +到款日期:F_PAEZ_Date +折后金额:FSETTLERECAMOUNTFOR +结算方式:FSETTLETYPEID (必填项) +信用检查结果:FCreditCheckResult +业务类型:FBUSINESSTYPE +是否期初单据:FISINIT +付款单位:FPAYUNIT (必填项) +作废人:FCancellerId +作废状态:FCancelStatus (必填项) +往来单位类型:FCONTACTUNITTYPE (必填项) +付款单位类型:FPAYUNITTYPE (必填项) +往来单位:FCONTACTUNIT (必填项) +结算币别:FSETTLECUR (必填项) +现销 :FCASHSALE +结算汇率:FSETTLERATE +表头-收款金额本位币:FRECAMOUNT +收款金额:FRECAMOUNTFOR +来源系统:FSOURCESYSTEM +收款组织:FPAYORGID (必填项) +部门:FDepartment +是否相同组织:FIsSameOrg \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/webapi测试的数据.txt b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/webapi测试的数据.txt new file mode 100644 index 0000000000..e3495a7638 --- /dev/null +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/webapi测试的数据.txt @@ -0,0 +1 @@ +{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"SKDLX01_SYS\"},\"FDATE\":\"2022-12-14 00:00:00\",\"FCONTACTUNITTYPE\":\"BD_Customer\",\"FCONTACTUNIT\":{\"FNumber\":\" JXYXB\"},\"FPAYUNITTYPE\":\"BD_Customer\",\"FPAYUNIT\":{\"FNumber\":\" JXYXB\"},\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FPAYORGID\":{\"FNumber\":\"101\"},\"FSETTLERATE\":1.0,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FSALEORGID\":{\"FNumber\":\"101\"},\"FSALEDEPTID\":{\"FNumber\":\"01\"},\"FDOCUMENTSTATUS\":\"Z\",\"FBUSINESSTYPE\":\"1\",\"FISINIT\":false,\"FEXCHANGERATE\":1.0,\"FCancelStatus\":\"A\",\"FSETTLECUR\":{\"FNUMBER\":\"PRE001\"},\"FISB2C\":false,\"FIsWriteOff\":false,\"F_PAEZ_Assistant\":{\"FNumber\":\"00\"},\"FRECEIVEBILLENTRY\":[{\"FSETTLETYPEID\":{\"FNumber\":\"02\"},\"F_PAEZ_Base\":{\"FNUMBER\":\"1001\"},\"F_PAEZ_Base1\":{\"FNUMBER\":\" JX091054\"},\"FPURPOSEID\":{\"FNumber\":\"SFKYT01_SYS\"},\"FRECTOTALAMOUNTFOR\":12000.0,\"FRECAMOUNTFOR_E\":12000.0,\"F_PMZC_Text\":\"12,000\",\"FACCOUNTID\":{\"FNumber\":\"0402021909300210280\"},\"FRECAMOUNT_E\":12000.0,\"FPOSTDATE\":\"2022-12-14 00:00:00\"}]}} \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/收款单的参数必填备注.xlsx b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/收款单的参数必填备注.xlsx new file mode 100644 index 0000000000..d4a0701a2e Binary files /dev/null and b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/arreceivebill/收款单的参数必填备注.xlsx differ