parent
e0c6e8ab2e
commit
74268c7dd1
|
@ -0,0 +1,71 @@
|
||||||
|
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.operate.Submit;
|
||||||
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
||||||
|
import kd.bos.logging.Log;
|
||||||
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对公报销单去年合同提醒插件
|
||||||
|
*/
|
||||||
|
public class PublicreimbursebillContractPlugin extends AbstractBillPlugIn implements Plugin{
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(PublicreimbursebillContractPlugin.class);
|
||||||
|
//开发商标识
|
||||||
|
private static final String prefix ="zcgj";
|
||||||
|
|
||||||
|
//预付单的关联合同标识
|
||||||
|
private final static String CONTRACT_ENTRY_ENTITY = "contractentry";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
||||||
|
|
||||||
|
if((args.getSource() instanceof Submit) ) {
|
||||||
|
Submit source = (Submit) args.getSource();
|
||||||
|
if (source.getOperateKey().equals("submit")) {
|
||||||
|
//获取当前页面的数据包
|
||||||
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||||
|
//获取单据体数据的集合
|
||||||
|
DynamicObjectCollection goodsEntities=dataEntity.getDynamicObjectCollection(CONTRACT_ENTRY_ENTITY);
|
||||||
|
boolean isMsg = false;
|
||||||
|
for (DynamicObject entryObj : goodsEntities) {
|
||||||
|
//获取合同签订日期
|
||||||
|
Date signdate = entryObj.getDate("signdate");
|
||||||
|
LocalDate localDate = dateToLocalDate(signdate);
|
||||||
|
int signdateYear = localDate.getYear();
|
||||||
|
int currentYear = LocalDate.now().getYear();
|
||||||
|
if(signdateYear<currentYear) {
|
||||||
|
isMsg = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isMsg){
|
||||||
|
this.getView().showTipNotification("去年合同不占用本年预算");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将 java.util.Date 转换为 java.time.LocalDate
|
||||||
|
* @param date java.util.Date
|
||||||
|
* @return java.time.LocalDate
|
||||||
|
*/
|
||||||
|
public static LocalDate dateToLocalDate(Date date) {
|
||||||
|
if (date == null) {
|
||||||
|
throw new IllegalArgumentException("日期不能为 null");
|
||||||
|
}
|
||||||
|
return date.toInstant()
|
||||||
|
.atZone(ZoneId.systemDefault())
|
||||||
|
.toLocalDate();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,8 @@ 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.entity.datamodel.IDataModel;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
import kd.bos.entity.operate.Submit;
|
import kd.bos.entity.operate.Submit;
|
||||||
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
||||||
import kd.bos.logging.Log;
|
import kd.bos.logging.Log;
|
||||||
|
@ -46,7 +48,8 @@ public class TripreimbursebillPlugin extends AbstractBillPlugIn implements Plug
|
||||||
Integer caldaycount = entryentity.getInt("caldaycount");//标准天数
|
Integer caldaycount = entryentity.getInt("caldaycount");//标准天数
|
||||||
//如果选择了上浮20%,则按照上浮20%进行判断
|
//如果选择了上浮20%,则按照上浮20%进行判断
|
||||||
if(isfloating20){
|
if(isfloating20){
|
||||||
BigDecimal multiply = tripstandardamount.multiply(new BigDecimal("1.2")).multiply(new BigDecimal(caldaycount));
|
//BigDecimal multiply = tripstandardamount.multiply(new BigDecimal("1.2")).multiply(new BigDecimal(caldaycount));
|
||||||
|
BigDecimal multiply = tripstandardamount.multiply(new BigDecimal(caldaycount));
|
||||||
//-1表示小于,0是等于,1是大于
|
//-1表示小于,0是等于,1是大于
|
||||||
if(orientryamount.compareTo(multiply) > 0){
|
if(orientryamount.compareTo(multiply) > 0){
|
||||||
this.getView().showTipNotification("报销住宿超出标准!(上浮20%)");
|
this.getView().showTipNotification("报销住宿超出标准!(上浮20%)");
|
||||||
|
@ -73,4 +76,44 @@ public class TripreimbursebillPlugin extends AbstractBillPlugIn implements Plug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
if(name.equals("zcgj_isfloating20")){
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
ChangeData[] changeSet = e.getChangeSet();
|
||||||
|
Boolean isfloating20 = (Boolean)changeSet[0].getNewValue();
|
||||||
|
String zsKey = String.valueOf(model.getValue("zcgj_zs_key"));
|
||||||
|
|
||||||
|
//获取当前费用为住宿的
|
||||||
|
DynamicObjectCollection tripentryCollection = model.getEntryEntity("tripentry");
|
||||||
|
//tripentry.get(0).getDynamicObjectCollection("entryentity").get(2).getDynamicObject("expenseitem").getString("number");
|
||||||
|
for (DynamicObject tripentry : tripentryCollection) {
|
||||||
|
DynamicObjectCollection entryentityCollection = tripentry.getDynamicObjectCollection("entryentity");
|
||||||
|
for (DynamicObject entryentity : entryentityCollection) {
|
||||||
|
DynamicObject expenseitem = entryentity.getDynamicObject("expenseitem");
|
||||||
|
String zsNumber = expenseitem.getString("number");
|
||||||
|
if(zsKey.equals(zsNumber)){
|
||||||
|
BigDecimal orientryamount = entryentity.getBigDecimal("orientryamount");//报销金额
|
||||||
|
BigDecimal tripstandardamount = entryentity.getBigDecimal("tripstandardamount");//差旅标准金额
|
||||||
|
BigDecimal tripstandardamountOld = tripstandardamount;//差旅标准金额
|
||||||
|
|
||||||
|
Integer caldaycount = entryentity.getInt("caldaycount");//标准天数
|
||||||
|
//如果选择了上浮20%,则按照上浮20%进行判断
|
||||||
|
if(isfloating20){
|
||||||
|
BigDecimal multiply = tripstandardamount.multiply(new BigDecimal("1.2"));
|
||||||
|
entryentity.set("tripstandardamount",multiply);
|
||||||
|
}else{
|
||||||
|
entryentity.set("tripstandardamount",tripstandardamountOld);
|
||||||
|
}
|
||||||
|
this.getView().updateView("entryentity");
|
||||||
|
this.getView().showTipNotification(tripstandardamount+" "+tripstandardamountOld);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package zcgj.zcdev.zcdev.fs.plugin.report;
|
package zcgj.zcdev.zcdev.fs.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.context.RequestContext;
|
||||||
import kd.bos.dataentity.resource.ResManager;
|
import kd.bos.dataentity.resource.ResManager;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||||
import kd.bos.entity.report.FilterInfo;
|
import kd.bos.entity.report.FilterInfo;
|
||||||
import kd.bos.entity.report.ReportQueryParam;
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
@ -35,6 +37,15 @@ public class BudgetActuRptListPlugin extends AbstractReportFormPlugin implements
|
||||||
super.packageData(packageDataEvent);
|
super.packageData(packageDataEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initDefaultQueryParam(ReportQueryParam queryParam) {
|
||||||
|
super.initDefaultQueryParam(queryParam);
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
//获取当前登陆人所在组织
|
||||||
|
long orgId = RequestContext.get().getOrgId();
|
||||||
|
model.setValue("zcgj_query_org",orgId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean verifyQuery(ReportQueryParam queryParam) {
|
public boolean verifyQuery(ReportQueryParam queryParam) {
|
||||||
FilterInfo filter = queryParam.getFilter();
|
FilterInfo filter = queryParam.getFilter();
|
||||||
|
@ -46,6 +57,8 @@ public class BudgetActuRptListPlugin extends AbstractReportFormPlugin implements
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCellStyleRules(List<CellStyleRule> cellStyleRules) {
|
public void setCellStyleRules(List<CellStyleRule> cellStyleRules) {
|
||||||
for (String field : FIELDS) {
|
for (String field : FIELDS) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package zcgj.zcdev.zcdev.fs.plugin.report;
|
package zcgj.zcdev.zcdev.fs.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.context.RequestContext;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||||
import kd.bos.entity.report.FilterInfo;
|
import kd.bos.entity.report.FilterInfo;
|
||||||
import kd.bos.entity.report.ReportQueryParam;
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
@ -35,6 +37,15 @@ public class FeeDeductionRptListPlugin extends AbstractReportFormPlugin implemen
|
||||||
super.packageData(packageDataEvent);
|
super.packageData(packageDataEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initDefaultQueryParam(ReportQueryParam queryParam) {
|
||||||
|
super.initDefaultQueryParam(queryParam);
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
//获取当前登陆人所在组织
|
||||||
|
long orgId = RequestContext.get().getOrgId();
|
||||||
|
model.setValue("zcgj_query_org",orgId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean verifyQuery(ReportQueryParam queryParam) {
|
public boolean verifyQuery(ReportQueryParam queryParam) {
|
||||||
FilterInfo filter = queryParam.getFilter();
|
FilterInfo filter = queryParam.getFilter();
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package zcgj.zcdev.zcdev.fs.plugin.report;
|
package zcgj.zcdev.zcdev.fs.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.context.RequestContext;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||||
import kd.bos.entity.report.FilterInfo;
|
import kd.bos.entity.report.FilterInfo;
|
||||||
import kd.bos.entity.report.ReportQueryParam;
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
@ -7,10 +9,11 @@ import kd.bos.report.events.CellStyleRule;
|
||||||
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 领导预算汇总与实际台账
|
* 职务消费台账
|
||||||
* 报表格式化插件
|
* 报表格式化插件
|
||||||
*/
|
*/
|
||||||
public class PositionFeesRptListPlugin extends AbstractReportFormPlugin implements Plugin {
|
public class PositionFeesRptListPlugin extends AbstractReportFormPlugin implements Plugin {
|
||||||
|
@ -33,6 +36,16 @@ public class PositionFeesRptListPlugin extends AbstractReportFormPlugin implemen
|
||||||
super.setMergeColums(columns);
|
super.setMergeColums(columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initDefaultQueryParam(ReportQueryParam queryParam) {
|
||||||
|
super.initDefaultQueryParam(queryParam);
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
//获取当前登陆人所在组织
|
||||||
|
long orgId = RequestContext.get().getOrgId();
|
||||||
|
model.setValue("zcgj_query_org",orgId);
|
||||||
|
model.setValue("zcgj_query_year",new Date());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean verifyQuery(ReportQueryParam queryParam) {
|
public boolean verifyQuery(ReportQueryParam queryParam) {
|
||||||
FilterInfo filter = queryParam.getFilter();
|
FilterInfo filter = queryParam.getFilter();
|
||||||
|
|
Loading…
Reference in New Issue