共享任务校验逻辑调整

This commit is contained in:
zhangzhiguo 2025-06-26 16:00:34 +08:00
parent 2f45abf406
commit 594a86c755
2 changed files with 40 additions and 13 deletions

View File

@ -15,6 +15,7 @@ import kd.ssc.task.formplugin.util.VoucherUtil;
import java.util.EventObject;
import java.util.Map;
import java.util.Set;
/**
* 我的共享任务审批时增加付款完成校验
@ -42,12 +43,14 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin {
Map<String, Object> customParams = view.getFormShowParameter().getCustomParams();
Long billtypeid = 0L;
Long tasktypeid = 0L;
Long sscid = 0L;
String billnumber = "";
String billid = "";
String billNo = null;
if (customParams != null) {
billtypeid = (Long)customParams.get("billtypeid");//单据类型id
tasktypeid = (Long)customParams.get("tasktypeid");//任务类型id
sscid = (Long)customParams.get("sscid");//任务类型id
billnumber = (String)customParams.get("billnumber");//单据编码单据标识 entityName
billid = (String)customParams.get("billid");//业务单据id
billNo = VoucherUtil.getTaskBillNo(billid);//业务单据编号
@ -55,17 +58,33 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin {
IDataModel model = this.getModel();
String operation = (String)model.getValue("operationgroupfield");
if ("1".equals(operation)) { //如果审批操作是通过
if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) {
QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid));
DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter});
String billstatus = sourceBillObject.getString("billstatus");
if(!"G".equals(billstatus)) {
if("er_repaymentbill".equals(billnumber)) {
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。"));
evt.setCancel(true);
}else{
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。"));
evt.setCancel(true);
QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid);
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为结算时
DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter});
if(tasktypeArray != null && tasktypeArray.length > 0){
DynamicObject tasktype = tasktypeArray[0];
if(tasktypeid.getLong("id") == tasktype.getLong("id")) {
if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) {
QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid));
DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter});
String billstatus = sourceBillObject.getString("billstatus");
if(!"G".equals(billstatus)) {
if("er_repaymentbill".equals(billnumber)) {
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。"));
evt.setCancel(true);
}else if(
"er_dailyreimbursebill".equals(billnumber) || //费用报销单
"er_publicreimbursebill".equals(billnumber) || //对公报销的呢
"er_tripreimbursebill".equals(billnumber) || //差旅报销单
"er_dailyloanbill".equals(billnumber) || //借款单
"er_prepaybill".equals(billnumber) || //预付单
"er_applypaybill".equals(billnumber) || //付款申请单
"cas_paybill".equals(billnumber) //付款处理单
){
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。"));
evt.setCancel(true);
}
}
}
}
}

View File

@ -69,7 +69,7 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn {
DynamicObject tasktypeid = dataEntity.getDynamicObject("tasktypeid");
DynamicObject sscid = dataEntity.getDynamicObject("sscid");
QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid.getLong("id"));
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为结算时
DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter});
if(tasktypeArray != null && tasktypeArray.length > 0){
DynamicObject tasktype = tasktypeArray[0];
@ -84,7 +84,15 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn {
if(!"G".equals(billstatus)) {
if("er_repaymentbill".equals(entityName)) {
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的收款未完成请完成收款后操作。",billnumber,subject));
}else{
}else if(
"er_dailyreimbursebill".equals(entityName) || //费用报销单
"er_publicreimbursebill".equals(entityName) || //对公报销的呢
"er_tripreimbursebill".equals(entityName) || //差旅报销单
"er_dailyloanbill".equals(entityName) || //借款单
"er_prepaybill".equals(entityName) || //预付单
"er_applypaybill".equals(entityName) || //付款申请单
"cas_paybill".equals(entityName) //付款处理单
) {
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的付款未完成请完成付款后操作。",billnumber,subject));
}
}