parent
6ef97d7565
commit
393d2425dd
|
|
@ -14,11 +14,14 @@ import com.alibaba.fastjson.JSONObject;
|
|||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @FileName GuaranteeConDateFormPlugin
|
||||
* @Description
|
||||
* @Description 担保合同日期选择动态表单插件
|
||||
* @Author csx
|
||||
* @date 2025-10-27
|
||||
**/
|
||||
|
|
@ -35,11 +38,17 @@ public class GuaranteeConDateFormPlugin extends AbstractFormPlugin {
|
|||
Object shkd_feeoppunit = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppunit");
|
||||
Object shkd_feeoppbebank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppbebank");
|
||||
Object shkd_feeoppacctbank = this.getView().getFormShowParameter().getCustomParam("shkd_feeoppacctbank");
|
||||
Object type = this.getView().getFormShowParameter().getCustomParam("type");
|
||||
if (end!=null){
|
||||
String enddateString = (String) end;//上次的结束日期
|
||||
try {
|
||||
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_enddate", quarterEndDate);
|
||||
} catch (ParseException ex) {
|
||||
|
|
@ -225,6 +234,25 @@ public class GuaranteeConDateFormPlugin extends AbstractFormPlugin {
|
|||
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) {
|
||||
// 使用 Calendar 来处理日期
|
||||
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.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.IDataModel;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.FormShowParameter;
|
||||
import kd.bos.form.ShowType;
|
||||
|
|
@ -56,6 +57,7 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|||
ShowParameter.setCloseCallBack(new CloseCallBack(this, "jt"));
|
||||
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||
DynamicObjectCollection shkd_jtentry = this.getModel().getEntryEntity("shkd_jtentry");
|
||||
ShowParameter.setCustomParam("type", "jt");//类型
|
||||
if (shkd_jtentry.size()>0){//返回上次填写的日期
|
||||
DynamicObject dynamicObject = shkd_jtentry.get(shkd_jtentry.size() - 1);//最后一行的数据
|
||||
Date shkd_jtenddate = dynamicObject.getDate("shkd_jtenddate");
|
||||
|
|
@ -88,6 +90,7 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|||
ShowParameter.setCloseCallBack(new CloseCallBack(this, "yt"));
|
||||
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||
DynamicObjectCollection shkd_ytentry = this.getModel().getEntryEntity("shkd_ytentry");
|
||||
ShowParameter.setCustomParam("type", "yt");//类型
|
||||
if (shkd_ytentry.size()>0){//返回上次填写的日期
|
||||
DynamicObject dynamicObject = shkd_ytentry.get(shkd_ytentry.size() - 1);//最后一行的数据
|
||||
Date shkd_jtenddate = dynamicObject.getDate("shkd_ytenddate");
|
||||
|
|
@ -148,6 +151,36 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn {
|
|||
SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)});
|
||||
this.getView().updateView("shkd_ytentry");
|
||||
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