
14 changed files with 485 additions and 172 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,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 @@ |
|||
{"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\"}]}}"} |
@ -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