提交司库状态“同步成功” 或 已付款,才能审批通过

This commit is contained in:
zhangzhiguo 2025-07-16 15:28:39 +08:00
parent 567273b4d9
commit e115fd8cd4
1 changed files with 46 additions and 0 deletions

View File

@ -1,8 +1,10 @@
package zcgj.zcdev.zcdev.fs.plugin.form; package zcgj.zcdev.zcdev.fs.plugin.form;
import kd.bos.dataentity.OperateOption;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.utils.StringUtils; import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.IFormView; import kd.bos.form.IFormView;
import kd.bos.form.control.Control; import kd.bos.form.control.Control;
import kd.bos.form.control.events.BeforeClickEvent; import kd.bos.form.control.events.BeforeClickEvent;
@ -13,6 +15,7 @@ import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.ssc.task.formplugin.util.VoucherUtil; import kd.ssc.task.formplugin.util.VoucherUtil;
import java.util.EventObject; import java.util.EventObject;
@ -97,6 +100,48 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin {
QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid));
DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter});
String billstatus = sourceBillObject.getString("billstatus"); String billstatus = sourceBillObject.getString("billstatus");
boolean success = true;
//er_dailyreimbursebiller_publicreimbursebiller_tripreimbursebiller_prepaybill
//判断是否有司库付款通过付款单的结算方式
//获取下推的付款单判断付款单司库付款状态 提交司库状态cnbm_tbskstatussuccess 司库付款状态cnbm_skpayresultpayed
//cas_paybill
DynamicObject[] dynamicObjectOrg = null;
if("er_publicreimbursebill".equals(billnumber) || "er_prepaybill".equals(billnumber)) {//对公报销单预付单查询付款处理单
QFilter billTypeFilter = new QFilter("sourcebilltype",QCP.equals,billnumber);
QFilter billIdFilter = new QFilter("sourcebillid",QCP.equals,Long.valueOf(billid));
//提交司库状态 cnbm_tbskstatus司库付款状态cnbm_skpayresult
dynamicObjectOrg = BusinessDataServiceHelper.load("cas_paybill", "number,cnbm_tbskstatus,cnbm_skpayresult", new QFilter[]{billTypeFilter,billIdFilter});
} else if ("er_dailyreimbursebill".equals(billnumber) || "er_tripreimbursebill".equals(billnumber)){//差旅报销单费用报销单查询代发处理单
//代发处理 cas_agentpaybill
//提交司库状态:cnbm_tbskstatus 司库付款状态cnbm_skpayresult
//提交司库状态 cnbm_tbskstatus司库付款状态cnbm_skpayresult
QFilter billTypeFilter = new QFilter("sourcebilltype",QCP.equals,billnumber);
QFilter billNumberFilter = new QFilter("sourcebillnumber",QCP.equals,billNo);
dynamicObjectOrg = BusinessDataServiceHelper.load("cas_agentpaybill", "number,cnbm_tbskstatus,cnbm_skpayresult", new QFilter[]{billTypeFilter,billNumberFilter});
}
if (dynamicObjectOrg != null && dynamicObjectOrg.length > 0) {
for (DynamicObject dynamicObject : dynamicObjectOrg) {
String tbskstatus = dynamicObject.getString("cnbm_tbskstatus");
String skpayresult = dynamicObject.getString("cnbm_skpayresult");
if(!"success".equals(tbskstatus) || !"payed".equals(skpayresult)) {
success = false;
}
}
}else{
this.getView().showErrorNotification(String.format("没有下游付款处理或代发处理单,无法进行审批。"));
evt.setCancel(true);
return;
}
if(!success){
this.getView().showErrorNotification(String.format("付款处理或代发处理单提交司库状态为同步成功或司库付款状态为已付款时,才能审批通过。"));
evt.setCancel(true);
return;
}
if(!"G".equals(billstatus)) { if(!"G".equals(billstatus)) {
if("er_repaymentbill".equals(billnumber)) { if("er_repaymentbill".equals(billnumber)) {
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。"));
@ -114,6 +159,7 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin {
evt.setCancel(true); evt.setCancel(true);
} }
} }
} }
} }
} }