开/收票登记期限计算(到期日-开票日)
This commit is contained in:
parent
156aeea2e2
commit
71521179de
|
|
@ -0,0 +1,56 @@
|
||||||
|
package kdsz.zyf25.tmc.cfm.plugin.form.cdm;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.EventObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应收、应付票据共用界面插件
|
||||||
|
*/
|
||||||
|
public class PayAndRecBillPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
Date issueDate = (Date)this.getModel().getValue("issuedate");//出票日期
|
||||||
|
Date expireDate = (Date)this.getModel().getValue("draftbillexpiredate");//票据到期日
|
||||||
|
calculateTerm(issueDate, expireDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
//出票日期、到期日变更时计算票据期限
|
||||||
|
if ("issuedate".equals(name) || "draftbillexpiredate".equals(name)){
|
||||||
|
Date issueDate = (Date)this.getModel().getValue("issuedate");//出票日期
|
||||||
|
Date expireDate = (Date)this.getModel().getValue("draftbillexpiredate");//票据到期日
|
||||||
|
calculateTerm(issueDate, expireDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void calculateTerm(Date issueDate,Date expireDate){
|
||||||
|
// 如果出票日期或到期日为null,则期限为0天
|
||||||
|
if (issueDate == null || expireDate == null){
|
||||||
|
this.getModel().setValue("kdsz_term", 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 将 Date 转换为 LocalDate(忽略时间部分)
|
||||||
|
LocalDate localIssueDate = issueDate.toInstant()
|
||||||
|
.atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDate();
|
||||||
|
|
||||||
|
LocalDate localExpireDate = expireDate.toInstant()
|
||||||
|
.atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDate();
|
||||||
|
|
||||||
|
// 计算天数差
|
||||||
|
long term = Math.abs(ChronoUnit.DAYS.between(localIssueDate, localExpireDate));
|
||||||
|
this.getModel().setValue("kdsz_term", term);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue