parent
6ef97d7565
commit
393d2425dd
|
|
@ -14,11 +14,14 @@ import com.alibaba.fastjson.JSONObject;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @FileName GuaranteeConDateFormPlugin
|
* @FileName GuaranteeConDateFormPlugin
|
||||||
* @Description
|
* @Description 担保合同日期选择动态表单插件
|
||||||
* @Author csx
|
* @Author csx
|
||||||
* @date 2025-10-27
|
* @date 2025-10-27
|
||||||
**/
|
**/
|
||||||
|
|
@ -35,11 +38,17 @@ public class GuaranteeConDateFormPlugin extends AbstractFormPlugin {
|
||||||
Object shkd_feeoppunit = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppunit");
|
Object shkd_feeoppunit = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppunit");
|
||||||
Object shkd_feeoppbebank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppbebank");
|
Object shkd_feeoppbebank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppbebank");
|
||||||
Object shkd_feeoppacctbank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppacctbank");
|
Object shkd_feeoppacctbank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppacctbank");
|
||||||
|
Object type = this.getView().getFormShowParameter().getCustomParam("type");
|
||||||
if (end!=null){
|
if (end!=null){
|
||||||
String enddateString = (String) end;//上次的结束日期
|
String enddateString = (String) end;//上次的结束日期
|
||||||
try {
|
try {
|
||||||
Date enddate = sdf.parse(enddateString);
|
Date enddate = sdf.parse(enddateString);
|
||||||
Date quarterEndDate = getQuarterEndDate(getNextDay(enddate));//获取季末最后一天
|
Date quarterEndDate;
|
||||||
|
if (type!=null&&((String)type).equals("jt")){
|
||||||
|
quarterEndDate = getQuarterEndDate(getNextDay(enddate));//获取季末最后一天
|
||||||
|
}else {
|
||||||
|
quarterEndDate = getLastDayOfMonth(getNextDay(enddate));//获取月末最后一天
|
||||||
|
}
|
||||||
this.getModel().setValue("shkd_startdate", getNextDay(enddate));
|
this.getModel().setValue("shkd_startdate", getNextDay(enddate));
|
||||||
this.getModel().setValue("shkd_enddate", quarterEndDate);
|
this.getModel().setValue("shkd_enddate", quarterEndDate);
|
||||||
} catch (ParseException ex) {
|
} catch (ParseException ex) {
|
||||||
|
|
@ -225,6 +234,25 @@ public class GuaranteeConDateFormPlugin extends AbstractFormPlugin {
|
||||||
return calendar.getTime();
|
return calendar.getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 获取月末最后一天方法
|
||||||
|
* */
|
||||||
|
public static Date getLastDayOfMonth(Date inputDate) {
|
||||||
|
// 将 Date 转换为 LocalDate
|
||||||
|
LocalDate localDate = inputDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
|
|
||||||
|
// 获取当前月的最后一天
|
||||||
|
LocalDate lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth());
|
||||||
|
|
||||||
|
// 将 LocalDate 转换为 Date 类型并返回
|
||||||
|
return Date.from(lastDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 获取下一天
|
||||||
|
* */
|
||||||
public Date getNextDay(Date enddate) {
|
public Date getNextDay(Date enddate) {
|
||||||
// 使用 Calendar 来处理日期
|
// 使用 Calendar 来处理日期
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
package shkd.sys.sys.plugin.form;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import kd.bos.entity.datamodel.events.BizDataEventArgs;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName GuaranteeContCSXQFromPlugin
|
||||||
|
* @Description 担保合同测算详情动态表单插件
|
||||||
|
* @Author csx
|
||||||
|
* @date 2025-10-30
|
||||||
|
**/
|
||||||
|
public class GuaranteeContCSXQFromPlugin extends AbstractFormPlugin {
|
||||||
|
|
||||||
|
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createNewData(BizDataEventArgs e) {
|
||||||
|
super.createNewData(e);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
try {
|
||||||
|
Object type = this.getView().getFormShowParameter().getCustomParam("type");
|
||||||
|
|
||||||
|
Object entry = this.getView().getFormShowParameter().getCustomParam("entry");
|
||||||
|
Object guaranteedebt_entry = this.getView().getFormShowParameter().getCustomParam("guaranteedebt_entry");
|
||||||
|
if (entry!=null&&guaranteedebt_entry!=null){
|
||||||
|
String typeString=(String)type;
|
||||||
|
if ("jt".equals(typeString)){//计提赋值
|
||||||
|
JSONObject entryJSONObject=(JSONObject)entry;
|
||||||
|
JSONArray guaranteedebt_entryJSONArray=(JSONArray)guaranteedebt_entry;
|
||||||
|
int[] indexs = this.getModel().batchCreateNewEntryRow("shkd_entryentity",guaranteedebt_entryJSONArray.size());//批量新建行
|
||||||
|
int i=0;
|
||||||
|
for (int index : indexs) {
|
||||||
|
JSONObject o = (JSONObject)guaranteedebt_entryJSONArray.get(i);
|
||||||
|
String shkd_jtstartdate = entryJSONObject.getString("shkd_jtstartdate");
|
||||||
|
this.getModel().setValue("shkd_startdate", sdf.parse(shkd_jtstartdate),index);//计息结束日
|
||||||
|
String shkd_jtenddate = entryJSONObject.getString("shkd_jtenddate");
|
||||||
|
this.getModel().setValue("shkd_enddate", sdf.parse(shkd_jtenddate),index);//计息开始日
|
||||||
|
long diffInMillis = sdf.parse(shkd_jtenddate).getTime() - sdf.parse(shkd_jtstartdate).getTime();//时间差
|
||||||
|
long convert = TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS);//日期差
|
||||||
|
this.getModel().setValue("shkd_jxts", BigDecimal.valueOf(convert),index);//计息天数
|
||||||
|
BigDecimal gdebtbalance = o.getBigDecimal("gdebtbalance");
|
||||||
|
this.getModel().setValue("shkd_jxbj", gdebtbalance,index);//计息本金
|
||||||
|
BigDecimal shkd_jtfeerate = entryJSONObject.getBigDecimal("shkd_jtfeerate");
|
||||||
|
this.getModel().setValue("shkd_fl", shkd_jtfeerate,index);//费率
|
||||||
|
this.getModel().setValue("shkd_fyje", entryJSONObject.getBigDecimal("shkd_jtfeeamt"),index);//费用金额
|
||||||
|
this.getModel().setValue("shkd_llzhts", BigDecimal.valueOf(360),index);//转换天数
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}else {//预提赋值
|
||||||
|
JSONObject entryJSONObject=(JSONObject)entry;
|
||||||
|
JSONArray guaranteedebt_entryJSONArray=(JSONArray)guaranteedebt_entry;
|
||||||
|
int[] indexs = this.getModel().batchCreateNewEntryRow("shkd_entryentity",guaranteedebt_entryJSONArray.size());//批量新建行
|
||||||
|
int i=0;
|
||||||
|
for (int index : indexs) {
|
||||||
|
JSONObject o = (JSONObject)guaranteedebt_entryJSONArray.get(i);
|
||||||
|
String shkd_jtstartdate = entryJSONObject.getString("shkd_ytstartdate");
|
||||||
|
this.getModel().setValue("shkd_startdate", sdf.parse(shkd_jtstartdate),index);//计息结束日
|
||||||
|
String shkd_jtenddate = entryJSONObject.getString("shkd_ytenddate");
|
||||||
|
this.getModel().setValue("shkd_enddate", sdf.parse(shkd_jtenddate),index);//计息开始日
|
||||||
|
long diffInMillis = sdf.parse(shkd_jtenddate).getTime() - sdf.parse(shkd_jtstartdate).getTime();//时间差
|
||||||
|
long convert = TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS);//日期差
|
||||||
|
this.getModel().setValue("shkd_jxts", BigDecimal.valueOf(convert),index);//计息天数
|
||||||
|
BigDecimal gdebtbalance = o.getBigDecimal("gdebtbalance");
|
||||||
|
this.getModel().setValue("shkd_jxbj", gdebtbalance,index);//计息本金
|
||||||
|
BigDecimal shkd_jtfeerate = entryJSONObject.getBigDecimal("shkd_ytfeerate");
|
||||||
|
this.getModel().setValue("shkd_fl", shkd_jtfeerate,index);//费率
|
||||||
|
this.getModel().setValue("shkd_fyje", entryJSONObject.getBigDecimal("shkd_ytfeeamt"),index);//费用金额
|
||||||
|
this.getModel().setValue("shkd_llzhts", BigDecimal.valueOf(360),index);//转换天数
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (ParseException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package shkd.sys.sys.plugin.form;
|
||||||
import kd.bos.bill.AbstractBillPlugIn;
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.form.CloseCallBack;
|
import kd.bos.form.CloseCallBack;
|
||||||
import kd.bos.form.FormShowParameter;
|
import kd.bos.form.FormShowParameter;
|
||||||
import kd.bos.form.ShowType;
|
import kd.bos.form.ShowType;
|
||||||
|
|
@ -56,6 +57,7 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
||||||
ShowParameter.setCloseCallBack(new CloseCallBack(this, "jt"));
|
ShowParameter.setCloseCallBack(new CloseCallBack(this, "jt"));
|
||||||
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_jtentry");
|
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_jtentry");
|
||||||
|
ShowParameter.setCustomParam("type", "jt");//类型
|
||||||
if (shkd_jtentry.size()>0){//返回上次填写的日期
|
if (shkd_jtentry.size()>0){//返回上次填写的日期
|
||||||
DynamicObject dynamicObject = shkd_jtentry.get(shkd_jtentry.size() - 1);//最后一行的数据
|
DynamicObject dynamicObject = shkd_jtentry.get(shkd_jtentry.size() - 1);//最后一行的数据
|
||||||
Date shkd_jtenddate = dynamicObject.getDate("shkd_jtenddate");
|
Date shkd_jtenddate = dynamicObject.getDate("shkd_jtenddate");
|
||||||
|
|
@ -88,6 +90,7 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
||||||
ShowParameter.setCloseCallBack(new CloseCallBack(this, "yt"));
|
ShowParameter.setCloseCallBack(new CloseCallBack(this, "yt"));
|
||||||
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
DynamicObjectCollection shkd_ytentry = this.getModel().getEntryEntity("shkd_ytentry");
|
DynamicObjectCollection shkd_ytentry = this.getModel().getEntryEntity("shkd_ytentry");
|
||||||
|
ShowParameter.setCustomParam("type", "yt");//类型
|
||||||
if (shkd_ytentry.size()>0){//返回上次填写的日期
|
if (shkd_ytentry.size()>0){//返回上次填写的日期
|
||||||
DynamicObject dynamicObject = shkd_ytentry.get(shkd_ytentry.size() - 1);//最后一行的数据
|
DynamicObject dynamicObject = shkd_ytentry.get(shkd_ytentry.size() - 1);//最后一行的数据
|
||||||
Date shkd_jtenddate = dynamicObject.getDate("shkd_ytenddate");
|
Date shkd_jtenddate = dynamicObject.getDate("shkd_ytenddate");
|
||||||
|
|
@ -148,6 +151,36 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
||||||
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
||||||
this.getView().updateView("shkd_ytentry");
|
this.getView().updateView("shkd_ytentry");
|
||||||
this.getView().showTipNotification("功能成功");
|
this.getView().showTipNotification("功能成功");
|
||||||
|
}else if ("jtckcsxq".equals(operate.getOperateKey())) {
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
DynamicObject shkd_jtentry = (DynamicObject)model.getEntryEntity("shkd_jtentry").get(model.getEntryCurrentRowIndex("shkd_jtentry"));
|
||||||
|
DynamicObjectCollection guaranteedebt_entry = this.getModel().getEntryEntity("guaranteedebt_entry");//担保债务
|
||||||
|
List<DynamicObject> gstatus = guaranteedebt_entry.stream()
|
||||||
|
// 过滤出 gstatus 字段为 "A" 的条目
|
||||||
|
.filter(entry -> "A".equals(entry.getString("gstatus")))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
FormShowParameter showParameter = new FormShowParameter();
|
||||||
|
showParameter.setFormId("shkd_guaranteecontcsxq");
|
||||||
|
showParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
showParameter.setCustomParam("type", "jt");//类型
|
||||||
|
showParameter.setCustomParam("entry", shkd_jtentry);//计提信息
|
||||||
|
showParameter.setCustomParam("guaranteedebt_entry", gstatus);//责任金额的分录信息
|
||||||
|
this.getView().showForm(showParameter);
|
||||||
|
} else if ("ytckcsxq".equals(operate.getOperateKey())) {
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
DynamicObject shkd_ytentry = (DynamicObject)model.getEntryEntity("shkd_ytentry").get(model.getEntryCurrentRowIndex("shkd_ytentry"));
|
||||||
|
DynamicObjectCollection guaranteedebt_entry = this.getModel().getEntryEntity("guaranteedebt_entry");//担保债务
|
||||||
|
List<DynamicObject> gstatus = guaranteedebt_entry.stream()
|
||||||
|
// 过滤出 gstatus 字段为 "A" 的条目
|
||||||
|
.filter(entry -> "A".equals(entry.getString("gstatus")))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
FormShowParameter showParameter = new FormShowParameter();
|
||||||
|
showParameter.setFormId("shkd_guaranteecontcsxq");
|
||||||
|
showParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
showParameter.setCustomParam("type", "yt");//类型
|
||||||
|
showParameter.setCustomParam("entry", shkd_ytentry);//计提信息
|
||||||
|
showParameter.setCustomParam("guaranteedebt_entry", gstatus);//责任金额的分录信息
|
||||||
|
this.getView().showForm(showParameter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue