提交人:陈绍鑫

日期:2025/10/31 18:30
内容:收款处理表单插件
This commit is contained in:
陈绍鑫 2025-10-31 17:51:30 +08:00
parent 210c62f928
commit 65a20c9dc5
1 changed files with 35 additions and 10 deletions

View File

@ -1,6 +1,5 @@
package shkd.sys.sys.plugin.form;
import dm.jdbc.util.StringUtil;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.data.BusinessDataReader;
import kd.bos.dataentity.OperateOption;
@ -22,7 +21,6 @@ import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.IPageCache;
import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.RefBillEdit;
@ -31,21 +29,18 @@ import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.form.operate.AbstractOperate;
import kd.bos.form.operate.botp.Push;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.list.ListShowParameter;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.botp.ConvertServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.bos.util.StringUtils;
import kd.fi.cas.enums.SettleMentTypeEnum;
import kd.fi.cas.helper.SystemParameterHelper;
import kd.fi.cas.util.EmptyUtil;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -118,10 +113,12 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
if (operationResult.isSuccess()){
//成功
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"取消完成成功");
removeywclid(cdm_drafttradebill);
}else {
//失败
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"取消完成失败");
this.getView().showSuccessNotification("单据编号"+cdm_drafttradebill.getString("billno")+"取消确认完成失败,请检查并手动取消完成");
removeywclid(cdm_drafttradebill);
}
// this.getModel().setValue("draftbill",null);
// this.getModel().setValue("settletnumber",null);
@ -137,10 +134,12 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
if (operationResult.isSuccess()){
//成功
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"取消完成成功");
removeywclid(cdm_drafttradebill);
}else {
//失败
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"取消完成失败");
this.getView().showSuccessNotification("单据编号"+cdm_drafttradebill.getString("billno")+"取消确认完成失败,请检查并手动取消完成");
removeywclid(cdm_drafttradebill);
}
this.getModel().setValue("draftbill",null);
this.getModel().setValue("settletnumber",null);
@ -202,8 +201,16 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
DynamicObject dataEntity = this.getModel().getDataEntity();
DynamicObject org = dataEntity.getDynamicObject("org");//收款公司
QFilter qFilter = new QFilter("company.id", QFilter.equals, org.getLong("id"));
showParameter.getListFilterParameter().setFilter(qFilter);
QFilter qFilter1 = new QFilter("company.id", QFilter.equals, org.getLong("id"));
qFilter1=qFilter1.and("tradetype", QCP.in,Arrays.asList("collect", "discount"));//票据托收 票据贴现
qFilter1=qFilter1.and("draftbilltranstatus",QCP.not_equals,"success");//交易不成功
QFilter qFilter2 = new QFilter("company.id", QFilter.equals, org.getLong("id"));
qFilter2=qFilter2.and("drafttype.billmedium",QCP.equals,"2");//电票
qFilter2=qFilter2.and("tradetype", QCP.in,Arrays.asList("collect", "discount"));//票据托收 票据贴现
qFilter2=qFilter2.and("draftbilltranstatus",QCP.equals,"success");//交易成功
qFilter2=qFilter2.and(new QFilter("shkd_glsfkdid",QCP.equals,0L).or(new QFilter("shkd_glsfkdid",QCP.equals,null)));//未关联收付款单id
showParameter.getListFilterParameter().setFilter(qFilter1.or(qFilter2));
}
}
@ -337,7 +344,6 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
public void doDraw(ConvertOpParameter opParameter, ListSelectedRowCollection srcRows,DynamicObject cdm_drafttradebill) {
if (srcRows != null && srcRows.size() != 0) {
int cas_draftinfosize=((DynamicObjectCollection)this.getModel().getDataEntity(true).get("cas_draftinfo")).size();
int entrysize=((DynamicObjectCollection)this.getModel().getDataEntity(true).get("entry")).size();
String sourceEntityNumber = opParameter.getDefSourceBill();
String ruleId = opParameter.getDefRuleId();
@ -353,7 +359,6 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
args.getCustomParams().putAll(opParameter.getCustomParams());
ConvertOperationResult result = ConvertServiceHelper.draw(args);
if (result.isSuccess() && result.getCachePageIds().size() != 0) {
IPageCache iPageCache =this.getPageCache();
IRefrencedataProvider refProvider = new IRefrencedataProvider() {
@Override
public void fillReferenceData(Object[] dataEntitys, IDataEntityType type) {
@ -413,10 +418,12 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
if (operationResult.isSuccess()){
//成功
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"确认完成成功");
setywclid(cdm_drafttradebill,this.getView().getModel().getDataEntity().getLong("id"));
}else {
//失败
logger.info("单据编号"+cdm_drafttradebill.getString("billno")+"确认完成失败");
// this.getView().showSuccessNotification("取消确认完成失败,请检查并手动取消完成");
setywclid(cdm_drafttradebill,this.getView().getModel().getDataEntity().getLong("id"));
}
}
@ -429,4 +436,22 @@ public class CasRecbillFormPlugin extends AbstractBillPlugIn implements BeforeF7
}
}
/*
* 设置业务处理票据的关联id
* */
private void setywclid(DynamicObject cdm_drafttradebill, long id){
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(cdm_drafttradebill.getPkValue(), cdm_drafttradebill.getDynamicObjectType().getName());
dynamicObject.set("shkd_glsfkdid",id);
SaveServiceHelper.update(dynamicObject);
}
/*
* 去除业务处理票据的关联id
* */
private void removeywclid(DynamicObject cdm_drafttradebill){
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(cdm_drafttradebill.getPkValue(), cdm_drafttradebill.getDynamicObjectType().getName());
dynamicObject.set("shkd_glsfkdid",null);
SaveServiceHelper.update(dynamicObject);
}
}