
34 changed files with 925 additions and 200 deletions
@ -0,0 +1,123 @@ |
|||
package com.yxt.anrui.fin.api.kingdee.appaybill; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
public class ApPayBill { |
|||
|
|||
@NotBlank |
|||
//登账日期:FPOSTDATE (必填项)
|
|||
private String FPOSTDATE; |
|||
@NotBlank |
|||
//业务日期:FDATE (必填项)
|
|||
private String FDATE; |
|||
@NotBlank |
|||
//往来单位类型:FCONTACTUNITTYPE (必填项)
|
|||
private String FCONTACTUNITTYPE="BD_Supplier"; |
|||
@NotBlank |
|||
//往来单位:FCONTACTUNIT (必填项)
|
|||
private String FCONTACTUNIT="010001"; |
|||
@NotBlank |
|||
//收款单位类型:FRECTUNITTYPE (必填项)
|
|||
private String FRECTUNITTYPE="BD_Supplier"; |
|||
@NotBlank |
|||
//收款单位:FRECTUNIT (必填项)
|
|||
private String FRECTUNIT="010001"; |
|||
@NotBlank |
|||
//结算组织:FSETTLEORGID (必填项)
|
|||
private String FSETTLEORGID="101"; |
|||
@NotBlank |
|||
//采购组织:FPURCHASEORGID
|
|||
private String FPURCHASEORGID="101"; |
|||
@NotBlank |
|||
//采购部门:FPURCHASEDEPTID(必填项)
|
|||
private String FPURCHASEDEPTID="05.04"; |
|||
@NotBlank |
|||
//付款组织:FPAYORGID (必填项)
|
|||
private String FPAYORGID="101"; |
|||
@NotBlank |
|||
private List<FPAYBILLENTRY> FPAYBILLENTRY=new ArrayList<>(); |
|||
@Data |
|||
public static class FPAYBILLENTRY{ |
|||
/** |
|||
* 结算方式:FSETTLETYPEID (必填项) |
|||
*/ |
|||
@NotBlank |
|||
private String FSETTLETYPEID="02"; |
|||
//付款用途:FPURPOSEID (必填项)
|
|||
@NotBlank |
|||
private String FPURPOSEID="SFKYT08_SYS"; |
|||
@NotBlank |
|||
//表体-应付金额:FPAYTOTALAMOUNTFOR
|
|||
private double FPAYTOTALAMOUNTFOR=1000.0; |
|||
@NotBlank |
|||
//付款金额:FPAYAMOUNTFOR_E
|
|||
private double FPAYAMOUNTFOR_E=1000.0; |
|||
@NotBlank |
|||
//折后金额:FSETTLEPAYAMOUNTFOR
|
|||
private double FSETTLEPAYAMOUNTFOR=1000.0; |
|||
@NotBlank |
|||
//表体-实付金额:FREALPAYAMOUNTFOR_D
|
|||
private double FREALPAYAMOUNTFOR_D=1000.0; |
|||
@NotBlank |
|||
//付款金额本位币:FPAYAMOUNT_E
|
|||
private double FPAYAMOUNT_E=1000.0; |
|||
@NotBlank |
|||
//我方银行账号:FACCOUNTID 第1行分录,银行业务的结算方式,我方银行相关信息必录
|
|||
private String FACCOUNTID; |
|||
@NotBlank |
|||
//登账日期:FPOSTDATE (必填项)
|
|||
private String FPOSTDATE; |
|||
@NotBlank |
|||
//入账类型:FRuZhangType (必填项)
|
|||
private String FRuZhangType="1"; |
|||
@NotBlank |
|||
//支付类型:FPayType (必填项)
|
|||
private String FPayType="A"; |
|||
} |
|||
|
|||
private final static ApPayBill apPayBill = new ApPayBill(); |
|||
|
|||
|
|||
static { |
|||
|
|||
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|||
Date date=new Date(); |
|||
apPayBill.setFPOSTDATE(sdf.format(date)); |
|||
apPayBill.setFDATE(sdf.format(date)); |
|||
apPayBill.setFCONTACTUNITTYPE("BD_Supplier"); |
|||
apPayBill.setFCONTACTUNIT("010001"); |
|||
apPayBill.setFRECTUNITTYPE("BD_Supplier"); |
|||
apPayBill.setFRECTUNIT("010001"); |
|||
apPayBill.setFSETTLEORGID("101"); |
|||
apPayBill.setFPURCHASEORGID("101"); |
|||
apPayBill.setFPURCHASEDEPTID("05.04"); |
|||
apPayBill.setFPAYORGID("101"); |
|||
List<FPAYBILLENTRY> FPAYBILLENTRYs=new ArrayList<>(); |
|||
FPAYBILLENTRY fpaybillentry=new FPAYBILLENTRY(); |
|||
|
|||
fpaybillentry.setFSETTLETYPEID("02"); |
|||
//付款用途:FPURPOSEID (必填项)
|
|||
fpaybillentry.setFPURPOSEID("SFKYT08_SYS"); |
|||
fpaybillentry.setFPAYTOTALAMOUNTFOR(1000.0); |
|||
fpaybillentry.setFPAYAMOUNTFOR_E(1000.0); |
|||
fpaybillentry.setFSETTLEPAYAMOUNTFOR(1000.0); |
|||
fpaybillentry.setFREALPAYAMOUNTFOR_D(1000.0); |
|||
fpaybillentry.setFPAYAMOUNT_E(1000.0); |
|||
fpaybillentry.setFPOSTDATE(sdf.format(date)); |
|||
fpaybillentry.setFRuZhangType("1"); |
|||
fpaybillentry.setFACCOUNTID("100473861600010002"); |
|||
fpaybillentry.setFPayType("A"); |
|||
FPAYBILLENTRYs.add(fpaybillentry); |
|||
apPayBill.setFPAYBILLENTRY(FPAYBILLENTRYs); |
|||
} |
|||
|
|||
public static ApPayBill createApPayBill() { |
|||
return apPayBill; |
|||
} |
|||
} |
@ -1,157 +0,0 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee; |
|||
|
|||
import cn.hutool.core.io.FileUtil; |
|||
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.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable; |
|||
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; |
|||
import com.yxt.anrui.fin.api.kingdee.kingdeedata.Data; |
|||
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields; |
|||
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillCastToKingDeeBillFields; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.io.*; |
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 转换业务数据到金蝶的接口上 |
|||
*/ |
|||
@Service |
|||
public class FinKingDeeFeignService { |
|||
private static final Logger log = LoggerFactory.getLogger(FinKingDeeFeignService.class); |
|||
/** |
|||
* 保存入账申请接口生成的应付单的数据,推送到金蝶的平台中 |
|||
* @param aPPayable |
|||
* @return |
|||
*/ |
|||
public ResultBean draftEntryBill(APPayable aPPayable) { |
|||
ResultBean rb=ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String,String> map_fEntityModel_=new HashMap<>(); |
|||
//物料的数组集合
|
|||
List<Map<String,String>> vehicleListMap=new ArrayList<>(); |
|||
if(aPPayable.getApplicationDate()==null){ |
|||
return rb.setMsg("业务日期 不能为空"); |
|||
} |
|||
//业务日期
|
|||
map_fEntityModel_.put("FDATE",aPPayable.getApplicationDate()); |
|||
//供应商:FSUPPLIERID (必填项)
|
|||
if(aPPayable.getApplicationDate()==null){ |
|||
return rb.setMsg("供应商 不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FSUPPLIERID","010001"); |
|||
List<APPayable.ScmApplyInboundVehicleDto> vehicleList = aPPayable.getVehicleList()==null?new ArrayList<>(): aPPayable.getVehicleList(); |
|||
|
|||
for(int i=0;i<vehicleList.size();i++){ |
|||
APPayable.ScmApplyInboundVehicleDto f=vehicleList.get(i); |
|||
Map<String,String> m=new HashMap<>(); |
|||
if(StringUtils.isBlank(f.getVinNo())){ |
|||
return rb.setMsg("物料编码 不能为空"); |
|||
} |
|||
if(StringUtils.isBlank(f.getRemarks())){ |
|||
return rb.setMsg("物料名称 不能为空"); |
|||
} |
|||
m.put("FMATERIALID",f.getVinNo()); |
|||
m.put("FMaterialDesc",f.getRemarks()); |
|||
vehicleListMap.add(m); |
|||
} |
|||
String kingDeeData = EntryBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap); |
|||
try { |
|||
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
/** |
|||
* 生成的应收单的数据,推送到金蝶的平台中 |
|||
* @param aRReceivable |
|||
* @return |
|||
*/ |
|||
public ResultBean draftReceivableBill(ARReceivable aRReceivable) { |
|||
ResultBean rb=ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String,String> map_fEntityModel_=new HashMap<>(); |
|||
//物料的数组集合
|
|||
List<Map<String,String>> vehicleListMap=new ArrayList<>(); |
|||
if(aRReceivable.getApplicationDate()==null){ |
|||
return rb.setMsg("业务日期 不能为空"); |
|||
} |
|||
//业务日期
|
|||
map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate()); |
|||
map_fEntityModel_.put("FCUSTOMERID",aRReceivable.getFcustomerid()==null?" JXYXB":aRReceivable.getFcustomerid()); |
|||
//供应商:FSUPPLIERID (必填项)
|
|||
if(aRReceivable.getApplicationDate()==null){ |
|||
return rb.setMsg("供应商 不能为空"); |
|||
} |
|||
// map_fEntityModel_.put("FSUPPLIERID","010001");
|
|||
List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList(); |
|||
|
|||
for(int i=0;i<vehicleList.size();i++){ |
|||
ARReceivable.ScmApplyInboundVehicleDto f=vehicleList.get(i); |
|||
Map<String,String> m=new HashMap<>(); |
|||
if(StringUtils.isBlank(f.getVinNo())){ |
|||
return rb.setMsg("物料编码 不能为空"); |
|||
} |
|||
if(StringUtils.isBlank(f.getRemarks())){ |
|||
return rb.setMsg("物料名称 不能为空"); |
|||
} |
|||
m.put("FMATERIALID",f.getVinNo()); |
|||
m.put("FMaterialDesc",f.getRemarks()); |
|||
m.put("FPRICEUNITID","liang"); |
|||
vehicleListMap.add(m); |
|||
} |
|||
String kingDeeData = ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap); |
|||
try { |
|||
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
/** |
|||
* 调用金蝶的接口 |
|||
* @param data |
|||
* @return |
|||
*/ |
|||
private ResultBean saveBill(String formId,String data) throws Exception { |
|||
KingDeeParams kdp=new KingDeeParams(); |
|||
kdp.setData(data); |
|||
kdp.setFormId(formId); |
|||
return KingDeeSaveSKD.SavePurRKD(kdp); |
|||
} |
|||
|
|||
/** |
|||
* 调用金蝶接口的数据格式 |
|||
*/ |
|||
class KingDeeParams{ |
|||
private String formId; |
|||
private String data; |
|||
|
|||
public void setFormId(String formId) { |
|||
this.formId = formId; |
|||
} |
|||
|
|||
public void setData(String data) { |
|||
this.data = data; |
|||
} |
|||
|
|||
public String getFormId() { |
|||
return formId; |
|||
} |
|||
|
|||
public String getData() { |
|||
return data; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,62 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee; |
|||
|
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeResult; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 转换业务数据到金蝶的接口上 |
|||
*/ |
|||
@Service |
|||
public class FinKingDeeService { |
|||
public static final Logger log = LoggerFactory.getLogger(FinKingDeeService.class); |
|||
/** |
|||
* 调用金蝶的接口 |
|||
* @param data |
|||
* @return |
|||
*/ |
|||
public ResultBean saveBill(String formId,String data) throws Exception { |
|||
KingDeeParams kdp=new KingDeeParams(); |
|||
kdp.setData(data); |
|||
kdp.setFormId(formId); |
|||
log.info("kdp:{}",JSONObject.toJSONString(kdp)); |
|||
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.SavePurRKD(kdp); |
|||
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); |
|||
return listResultBean; |
|||
} |
|||
|
|||
/** |
|||
* 调用金蝶接口的数据格式 |
|||
*/ |
|||
class KingDeeParams{ |
|||
/** |
|||
* 表单名称 |
|||
*/ |
|||
private String formId; |
|||
/** |
|||
* 接口的主要业务参数 |
|||
*/ |
|||
private String data; |
|||
|
|||
public void setFormId(String formId) { |
|||
this.formId = formId; |
|||
} |
|||
|
|||
public void setData(String data) { |
|||
this.data = data; |
|||
} |
|||
|
|||
public String getFormId() { |
|||
return formId; |
|||
} |
|||
|
|||
public String getData() { |
|||
return data; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.appaybill; |
|||
|
|||
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 ApPayBillCastToKingDeeBillFields { |
|||
/** |
|||
* 构造金蝶需要的数据结构 并对字段赋值 |
|||
* |
|||
* @param map_fEntityModel_ |
|||
* @param vehicleList |
|||
* @return |
|||
*/ |
|||
public static String getKingDeeData(Map<String,String> map_fEntityModel_,List<Map<String,String>> vehicleList){ |
|||
/** |
|||
* 取模板 |
|||
*/ |
|||
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data.json"); |
|||
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_data.json"); |
|||
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_model.json"); |
|||
String fPAYBILLENTRY_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_FPAYBILLENTRY.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<JSONObject> list_fEntityDetail_=new ArrayList<>(); |
|||
|
|||
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
|
|||
for(int i=0;i<vehicleList.size();i++){ |
|||
Map<String,String> params=vehicleList.get(i); |
|||
Map<String,String> map_fEntityDetail_=new HashMap<>(); |
|||
for (Map.Entry<String, String> 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("FPAYBILLENTRY", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_))); |
|||
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField)); |
|||
jsonObj.put("data",jsonFEntityData_.toJSONString()); |
|||
|
|||
return jsonObj.toJSONString(); |
|||
} |
|||
} |
@ -0,0 +1,80 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.appaybill; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill; |
|||
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; |
|||
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class ApPayBillService extends FinKingDeeService { |
|||
|
|||
/** |
|||
* 保存收款单 |
|||
* @param apPayBill |
|||
* @return |
|||
*/ |
|||
public ResultBean draftApPayBill(ApPayBill apPayBill) { |
|||
apPayBill=ApPayBill.createApPayBill(); |
|||
ResultBean rb=ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String,String> map_fEntityModel_=new HashMap<>(); |
|||
//业务日期
|
|||
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(apPayBill); |
|||
List<ApPayBill.FPAYBILLENTRY> fpaybillentrYs = apPayBill.getFPAYBILLENTRY(); |
|||
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) { |
|||
if (entry.getValue() instanceof String) { |
|||
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue()); |
|||
}else if(entry.getValue() instanceof Double){ |
|||
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString()); |
|||
} |
|||
|
|||
} |
|||
//准备 物料列表的数据 ForEntryBill
|
|||
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForApPayBill(fpaybillentrYs); |
|||
if(!vehicleListMap.getSuccess()){ |
|||
return rb.setMsg(vehicleListMap.getMsg()); |
|||
} |
|||
String kingDeeData = ApPayBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData()); |
|||
try { |
|||
return saveBill(KingDeeBillId.AP_PAYBILL.getID(),kingDeeData); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
/** |
|||
* 准备 物料列表的数据 ApPayBill |
|||
*/ |
|||
private ResultBean<List<Map<String, String>>> |
|||
createVehicleListsForApPayBill(List<ApPayBill.FPAYBILLENTRY> vehicleList) { |
|||
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail(); |
|||
//物料的数组集合
|
|||
List<Map<String,String>> vehicleListMap=new ArrayList<>(); |
|||
for(int i = 0; i< vehicleList.size(); i++){ |
|||
ApPayBill.FPAYBILLENTRY f= vehicleList.get(i); |
|||
Map<String,String> m=new HashMap<>(); |
|||
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f); |
|||
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) { |
|||
if (entry.getValue() instanceof String) { |
|||
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue()); |
|||
m.put(entry.getKey(), (String) entry.getValue()); |
|||
}else if(entry.getValue() instanceof Double){ |
|||
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue()); |
|||
m.put(entry.getKey(), entry.getValue().toString()); |
|||
} |
|||
} |
|||
vehicleListMap.add(m); |
|||
} |
|||
return rb.success().setData(vehicleListMap); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,4 @@ |
|||
{ |
|||
"formId": "AP_PAYBILL", |
|||
"data": "@KD_data" |
|||
} |
@ -0,0 +1,17 @@ |
|||
{ |
|||
"FSETTLETYPEID": { |
|||
"FNumber": "@KD_FSETTLETYPEID" |
|||
}, |
|||
"FPURPOSEID": { |
|||
"FNumber": "@KD_FPURPOSEID" |
|||
}, |
|||
"FPAYTOTALAMOUNTFOR": @KD_FPAYTOTALAMOUNTFOR, |
|||
"FPAYAMOUNTFOR_E": @KD_FPAYAMOUNTFOR_E, |
|||
"FSETTLEPAYAMOUNTFOR": @KD_FSETTLEPAYAMOUNTFOR, |
|||
"FREALPAYAMOUNTFOR_D": @KD_FREALPAYAMOUNTFOR_D, |
|||
"FPAYAMOUNT_E": @KD_FPAYAMOUNT_E, |
|||
"FACCOUNTID": {"FNumber":"@KD_FACCOUNTID"}, |
|||
"FPOSTDATE": "@KD_FPOSTDATE", |
|||
"FRuZhangType": "@KD_FRuZhangType", |
|||
"FPayType": "@KD_FPayType" |
|||
} |
@ -0,0 +1,13 @@ |
|||
{ |
|||
"Creator": "", |
|||
"NeedUpDateFields": [], |
|||
"NeedReturnFields": [], |
|||
"IsDeleteEntry": "True", |
|||
"SubSystemId": "", |
|||
"IsVerifyBaseDataField": "false", |
|||
"IsEntryBatchFill": "True", |
|||
"ValidateFlag": "True", |
|||
"NumberSearch": "True", |
|||
"InterationFlags": "", |
|||
"Model": {} |
|||
} |
@ -0,0 +1,46 @@ |
|||
{ |
|||
"FID": 0, |
|||
"FBillTypeID": { |
|||
"FNUMBER": "FKDLX01_SYS" |
|||
}, |
|||
"FDATE": "@KD_FDATE", |
|||
"FCONTACTUNITTYPE": "@KD_FCONTACTUNITTYPE", |
|||
"FCONTACTUNIT": { |
|||
"FNumber": "@KD_FCONTACTUNIT" |
|||
}, |
|||
"FRECTUNITTYPE": "@KD_FRECTUNITTYPE", |
|||
"FRECTUNIT": { |
|||
"FNumber": "@KD_FRECTUNIT" |
|||
}, |
|||
"FISINIT": false, |
|||
"FCURRENCYID": { |
|||
"FNumber": "PRE001" |
|||
}, |
|||
"FEXCHANGERATE": 1.0, |
|||
"FSETTLERATE": 1.0, |
|||
"FSETTLEORGID": { |
|||
"FNumber": "@KD_FSETTLEORGID" |
|||
}, |
|||
"FPURCHASEORGID": { |
|||
"FNumber": "@KD_FPURCHASEORGID" |
|||
}, |
|||
"FPURCHASEDEPTID": { |
|||
"FNumber": "@KD_FPURCHASEDEPTID" |
|||
}, |
|||
"FDOCUMENTSTATUS": "Z", |
|||
"FCancelStatus": "A", |
|||
"FPAYORGID": { |
|||
"FNumber": "@KD_FPAYORGID" |
|||
}, |
|||
"FISSAMEORG": true, |
|||
"FIsCredit": false, |
|||
"FSETTLECUR": { |
|||
"FNUMBER": "PRE001" |
|||
}, |
|||
"FIsWriteOff": false, |
|||
"FREALPAY": false, |
|||
"F_PAEZ_Assistant": { |
|||
"FNumber": "001" |
|||
}, |
|||
"FPAYBILLENTRY": [] |
|||
} |
@ -0,0 +1,204 @@ |
|||
一、请求参数说明: |
|||
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类型(必录) |
|||
|
|||
五、字段说明: |
|||
长短款本位币:FOVERSHORTAGE |
|||
长短款:FOVERSHORTAGEFOR |
|||
银企处理详细信息:FEBMSG |
|||
费用承担部门:FEXPENSEDEPTID_E |
|||
含税单价:FPRICE |
|||
计价单位:FPRICEUNITID |
|||
支付类型:FPayType (必填项) |
|||
物料名称:FMATERIALNAME |
|||
物料编码:FMATERIALID |
|||
登账日期:FPOSTDATE (必填项) |
|||
采购订单号:FPURCHASEORDERNO |
|||
入账类型:FRuZhangType (必填项) |
|||
采购订单明细内码:FORDERENTRYID |
|||
采购订单行号:FMATERIALSEQ |
|||
油卡号码:F_PMZC_Assistant1 |
|||
物流项目:F_PMZC_Base1 |
|||
物流车辆:F_PMZC_Base |
|||
应付金额:FAFTTAXTOTALAMOUNT |
|||
结算方式:FSRCSETTLETYPEID |
|||
本次付款金额:FREALPAYAMOUNT_S |
|||
立账日期:FOPENACCOUNTDATE |
|||
SwiftCode:FSwiftCode |
|||
退款关联数量:FREFUNDQTY |
|||
数量:FQTY |
|||
已核销金额本位币:FWRITTENOFFAMOUNT |
|||
运输编号:F_PMZC_Assistant |
|||
银行:F_PAEZ_Base |
|||
应付类别(表体):F_PAEZ_Assistant1 |
|||
联行号:FCNAPS |
|||
收款类型:FRecType (必填项) |
|||
开户行地址:FOpenAddressRec |
|||
收款银行:FBankTypeRec |
|||
地区:FDistrict |
|||
城市:FCity |
|||
省:FProvince |
|||
我方开户行:FPAYBANKID |
|||
我方账户名称:FPAYACCOUNTNAME |
|||
我方银行账号:FACCOUNTID |
|||
对方开户行:FOPPOSITEBANKNAME |
|||
付款用途:FPURPOSEID (必填项) |
|||
勾对:FBLEND |
|||
结算号:FSETTLENO |
|||
退款关联金额:FRefundAmount |
|||
费用项目:FCOSTID |
|||
内部账户名称:FINNERACCOUNTNAME |
|||
现金账号:FCashAccount |
|||
是否登账:FISPOST |
|||
付款金额本位币:FPAYAMOUNT_E |
|||
付款金额:FPAYAMOUNTFOR_E |
|||
提交/撤销银行人:FSubmitUser |
|||
提交银行状态:FSubmitStatus |
|||
加急:FUrgent |
|||
提交/撤销银行时间:FSubmitBankTime |
|||
内部账号:FINNERACCOUNTID |
|||
银行状态码:FBankCode |
|||
银行处理状态:FBankStatus |
|||
源单内码:FSRCBILLID |
|||
内部账户:FINNERACCOUNTID_B |
|||
当前占用金额:FUSEDAMOUNTFOR |
|||
可用余额:FPARLEFTAMOUNTFOR |
|||
票据组织(临时用的):FTempOrgId |
|||
票面金额本位币:FBPPARAMOUNT |
|||
票面金额:FKDBPPARAMOUNT |
|||
票据号:FKDBPBILLNO |
|||
预付预收已核销金额:FPREMATCHAMOUNTFOR |
|||
关联金额:FASSAMOUNTFOR |
|||
关联单据编号:FASSBILLNO |
|||
票据流水号:FBILLID |
|||
结算状态:FKDBPSETTLESTATUS |
|||
到期日:FKDBPDUEDATE |
|||
票据类型:FKDBPBILLTYPE |
|||
往来单位类型:FBCONTACTUNITTYPE |
|||
票面金额:FParAmount |
|||
客户:FKDBPCUSTOMER |
|||
往来单位:FBCONTACTUNIT |
|||
票据号:FKDBPARBILLNO |
|||
背书金额本位币:FReturnAmountStd |
|||
票面金额本位币:FPARAMOUNTSTD |
|||
内部账户:FInnerActId |
|||
当前占用金额本位币:FUSEDAMOUNT |
|||
可用余额本位币:FPARLEFTAMOUNT |
|||
票据流水号:FReceivebleBillId |
|||
票据类型:FKDBPARBILLTYPE |
|||
背书金额:FReturnAmount |
|||
付款用途:FPayPurse |
|||
本次还本金额:FRealPclAmount |
|||
计划付利息金额:FPlanInstAmount |
|||
付款用途:FPAYPURPOSEID |
|||
本次付利息金额:FRealInstAmount |
|||
物料编码:FSRCMATERIALID |
|||
采购订单编号:FPURORDERNO |
|||
费用项目:FSRCCOSTID |
|||
到期日:FEXPIRY |
|||
源单行号:FSRCSEQ |
|||
源单行内码:FSRCROWID |
|||
计划付款金额:FPLANPAYAMOUNT |
|||
源单编号:FSRCBILLNO |
|||
源单类型:FSOURCETYPE |
|||
源单币别:FSRCCURRENCYID |
|||
备注:FSRCREMARK |
|||
预付采购订单号:FPREPAYORDERNO |
|||
本次付款金额本位币:FREALPAYAMOUNTLOC |
|||
计价单位:FSRCPRICEUNITID |
|||
关联单据ID:FASSBILLID |
|||
数量:FSRCQTY |
|||
含税单价:FSRCPRICE |
|||
采购订单明细内码:FSRCORDERENTRYID |
|||
采购订单行号:FSRCMATERIALSEQ |
|||
物料名称:FSRCMATERIALNAME |
|||
税额:FTAXAMOUNT |
|||
应付款金额本位币:FPLANPAYAMOUNTLOC |
|||
费用承担部门:FEXPENSEDEPTID |
|||
税额本位币:FTAXAMOUNTLOC |
|||
采购订单ID:FPURCHASEORDERID |
|||
作废状态:FCancelStatus (必填项) |
|||
作废人:FCancellerId |
|||
会计核算体系:FACCOUNTSYSTEM |
|||
作废日期:FCancelDate |
|||
收款单位类型:FRECTUNITTYPE (必填项) |
|||
往来单位:FCONTACTUNIT (必填项) |
|||
往来单位类型:FCONTACTUNITTYPE (必填项) |
|||
表头-实付金额:FREALPAYAMOUNTFOR_H |
|||
采购部门:FPURCHASEDEPTID |
|||
采购组:FPURCHASERGROUPID |
|||
是否期初单据:FISINIT |
|||
部门:FDepartment |
|||
业务类型:FBUSINESSTYPE |
|||
来源系统:FSOURCESYSTEM |
|||
收款单位:FRECTUNIT (必填项) |
|||
创建日期:FCreateDate |
|||
审核人:FAPPROVERID |
|||
创建人:FCreatorId |
|||
单据状态:FDOCUMENTSTATUS (必填项) |
|||
单据编号:FBillNo |
|||
修改人:FModifierId |
|||
采购员:FPURCHASERID |
|||
单据类型:FBillTypeID (必填项) |
|||
核销状态:FWRITTENOFFSTATUS |
|||
采购组织:FPURCHASEORGID |
|||
审核日期:FApproveDate |
|||
结算组织:FSETTLEORGID |
|||
表头-应付金额:FPAYTOTALAMOUNTFOR_H |
|||
修改日期:FModifyDate |
|||
业务日期:FDATE (必填项) |
|||
币别:FCURRENCYID (必填项) |
|||
结算方式:FSETTLETYPEID (必填项) |
|||
应付类别:F_PAEZ_Assistant (必填项) |
|||
转出往来单位类型:FOUTCONTACTTYPE |
|||
折后金额:FSETTLEPAYAMOUNTFOR |
|||
折后金额本位币:FSETTLEPAYAMOUNT |
|||
表体-应付金额:FPAYTOTALAMOUNTFOR |
|||
现金折扣:FSETTLEDISTAMOUNTFOR |
|||
期望付款日期:FBookingDate |
|||
备注:FREMARK |
|||
第三方单据编号:FTHIRDBILLNO |
|||
转出往来单位:FOUTCONTACTID |
|||
现购:FISCASHPURCHASE |
|||
流水号:FWBSETTLENO |
|||
手续费本位币:FHANDLINGCHARGE |
|||
手续费:FHANDLINGCHARGEFOR |
|||
采购订单:FPAYITEM |
|||
表体-实付金额:FREALPAYAMOUNTFOR_D |
|||
预付项目类型:FPAYITEMTYPE |
|||
关联金额:FASSTOTALAMOUNTFOR |
|||
表体-实付金额本位币:FREALPAYAMOUNT_D |
|||
表体明细-核销状态:FWRITTENOFFSTATUS_D |
|||
表体-应付金额本位币:FPAYTOTALAMOUNT |
|||
现金折扣本位币:FSETTLEDISTAMOUNT |
|||
表体明细-已核销金额:FWRITTENOFFAMOUNTFOR_D |
|||
对方账户名称:FOPPOSITECCOUNTNAME |
|||
备注:FCOMMENT |
|||
对方银行账号:FOPPOSITEBANKACCOUNT |
|||
结算汇率:FSETTLERATE |
|||
是否信贷业务:FIsCredit |
|||
付款金额:FPAYAMOUNTFOR |
|||
结算币别:FSETTLECUR (必填项) |
|||
本位币:FMAINBOOKID |
|||
汇率类型:FEXCHANGETYPE |
|||
付款组织:FPAYORGID (必填项) |
|||
是否相同组织:FISSAMEORG |
|||
扫描点:FScanPoint |
|||
是否转销:FIsWriteOff |
|||
实报实付:FREALPAY |
|||
核销方式:FMatchMethodID |
|||
表头-付款金额本位币:FPAYAMOUNT |
|||
表头-应付金额本位币:FPAYTOTALAMOUNT_H |
|||
汇率:FEXCHANGERATE |
|||
表头-实付金额本位币:FREALPAYAMOUNT_H |
@ -0,0 +1,15 @@ |
|||
{ |
|||
"sid": "63", |
|||
"userSid": "73", |
|||
"applicationDate": "2022-08-01 06:22:08", |
|||
"applicationCode": "1659335563", |
|||
"vehicleList": [ |
|||
{ |
|||
"sid": "25", |
|||
"applySid": "11", |
|||
"modelSid": " JX091054", |
|||
"vinNo": " JX091054", |
|||
"remarks": "X牵引6*4-550超" |
|||
} |
|||
] |
|||
} |
@ -0,0 +1 @@ |
|||
{"formId":"AP_PAYBILL","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"FKDLX01_SYS\"},\"FDATE\":\"2022-08-10 00:00:00\",\"FCONTACTUNITTYPE\":\"BD_Supplier\",\"FCONTACTUNIT\":{\"FNumber\":\"010001\"},\"FRECTUNITTYPE\":\"BD_Supplier\",\"FRECTUNIT\":{\"FNumber\":\"010001\"},\"FISINIT\":false,\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGERATE\":1.0,\"FSETTLERATE\":1.0,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FPURCHASEORGID\":{\"FNumber\":\"101\"},\"FPURCHASEDEPTID\":{\"FNumber\":\"05.04\"},\"FDOCUMENTSTATUS\":\"Z\",\"FCancelStatus\":\"A\",\"FPAYORGID\":{\"FNumber\":\"101\"},\"FISSAMEORG\":true,\"FIsCredit\":false,\"FSETTLECUR\":{\"FNUMBER\":\"PRE001\"},\"FIsWriteOff\":false,\"FREALPAY\":false,\"F_PAEZ_Assistant\":{\"FNumber\":\"001\"},\"FPAYBILLENTRY\":[{\"FSETTLETYPEID\":{\"FNumber\":\"02\"},\"FPURPOSEID\":{\"FNumber\":\"SFKYT08_SYS\"},\"FPAYTOTALAMOUNTFOR\":1000.0,\"FPAYAMOUNTFOR_E\":1000.0,\"FSETTLEPAYAMOUNTFOR\":1000.0,\"FREALPAYAMOUNTFOR_D\":1000.0,\"FPAYAMOUNT_E\":1000.0,\"FACCOUNTID\":{\"FNumber\":\"100473861600010002\"},\"FPOSTDATE\":\"2022-08-10 00:00:00\",\"FRuZhangType\":\"1\",\"FPayType\":\"A\"}]}}"} |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,74 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.entrybill; |
|||
|
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable; |
|||
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class EntryBillService extends FinKingDeeService { |
|||
|
|||
/** |
|||
* 保存入账申请接口生成的应付单的数据,推送到金蝶的平台中 |
|||
* @param aPPayable |
|||
* @return |
|||
*/ |
|||
public ResultBean draftEntryBill(APPayable aPPayable) { |
|||
ResultBean rb=ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String,String> map_fEntityModel_=new HashMap<>(); |
|||
if(aPPayable.getApplicationDate()==null){ |
|||
return rb.setMsg("业务日期 不能为空"); |
|||
} |
|||
//业务日期
|
|||
map_fEntityModel_.put("FDATE",aPPayable.getApplicationDate()); |
|||
//供应商:FSUPPLIERID (必填项)
|
|||
if(aPPayable.getApplicationDate()==null){ |
|||
return rb.setMsg("供应商 不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FSUPPLIERID","010001"); |
|||
List<APPayable.ScmApplyInboundVehicleDto> vehicleList = aPPayable.getVehicleList()==null?new ArrayList<>(): aPPayable.getVehicleList(); |
|||
//准备 物料列表的数据 ForEntryBill
|
|||
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForEntryBill(vehicleList); |
|||
if(!vehicleListMap.getSuccess()){ |
|||
return rb.setMsg(vehicleListMap.getMsg()); |
|||
} |
|||
String kingDeeData = EntryBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData()); |
|||
try { |
|||
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
/** |
|||
* 准备 物料列表的数据 ForEntryBill |
|||
*/ |
|||
public ResultBean<List<Map<String, String>>> createVehicleListsForEntryBill(List<APPayable.ScmApplyInboundVehicleDto> vehicleList) { |
|||
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail(); |
|||
//物料的数组集合
|
|||
List<Map<String,String>> vehicleListMap=new ArrayList<>(); |
|||
for(int i = 0; i< vehicleList.size(); i++){ |
|||
APPayable.ScmApplyInboundVehicleDto f= vehicleList.get(i); |
|||
Map<String,String> m=new HashMap<>(); |
|||
if(StringUtils.isBlank(f.getVinNo())){ |
|||
return rb.setMsg("物料编码 不能为空"); |
|||
} |
|||
if(StringUtils.isBlank(f.getRemarks())){ |
|||
return rb.setMsg("物料名称 不能为空"); |
|||
} |
|||
m.put("FMATERIALID",f.getVinNo()); |
|||
m.put("FMaterialDesc",f.getRemarks()); |
|||
vehicleListMap.add(m); |
|||
} |
|||
return rb.success().setData(vehicleListMap); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,76 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.receivablebill; |
|||
|
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable; |
|||
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class ReceivableBillService extends FinKingDeeService { |
|||
|
|||
/** |
|||
* 生成的应收单的数据,推送到金蝶的平台中 |
|||
* @param aRReceivable |
|||
* @return |
|||
*/ |
|||
public ResultBean draftReceivableBill(ARReceivable aRReceivable) { |
|||
ResultBean rb=ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String,String> map_fEntityModel_=new HashMap<>(); |
|||
//物料的数组集合
|
|||
if(aRReceivable.getApplicationDate()==null){ |
|||
return rb.setMsg("业务日期 不能为空"); |
|||
} |
|||
//业务日期
|
|||
map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate()); |
|||
map_fEntityModel_.put("FCUSTOMERID",aRReceivable.getFcustomerid()==null?" JXYXB":aRReceivable.getFcustomerid()); |
|||
//供应商:FSUPPLIERID (必填项)
|
|||
if(aRReceivable.getApplicationDate()==null){ |
|||
return rb.setMsg("供应商 不能为空"); |
|||
} |
|||
// map_fEntityModel_.put("FSUPPLIERID","010001");
|
|||
List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList(); |
|||
//准备 物料列表的数据
|
|||
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(vehicleList); |
|||
if(!vehicleListMap.getSuccess()){ |
|||
return rb.setMsg(vehicleListMap.getMsg()); |
|||
} |
|||
String kingDeeData = ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData()); |
|||
try { |
|||
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
/** |
|||
* 准备 物料列表的数据 ForReceivableBill |
|||
*/ |
|||
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList) { |
|||
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail(); |
|||
List<Map<String,String>> vehicleListMap=new ArrayList<>(); |
|||
for(int i = 0; i< vehicleList.size(); i++){ |
|||
ARReceivable.ScmApplyInboundVehicleDto f= vehicleList.get(i); |
|||
Map<String,String> m=new HashMap<>(); |
|||
if(StringUtils.isBlank(f.getVinNo())){ |
|||
return rb.setMsg("物料编码 不能为空"); |
|||
} |
|||
if(StringUtils.isBlank(f.getRemarks())){ |
|||
return rb.setMsg("物料名称 不能为空"); |
|||
} |
|||
m.put("FMATERIALID",f.getVinNo()); |
|||
m.put("FMaterialDesc",f.getRemarks()); |
|||
m.put("FPRICEUNITID","liang"); |
|||
vehicleListMap.add(m); |
|||
} |
|||
return rb.success().setData(vehicleListMap); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue