|
|
|
|
@ -6,11 +6,18 @@ import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
|
|
import kd.bos.form.CloseCallBack;
|
|
|
|
|
import kd.bos.form.FormShowParameter;
|
|
|
|
|
import kd.bos.form.ShowType;
|
|
|
|
|
import kd.bos.form.control.EntryGrid;
|
|
|
|
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
|
|
|
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
|
|
|
|
import kd.bos.form.events.ClosedCallBackEvent;
|
|
|
|
|
import kd.bos.form.operate.AbstractOperate;
|
|
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
|
|
import kd.tmc.fbp.common.enums.ShareTypeEnum;
|
|
|
|
|
import kd.tmc.fbp.common.helper.CodeRuleHelper;
|
|
|
|
|
import kd.tmc.fbp.common.util.EmptyUtil;
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.math.RoundingMode;
|
|
|
|
|
@ -49,14 +56,31 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
ShowParameter.setCloseCallBack(new CloseCallBack(this, "jt"));
|
|
|
|
|
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
|
|
|
|
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_jtentry");
|
|
|
|
|
//获取最晚的日期
|
|
|
|
|
Date shkd_jtenddate = shkd_jtentry.stream()
|
|
|
|
|
// 提取每个条目的 shkd_jtenddate 字段并确保它不为 null
|
|
|
|
|
.map(entry -> (Date) entry.getDate("shkd_jtenddate"))
|
|
|
|
|
.filter(date -> date != null) // 过滤掉 null 日期
|
|
|
|
|
.max(Comparator.naturalOrder()) // 找到最大的日期
|
|
|
|
|
.orElse(null);// 如果没有有效日期,返回 null
|
|
|
|
|
ShowParameter.setCustomParam("end", shkd_jtenddate);
|
|
|
|
|
if (shkd_jtentry.size()>0){//返回上次填写的日期
|
|
|
|
|
DynamicObject dynamicObject = shkd_jtentry.get(shkd_jtentry.size() - 1);//最后一行的数据
|
|
|
|
|
Date shkd_jtenddate = dynamicObject.getDate("shkd_jtenddate");
|
|
|
|
|
BigDecimal shkd_jtfeerate = dynamicObject.getBigDecimal("shkd_jtfeerate");
|
|
|
|
|
DynamicObject shkd_jtfeetype = dynamicObject.getDynamicObject("shkd_jtfeetype");
|
|
|
|
|
String shkd_jtfeeoppunittype = dynamicObject.getString("shkd_jtfeeoppunittype");
|
|
|
|
|
DynamicObject shkd_jtfeeoppunit = dynamicObject.getDynamicObject("shkd_jtfeeoppunit");
|
|
|
|
|
DynamicObject shkd_jtfeeoppbebank = dynamicObject.getDynamicObject("shkd_jtfeeoppbebank");
|
|
|
|
|
DynamicObject shkd_jtfeeoppacctbank = dynamicObject.getDynamicObject("shkd_jtfeeoppacctbank");
|
|
|
|
|
ShowParameter.setCustomParam("end", shkd_jtenddate);//结束日期
|
|
|
|
|
ShowParameter.setCustomParam("shkd_generalfeerate", shkd_jtfeerate);//费率
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feetype", shkd_jtfeetype);//费用类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunittype", shkd_jtfeeoppunittype);//对方单位类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunit", shkd_jtfeeoppunit);//对方单位
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppbebank", shkd_jtfeeoppbebank);//对方开户银行
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppacctbank", shkd_jtfeeoppacctbank);//对方开户银行
|
|
|
|
|
}else {
|
|
|
|
|
ShowParameter.setCustomParam("end", null);//结束日期
|
|
|
|
|
ShowParameter.setCustomParam("shkd_generalfeerate", null);//费率
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feetype", null);//费用类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunittype", null);//对方单位类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunit", null);//对方单位
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppbebank", null);//对方开户银行
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppacctbank", null);//对方开户银行
|
|
|
|
|
}
|
|
|
|
|
this.getView().showForm(ShowParameter);
|
|
|
|
|
} else if ("yt".equals(operate.getOperateKey())) {
|
|
|
|
|
FormShowParameter ShowParameter = new FormShowParameter();
|
|
|
|
|
@ -64,15 +88,66 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
ShowParameter.setCloseCallBack(new CloseCallBack(this, "yt"));
|
|
|
|
|
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
|
|
|
|
DynamicObjectCollection shkd_ytentry = this.getModel().getEntryEntity("shkd_ytentry");
|
|
|
|
|
//获取最晚的日期
|
|
|
|
|
Date shkd_ytenddate = shkd_ytentry.stream()
|
|
|
|
|
// 提取每个条目的 shkd_jtenddate 字段并确保它不为 null
|
|
|
|
|
.map(entry -> (Date) entry.getDate("shkd_jtenddate"))
|
|
|
|
|
.filter(date -> date != null) // 过滤掉 null 日期
|
|
|
|
|
.max(Comparator.naturalOrder()) // 找到最大的日期
|
|
|
|
|
.orElse(null);// 如果没有有效日期,返回 null
|
|
|
|
|
ShowParameter.setCustomParam("end", shkd_ytenddate);
|
|
|
|
|
if (shkd_ytentry.size()>0){//返回上次填写的日期
|
|
|
|
|
DynamicObject dynamicObject = shkd_ytentry.get(shkd_ytentry.size() - 1);//最后一行的数据
|
|
|
|
|
Date shkd_jtenddate = dynamicObject.getDate("shkd_ytenddate");
|
|
|
|
|
BigDecimal shkd_jtfeerate = dynamicObject.getBigDecimal("shkd_ytfeerate");
|
|
|
|
|
DynamicObject shkd_jtfeetype = dynamicObject.getDynamicObject("shkd_ytfeetype");
|
|
|
|
|
String shkd_jtfeeoppunittype = dynamicObject.getString("shkd_ytfeeoppunittype");
|
|
|
|
|
DynamicObject shkd_jtfeeoppunit = dynamicObject.getDynamicObject("shkd_ytfeeoppunit");
|
|
|
|
|
DynamicObject shkd_jtfeeoppbebank = dynamicObject.getDynamicObject("shkd_ytfeeoppbebank");
|
|
|
|
|
DynamicObject shkd_jtfeeoppacctbank = dynamicObject.getDynamicObject("shkd_ytfeeoppacctbank");
|
|
|
|
|
ShowParameter.setCustomParam("end", shkd_jtenddate);//结束日期
|
|
|
|
|
ShowParameter.setCustomParam("shkd_generalfeerate", shkd_jtfeerate);//费率
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feetype", shkd_jtfeetype);//费用类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunittype", shkd_jtfeeoppunittype);//对方单位类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunit", shkd_jtfeeoppunit);//对方单位
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppbebank", shkd_jtfeeoppbebank);//对方开户银行
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppacctbank", shkd_jtfeeoppacctbank);//对方开户银行
|
|
|
|
|
}else {
|
|
|
|
|
ShowParameter.setCustomParam("end", null);//结束日期
|
|
|
|
|
ShowParameter.setCustomParam("shkd_generalfeerate", null);//费率
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feetype", null);//费用类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunittype", null);//对方单位类型
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppunit", null);//对方单位
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppbebank", null);//对方开户银行
|
|
|
|
|
ShowParameter.setCustomParam("shkd_feeoppacctbank", null);//对方开户银行
|
|
|
|
|
}
|
|
|
|
|
this.getView().showForm(ShowParameter);
|
|
|
|
|
} else if ("jtbatchinput".equals(operate.getOperateKey())) {
|
|
|
|
|
//获取选中行
|
|
|
|
|
EntryGrid entryGrid = getControl("shkd_jtentry");
|
|
|
|
|
int[] rows = entryGrid.getSelectRows();
|
|
|
|
|
DynamicObject dataEntity = this.getModel().getDataEntity();
|
|
|
|
|
for (int row : rows) {
|
|
|
|
|
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_jtentry");
|
|
|
|
|
DynamicObject seldata = shkd_jtentry.get(row);
|
|
|
|
|
DynamicObject savedata = savejtFeeBill(seldata, dataEntity);
|
|
|
|
|
if (seldata!=null){
|
|
|
|
|
this.getModel().setValue("shkd_jtdbhtfyid",savedata.getLong("id"));
|
|
|
|
|
this.getModel().setValue("shkd_jtfeebillnum",savedata.getString("billno"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
|
|
|
|
this.getView().updateView("shkd_jtentry");
|
|
|
|
|
this.getView().showTipNotification("功能成功");
|
|
|
|
|
} else if ("ytbatchinput".equals(operate.getOperateKey())) {
|
|
|
|
|
//获取选中行
|
|
|
|
|
EntryGrid entryGrid = getControl("shkd_ytentry");
|
|
|
|
|
int[] rows = entryGrid.getSelectRows();
|
|
|
|
|
DynamicObject dataEntity = this.getModel().getDataEntity();
|
|
|
|
|
for (int row : rows) {
|
|
|
|
|
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_ytentry");
|
|
|
|
|
DynamicObject seldata = shkd_jtentry.get(row);
|
|
|
|
|
DynamicObject savedata = saveytFeeBill(seldata, dataEntity);
|
|
|
|
|
if (seldata!=null){
|
|
|
|
|
this.getModel().setValue("shkd_ytdbhtfyid",savedata.getLong("id"));
|
|
|
|
|
this.getModel().setValue("shkd_ytfeebillnum",savedata.getString("billno"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
|
|
|
|
this.getView().updateView("shkd_ytentry");
|
|
|
|
|
this.getView().showTipNotification("功能成功");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -99,8 +174,6 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
.filter(entry -> "A".equals(entry.getString("gstatus")))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
int index = this.getModel().createNewEntryRow("shkd_jtentry");
|
|
|
|
|
this.getModel().setValue("shkd_jtfeerate",this.getModel().getValue("generalfeerate"),index);//费率(%)
|
|
|
|
|
// this.getModel().setValue("shkd_jtfeeamt", BigDecimal.valueOf(123),index);//费用金额
|
|
|
|
|
Date shkd_startdate;
|
|
|
|
|
Date shkd_enddate;
|
|
|
|
|
try {
|
|
|
|
|
@ -112,10 +185,25 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
this.getModel().setValue("shkd_jtstartdate",shkd_startdate,index);
|
|
|
|
|
this.getModel().setValue("shkd_jtenddate",shkd_enddate,index);
|
|
|
|
|
this.getModel().setValue("shkd_jtfeepaydate",getNextDay(shkd_enddate),index);
|
|
|
|
|
String shkd_jtfeerate = (String) map.get("shkd_jtfeerate");
|
|
|
|
|
String shkd_jtfeerate = (String) map.get("shkd_feerate");
|
|
|
|
|
BigDecimal fl = BigDecimal.valueOf(Double.parseDouble(shkd_jtfeerate));
|
|
|
|
|
this.getModel().setValue("shkd_jtfeerate",fl,index);//费率
|
|
|
|
|
//计算金额
|
|
|
|
|
String shkd_feetype = (String) map.get("shkd_feetype");
|
|
|
|
|
this.getModel().setValue("shkd_jtfeetype", Long.parseLong(shkd_feetype),index);//费用类型
|
|
|
|
|
String shkd_feeoppunittype = (String) map.get("shkd_feeoppunittype");
|
|
|
|
|
this.getModel().setValue("shkd_jtfeeoppunittype", shkd_feeoppunittype,index);//对方单位类型
|
|
|
|
|
String shkd_feeoppunit = (String) map.get("shkd_feeoppunit");
|
|
|
|
|
this.getModel().setValue("shkd_jtfeeoppunit", Long.parseLong(shkd_feeoppunit),index);//对方单位
|
|
|
|
|
String shkd_feeoppbebank = (String) map.get("shkd_feeoppbebank");
|
|
|
|
|
this.getModel().setValue("shkd_jtfeeoppbebank", Long.parseLong(shkd_feeoppbebank),index);//对方开户银行
|
|
|
|
|
String shkd_feeoppacctbank = (String) map.get("shkd_feeoppacctbank");
|
|
|
|
|
if (shkd_feeoppacctbank!=null){
|
|
|
|
|
this.getModel().setValue("shkd_jtfeeoppacctbank", Long.parseLong(shkd_feeoppacctbank),index);//对方开户银行
|
|
|
|
|
}
|
|
|
|
|
String shkd_csfy = (String) map.get("shkd_csfy");
|
|
|
|
|
BigDecimal csfy = BigDecimal.valueOf(Double.parseDouble(shkd_csfy));
|
|
|
|
|
this.getModel().setValue("shkd_jtfeeamt",csfy,index);//费率
|
|
|
|
|
//计算测算金额
|
|
|
|
|
BigDecimal getbalance = getbalance(shkd_startdate, shkd_enddate, gstatus,fl);
|
|
|
|
|
this.getModel().setValue("shkd_jtcsfy",getbalance,index);
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
|
|
|
|
@ -129,7 +217,40 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
// 过滤出 gstatus 字段为 "A" 的条目
|
|
|
|
|
.filter(entry -> "A".equals(entry.getString("gstatus")))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
int index = this.getModel().createNewEntryRow("shkd_ytentry");
|
|
|
|
|
Date shkd_startdate;
|
|
|
|
|
Date shkd_enddate;
|
|
|
|
|
try {
|
|
|
|
|
shkd_startdate = sdf.parse((String) map.get("shkd_startdate"));
|
|
|
|
|
shkd_enddate = sdf.parse((String) map.get("shkd_enddate"));
|
|
|
|
|
} catch (ParseException ex) {
|
|
|
|
|
throw new RuntimeException(ex);
|
|
|
|
|
}
|
|
|
|
|
this.getModel().setValue("shkd_ytstartdate",shkd_startdate,index);
|
|
|
|
|
this.getModel().setValue("shkd_ytenddate",shkd_enddate,index);
|
|
|
|
|
this.getModel().setValue("shkd_ytfeepaydate",getNextDay(shkd_enddate),index);
|
|
|
|
|
String shkd_jtfeerate = (String) map.get("shkd_feerate");
|
|
|
|
|
BigDecimal fl = BigDecimal.valueOf(Double.parseDouble(shkd_jtfeerate));
|
|
|
|
|
this.getModel().setValue("shkd_ytfeerate",fl,index);//费率
|
|
|
|
|
String shkd_feetype = (String) map.get("shkd_feetype");
|
|
|
|
|
this.getModel().setValue("shkd_ytfeetype", Long.parseLong(shkd_feetype),index);//费用类型
|
|
|
|
|
String shkd_feeoppunittype = (String) map.get("shkd_feeoppunittype");
|
|
|
|
|
this.getModel().setValue("shkd_ytfeeoppunittype", shkd_feeoppunittype,index);//对方单位类型
|
|
|
|
|
String shkd_feeoppunit = (String) map.get("shkd_feeoppunit");
|
|
|
|
|
this.getModel().setValue("shkd_ytfeeoppunit", Long.parseLong(shkd_feeoppunit),index);//对方单位
|
|
|
|
|
String shkd_feeoppbebank = (String) map.get("shkd_feeoppbebank");
|
|
|
|
|
this.getModel().setValue("shkd_ytfeeoppbebank", Long.parseLong(shkd_feeoppbebank),index);//对方开户银行
|
|
|
|
|
String shkd_feeoppacctbank = (String) map.get("shkd_feeoppacctbank");
|
|
|
|
|
if (shkd_feeoppacctbank!=null){
|
|
|
|
|
this.getModel().setValue("shkd_ytfeeoppacctbank", Long.parseLong(shkd_feeoppacctbank),index);//对方开户银行
|
|
|
|
|
}
|
|
|
|
|
String shkd_csfy = (String) map.get("shkd_csfy");
|
|
|
|
|
BigDecimal csfy = BigDecimal.valueOf(Double.parseDouble(shkd_csfy));
|
|
|
|
|
this.getModel().setValue("shkd_ytcsfy",csfy,index);//费率
|
|
|
|
|
//计算金额
|
|
|
|
|
BigDecimal getbalance = getbalance(shkd_startdate, shkd_enddate, gstatus,fl);
|
|
|
|
|
this.getModel().setValue("shkd_ytcsfy",getbalance,index);
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -190,4 +311,116 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|
|
|
|
long diffInMillis = gdebtenddate.getTime() - gdebtstartdate.getTime();
|
|
|
|
|
return TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private DynamicObject savejtFeeBill(DynamicObject seldata, DynamicObject dataEntity){
|
|
|
|
|
DynamicObject feeBillDo = BusinessDataServiceHelper.newDynamicObject("cfm_feebill");
|
|
|
|
|
feeBillDo.set("id", seldata.getLong("shkd_jtdbhtfyid"));
|
|
|
|
|
feeBillDo.set("shkd_jtyu","jt");
|
|
|
|
|
feeBillDo.set("org",dataEntity.getDynamicObject("org"));//组织
|
|
|
|
|
feeBillDo.set("feescheme", null);//费用方案
|
|
|
|
|
feeBillDo.set("feetype", seldata.getDynamicObject("shkd_jtfeetype"));//费用类型
|
|
|
|
|
feeBillDo.set("paydate", seldata.getDate("shkd_jtfeepaydate"));//费用日期
|
|
|
|
|
feeBillDo.set("currency", seldata.getDynamicObject("shkd_jtcurrency"));//币别
|
|
|
|
|
feeBillDo.set("payamt", seldata.getBigDecimal("shkd_jtfeeamt"));//费用金额
|
|
|
|
|
feeBillDo.set("amountrate", seldata.getBigDecimal("shkd_jtfeerate"));//费率
|
|
|
|
|
QFilter qFilter = new QFilter("name", QCP.equals,"电汇");
|
|
|
|
|
DynamicObject settlementtype = BusinessDataServiceHelper.loadSingle("bd_settlementtype", qFilter.toArray());
|
|
|
|
|
feeBillDo.set("settlementtype",settlementtype);//结算方式
|
|
|
|
|
feeBillDo.set("feeacctbank", seldata.getDynamicObject("shkd_jtfeeoppacctbank"));//费用账号
|
|
|
|
|
feeBillDo.set("oppunittype", seldata.getString("shkd_jtfeeoppunittype"));//对方单位类型
|
|
|
|
|
feeBillDo.set("oppunit",seldata.getDynamicObject("shkd_jtfeeoppunit"));//对方单位
|
|
|
|
|
feeBillDo.set("oppunittext", seldata.getDynamicObject("shkd_jtfeeoppunit").getString("name"));//对方单位
|
|
|
|
|
if (seldata.getDynamicObject("shkd_jtfeeoppacctbank")!=null){
|
|
|
|
|
feeBillDo.set("oppacctbank", seldata.getDynamicObject("shkd_jtfeeoppacctbank").get("name"));//账户名称
|
|
|
|
|
}
|
|
|
|
|
feeBillDo.set("oppbebank", seldata.getDynamicObject("shkd_jtfeeoppbebank"));//开户行
|
|
|
|
|
feeBillDo.set("billstatus", "C");//单据状态
|
|
|
|
|
feeBillDo.set("feesource", "hand");//来源
|
|
|
|
|
// feeBillDo.set("issettle", "");//已结算
|
|
|
|
|
feeBillDo.set("sharetype", ShareTypeEnum.NOTSHARE.getValue());
|
|
|
|
|
feeBillDo.set("appsource", "gm");//数据应用来源(担保)
|
|
|
|
|
|
|
|
|
|
DynamicObjectCollection entrys = feeBillDo.getDynamicObjectCollection("entry");
|
|
|
|
|
DynamicObject entry = entrys.addNew();
|
|
|
|
|
DynamicObject tbd_tradetype = BusinessDataServiceHelper.loadSingle("tbd_tradetype", new QFilter("name", QCP.equals,"担保合同").toArray());
|
|
|
|
|
entry.set("producttype", tbd_tradetype);
|
|
|
|
|
entry.set("srcbillno", dataEntity.getString("billno"));
|
|
|
|
|
entry.set("srcbillid", dataEntity.getLong("id"));
|
|
|
|
|
entry.set("feeratio", 100);
|
|
|
|
|
entry.set("feedetailamt", seldata.getBigDecimal("shkd_jtfeeamt"));
|
|
|
|
|
entry.set("remark", dataEntity.getString("description"));
|
|
|
|
|
entry.set("id", seldata.getLong("shkd_jtdbhtfyid"));
|
|
|
|
|
String shkd_jtfeebillnum = seldata.getString("shkd_jtfeebillnum");
|
|
|
|
|
if (EmptyUtil.isEmpty(shkd_jtfeebillnum)) {
|
|
|
|
|
shkd_jtfeebillnum = CodeRuleHelper.generateNumber("cfm_feebill", feeBillDo, String.valueOf(dataEntity.getDynamicObject("org").getLong("id")), "");
|
|
|
|
|
}
|
|
|
|
|
feeBillDo.set("billno", shkd_jtfeebillnum);
|
|
|
|
|
|
|
|
|
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("cfm_feebill", new QFilter("id", QCP.equals, seldata.getLong("shkd_jtdbhtfyid")).toArray());
|
|
|
|
|
if (dynamicObject==null){
|
|
|
|
|
DynamicObject[] save = (DynamicObject[]) SaveServiceHelper.save(new DynamicObject[]{feeBillDo});
|
|
|
|
|
return save[0];
|
|
|
|
|
}else {
|
|
|
|
|
SaveServiceHelper.update(feeBillDo);
|
|
|
|
|
return feeBillDo;
|
|
|
|
|
}
|
|
|
|
|
// DynamicObject[] save = (DynamicObject[]) SaveServiceHelper.save(new DynamicObject[]{feeBillDo});
|
|
|
|
|
// return save[0];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private DynamicObject saveytFeeBill(DynamicObject seldata, DynamicObject dataEntity){
|
|
|
|
|
DynamicObject feeBillDo = BusinessDataServiceHelper.newDynamicObject("cfm_feebill");
|
|
|
|
|
feeBillDo.set("id", seldata.getLong("shkd_ytdbhtfyid"));
|
|
|
|
|
feeBillDo.set("shkd_jtyu","yt");
|
|
|
|
|
feeBillDo.set("org",dataEntity.getDynamicObject("org"));//组织
|
|
|
|
|
feeBillDo.set("feescheme", null);//费用方案
|
|
|
|
|
feeBillDo.set("feetype", seldata.getDynamicObject("shkd_ytfeetype"));//费用类型
|
|
|
|
|
feeBillDo.set("paydate", seldata.getDate("shkd_ytfeepaydate"));//费用日期
|
|
|
|
|
feeBillDo.set("currency", seldata.getDynamicObject("shkd_ytcurrency"));//币别
|
|
|
|
|
feeBillDo.set("payamt", seldata.getBigDecimal("shkd_ytfeeamt"));//费用金额
|
|
|
|
|
feeBillDo.set("amountrate", seldata.getBigDecimal("shkd_ytfeerate"));//费率
|
|
|
|
|
QFilter qFilter = new QFilter("name", QCP.equals,"电汇");
|
|
|
|
|
DynamicObject settlementtype = BusinessDataServiceHelper.loadSingle("bd_settlementtype", qFilter.toArray());
|
|
|
|
|
feeBillDo.set("settlementtype",settlementtype);//结算方式
|
|
|
|
|
feeBillDo.set("feeacctbank", seldata.getDynamicObject("shkd_ytfeeoppacctbank"));//费用账号
|
|
|
|
|
feeBillDo.set("oppunittype", seldata.getString("shkd_ytfeeoppunittype"));//对方单位类型
|
|
|
|
|
feeBillDo.set("oppunit",seldata.getDynamicObject("shkd_ytfeeoppunit"));//对方单位
|
|
|
|
|
feeBillDo.set("oppunittext", seldata.getDynamicObject("shkd_ytfeeoppunit").getString("name"));//对方单位
|
|
|
|
|
if (seldata.getDynamicObject("shkd_ytfeeoppacctbank")!=null){
|
|
|
|
|
feeBillDo.set("oppacctbank", seldata.getDynamicObject("shkd_ytfeeoppacctbank").get("name"));//账户名称
|
|
|
|
|
}
|
|
|
|
|
feeBillDo.set("oppbebank", seldata.getDynamicObject("shkd_ytfeeoppbebank"));//开户行
|
|
|
|
|
feeBillDo.set("billstatus", "C");//单据状态
|
|
|
|
|
feeBillDo.set("feesource", "hand");//来源
|
|
|
|
|
// feeBillDo.set("issettle", "");//已结算
|
|
|
|
|
feeBillDo.set("sharetype", ShareTypeEnum.NOTSHARE.getValue());
|
|
|
|
|
feeBillDo.set("appsource", "gm");//数据应用来源(担保)
|
|
|
|
|
|
|
|
|
|
DynamicObjectCollection entrys = feeBillDo.getDynamicObjectCollection("entry");
|
|
|
|
|
DynamicObject entry = entrys.addNew();
|
|
|
|
|
DynamicObject tbd_tradetype = BusinessDataServiceHelper.loadSingle("tbd_tradetype", new QFilter("name", QCP.equals,"担保合同").toArray());
|
|
|
|
|
entry.set("producttype", tbd_tradetype);
|
|
|
|
|
entry.set("srcbillno", dataEntity.getString("billno"));
|
|
|
|
|
entry.set("srcbillid", dataEntity.getLong("id"));
|
|
|
|
|
entry.set("feeratio", 100);
|
|
|
|
|
entry.set("feedetailamt", seldata.getBigDecimal("shkd_ytfeeamt"));
|
|
|
|
|
entry.set("remark", dataEntity.getString("description"));
|
|
|
|
|
entry.set("id", seldata.getLong("shkd_ytdbhtfyid"));
|
|
|
|
|
String shkd_jtfeebillnum = seldata.getString("shkd_ytfeebillnum");
|
|
|
|
|
if (EmptyUtil.isEmpty(shkd_jtfeebillnum)) {
|
|
|
|
|
shkd_jtfeebillnum = CodeRuleHelper.generateNumber("cfm_feebill", feeBillDo, String.valueOf(dataEntity.getDynamicObject("org").getLong("id")), "");
|
|
|
|
|
}
|
|
|
|
|
feeBillDo.set("billno", shkd_jtfeebillnum);
|
|
|
|
|
|
|
|
|
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("cfm_feebill", new QFilter("id", QCP.equals, seldata.getLong("shkd_ytdbhtfyid")).toArray());
|
|
|
|
|
if (dynamicObject==null){
|
|
|
|
|
DynamicObject[] save = (DynamicObject[]) SaveServiceHelper.save(new DynamicObject[]{feeBillDo});
|
|
|
|
|
return save[0];
|
|
|
|
|
}else {
|
|
|
|
|
SaveServiceHelper.update(feeBillDo);
|
|
|
|
|
return feeBillDo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|