diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java index 8afce5c..629437c 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/CasRecbillFormPlugin.java @@ -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); + } } \ No newline at end of file