供方入围添加报名供应商逻辑二开

This commit is contained in:
zengweihai 2024-11-14 18:39:00 +08:00
parent b42bc3afb8
commit 7ff7e30065
1 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,88 @@
package shkd.repc.rebm.formplugin;
import com.grapecity.documents.excel.B;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.repc.rebm.formplugin.bill.SupplierInvitationBidNumEdit;
import kd.repc.resm.business.portrait.IPortraitService;
import kd.repc.resm.business.portrait.PortraitServiceImpl;
public class SupplierInvitationFormPlugin extends SupplierInvitationBidNumEdit {
IPortraitService portraitService = new PortraitServiceImpl();
@Override
public void propertyChanged(PropertyChangedArgs args) {
ChangeData changeData = args.getChangeSet()[0];
String name = args.getProperty().getName();
int rowIndex = changeData.getRowIndex();
DynamicObject newValue;
if ("supplier".equals(name)) {
newValue = (DynamicObject)changeData.getNewValue();
if (newValue == null) {
return;
}
this.suppChanged("supplierentry", "bidnum", "abandonbidnum", newValue, rowIndex);
}else if ("enrollsupplier".equals(name)) {
newValue = (DynamicObject)changeData.getNewValue();
this.suppChanged("supplierenrollentry", "enrollbidnum", "enrollabandonbidnum", newValue, rowIndex);
}
}
@Override
public void suppChanged(String entryName, String bidName, String abandonBidName, DynamicObject newValue, int rowIndex) {
DynamicObject dataEntity = this.getModel().getDataEntity(true);
DynamicObjectCollection supplierentry = this.getModel().getEntryEntity(entryName);
Object suppPk = newValue.getPkValue();
Object belongOrgId = dataEntity.getDynamicObject("bidproject").getDynamicObject("org").getPkValue();
DynamicObject suppRow = (DynamicObject)supplierentry.get(rowIndex);
DynamicObject libraryForBid = this.portraitService.getLibraryForBid(suppPk, belongOrgId);
if (libraryForBid != null) {
Integer bidnum = libraryForBid.getInt("bid_bidnum");
Integer outnum = libraryForBid.getInt("bid_outnum");
suppRow.set(bidName, bidnum);
suppRow.set(abandonBidName, outnum);
DynamicObject supplierstatistic = suppRow.getDynamicObject("enrollsupplierstatistic");
if (supplierstatistic != null) {
supplierstatistic.set("invitedqty", libraryForBid.getInt("bid_shortlistednum"));
supplierstatistic.set("wonqty", libraryForBid.getInt("bid_winningnum"));
if (!"0".equals(supplierstatistic.getString("id"))) {
SaveServiceHelper.update(supplierstatistic);
}
}else {
//todo:根据系统供应商字段匹配当前供应商统计数据
QFilter qFilter = new QFilter("supplier.id", QCP.equals, suppPk);
//获取系统预置供应商统计数据
DynamicObject rebm_supplierstatistic = BusinessDataServiceHelper.loadSingle("rebm_supplierstatistic", qFilter.toArray());
DynamicObject resm_official_supplier = BusinessDataServiceHelper.loadSingle(suppPk, "resm_official_supplier");
DynamicObjectCollection entry_linkman = resm_official_supplier.getDynamicObjectCollection("entry_linkman");//查询联系人分录数据
for (DynamicObject dynamicObject : entry_linkman) {
boolean isdefault_linkman = dynamicObject.getBoolean("isdefault_linkman");
boolean isopenaccount = dynamicObject.getBoolean("isopenaccount");
if (isopenaccount && isdefault_linkman){
suppRow.set("enrollsuppliercontact",dynamicObject.getString("contactperson"));//联系人名称
String contactphone = dynamicObject.getString("contactphone");
if (contactphone.contains("+86-")){
String substring = contactphone.substring(4, contactphone.length());
suppRow.set("enrollcontactphone",substring);//手机号
}else {
suppRow.set("enrollcontactphone",contactphone);//手机号
}
suppRow.set("enrollemail",dynamicObject.getString("contactemail"));//手机号
break;
}
}
suppRow.set("enrollsupplierstatistic",rebm_supplierstatistic);
}
this.getView().updateView(entryName);
}
}
}