采购计划F7超额过滤

This commit is contained in:
李贵强 2025-03-15 11:17:34 +08:00
parent 2cbc4b6036
commit 486001ab85
3 changed files with 193 additions and 113 deletions

View File

@ -29,15 +29,16 @@ public class PurDemandListPlugin extends AbstractListPlugin {
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
e.getQFilters().clear();
IFormView parentView = this.getView().getParentView();
IDataModel model = parentView.getModel();
DynamicObject dataEntity = model.getDataEntity();
IDataEntityType dataEntityType = dataEntity.getDataEntityType();
String name = dataEntityType.getName();
//立项||费用登记
if ("rebm_project".equals(name) || "recon_connotextbill".equals(name) ||"rebm_purplan".equals(name)) {
//立项||采购计划
if ("rebm_project".equals(name) ||"rebm_purplan".equals(name)) {
e.getQFilters().clear();
DynamicObject org = dataEntity.getDynamicObject("org");
if (null != org) {
List<QFilter> qFilters = e.getQFilters();

View File

@ -0,0 +1,70 @@
package shkd.repc.recon.formplugin;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.RefBillEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.EventObject;
import java.util.List;
/**
* 动态表单插件
* 费用登记-
*/
public class ConNoTextBillFromPlugin extends AbstractFormPlugin implements Plugin, BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
RefBillEdit bEdit = this.getView().getControl("qeug_refbillfield");
bEdit.addBeforeF7SelectListener(this);
}
@Override
public void beforeF7Select(BeforeF7SelectEvent evt) {
ListShowParameter formShowParameter = (ListShowParameter) evt.getFormShowParameter();
ArrayList<Long> canSeeDataId = new ArrayList<>();
//查找所有已审核采购需求数据
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
QFilter qFilter = new QFilter("billstatus", QCP.equals, "C");
qFilter.and(new QFilter("org.name", QCP.equals, org.getString("name")));
DynamicObject[] settlePlanBills = BusinessDataServiceHelper.load("recon_settleplanbill", "id,bill,qeug_applyamount", qFilter.toArray());
//判断申请金额是否被费用登记用完
for (int i = 0; i < settlePlanBills.length; i++) {
DynamicObject settlePlanBill = settlePlanBills[i];
long id = settlePlanBill.getLong("id");
BigDecimal applyAmount = settlePlanBill.getBigDecimal("qeug_applyamount");
BigDecimal allOriAmt=BigDecimal.ZERO;
QFilter qFilter1 = new QFilter("qeug_refbillfield.id", QCP.equals, id);
DynamicObject[] conNoTextBills = BusinessDataServiceHelper.load("recon_connotextbill", "id,oriamt", qFilter1.toArray());
if (conNoTextBills.length!=0){
for (int j = 0; j < conNoTextBills.length; j++) {
DynamicObject conNoTextBill = conNoTextBills[j];
BigDecimal oriAmt = conNoTextBill.getBigDecimal("oriamt");
allOriAmt=allOriAmt.add(oriAmt);
}
}
//还有余额
if (applyAmount.compareTo(allOriAmt)>0){
canSeeDataId.add(id);
}
}
List<QFilter> qFilters = new ArrayList<>();
qFilters.add(new QFilter("id", QCP.in, canSeeDataId));
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
}

View File

@ -68,9 +68,11 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
}
}
private Long newMaterial(String number,Set<ImportMaterial> set){
DynamicObject bd_material = null;
try {
ImportMaterial materialByNumber = getMaterialByNumber(number, set);
DynamicObject bd_material = BusinessDataServiceHelper.newDynamicObject(BD_MATERIAL);
bd_material = BusinessDataServiceHelper.newDynamicObject(BD_MATERIAL);
//物料编码
bd_material.set("number",number);
//物料名称
@ -84,7 +86,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
//物料分类
DynamicObject materialGroup = BusinessDataServiceHelper.loadSingle("bd_materialgroup",(new QFilter("name", QCP.equals, materialByNumber.getMaterialType())).toArray());
if (null==materialGroup){
materialGroup=BusinessDataServiceHelper.loadSingle("bd_materialgroup",(new QFilter("number", QCP.equals, "waitgroup")).toArray());
materialGroup=BusinessDataServiceHelper.loadSingle("bd_materialgroup",(new QFilter("number", QCP.equals, "gc-tlfs")).toArray());
}
//物料分组
bd_material.set("group",materialGroup);
@ -97,7 +99,7 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
newEntry.set("standardid",dynamicObject);
}
//分类
newEntry.set("groupid",materialGroup);
newEntry.set("groupid",materialGroup.getLong("id"));
//物料单位
QFilter unit = new QFilter("name", QCP.equals, materialByNumber.getMaterialUnit());
DynamicObject measureUnits = BusinessDataServiceHelper.loadSingle("bd_measureunits",unit.toArray());
@ -113,12 +115,16 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
bd_material.set("enablesale",true);//可销售
bd_material.set("enableinv",true);//可库存
SaveServiceHelper.save(new DynamicObject[]{bd_material});
} catch (Exception e) {
this.getView().showMessage(e.getMessage());
}
return bd_material.getLong("id");
}
@Override
public void beforeImportEntry(BeforeImportEntryEventArgs e) {
super.beforeImportEntry(e);
try {
materialList.clear();
Set<String> existCodes = new HashSet<>();
@ -190,6 +196,9 @@ public class ContractMaterialImportPlugin extends AbstractFormPlugin {
}
}
}
} catch (Exception ex) {
this.getView().showMessage(ex.getMessage());
}
}