package tqq9.lc123.cloud.app.plugin.form.sys; import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.operate.result.IOperateInfo; import kd.bos.entity.operate.result.OperationResult; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.ShowType; import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.events.ClosedCallBackEvent; import kd.bos.list.BillList; import kd.bos.list.plugin.AbstractListPlugin; 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.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; import tqq9.lc123.cloud.app.api.utils.Constants; import java.util.*; /** * 供应商列表插件 */ public class SupplierFormPlugin extends AbstractListPlugin implements Plugin { private final static Log logger = LogFactory.getLog(SupplierFormPlugin.class); @Override public void beforeItemClick(BeforeItemClickEvent evt) { super.beforeItemClick(evt); String itemKey = evt.getItemKey(); if ("tqq9_qyzzbg".equals(itemKey)) { BillList billList = this.getControl(AbstractListPlugin.BILLLISTID); ListSelectedRowCollection selectedRows = billList.getSelectedRows(); if (selectedRows.size() > 0) { HashSet ids = new HashSet<>(); StringBuilder errorMsg = new StringBuilder(); Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues(); for (Object primaryKeyValue : primaryKeyValues) { ids.add(primaryKeyValue); } DynamicObject[] bd_suppliers = BusinessDataServiceHelper.load("bd_supplier", "id,number,status,enable,tqq9_mulcombofield1,createorg", new QFilter[]{new QFilter("id", QCP.in, ids)}); for (DynamicObject bd_supplier : bd_suppliers) { String number = bd_supplier.getString("number"); String status = bd_supplier.getString("status"); if (!StringUtils.equals("C", status)) { errorMsg.append(",").append("供应商编码 " + number + "未审核"); } String enable = bd_supplier.getString("enable"); if (!StringUtils.equals("1", enable)) { errorMsg.append(",").append("供应商编码 " + number + "未启用"); } } if (errorMsg.length() > 0) { this.getView().showErrorNotification(errorMsg.substring(1)); } FormShowParameter param = new FormShowParameter(); param.setFormId("tqq9_gysqyzz"); param.setCloseCallBack(new CloseCallBack(this, "updateFilter")); param.setCustomParam("ids", ids.toString()); param.getOpenStyle().setShowType(ShowType.Modal); this.getView().showForm(param); } else { this.getView().showErrorNotification("请先选中供应商数据"); } } } @Override public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) { super.closedCallBack(closedCallBackEvent); if (closedCallBackEvent.getActionId().equals("updateFilter")) { Object returnData = closedCallBackEvent.getReturnData(); if (returnData != null) { Map data = (Map) returnData; Boolean isContinue = (Boolean) data.get("isContinue"); if (isContinue == null || !isContinue) { return; } String tqq9_qyzz = data.get("tqq9_qyzz").toString(); String tqq9_ids = data.get("tqq9_ids").toString(); String[] stringArray = tqq9_ids.substring(1, tqq9_ids.length() - 1).split(", "); List longList = new ArrayList<>(); for (String str : stringArray) { longList.add(Long.parseLong(str)); } HashMap supplierMap = new HashMap<>(); StringBuilder stringBuilder = new StringBuilder(); DynamicObject[] bd_suppliers = BusinessDataServiceHelper.load("bd_supplier", "id,number,status,enable,tqq9_mulcombofield1,createorg", new QFilter[]{new QFilter("id", QCP.in, longList)}); for (DynamicObject bd_supplier : bd_suppliers) { supplierMap.put(bd_supplier.get("id"),bd_supplier.getString("number")); } OperateOption operateOption = OperateOption.create(); OperationResult unauditResult = OperationServiceHelper.executeOperate(Constants.TYPE_UNAUDIT, "bd_supplier", bd_suppliers, operateOption); if(!unauditResult.isSuccess()){ List allErrorOrValidateInfo = unauditResult.getAllErrorOrValidateInfo(); for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) { String supNumber = supplierMap.get(iOperateInfo.getPkValue()); stringBuilder.append(",").append("编码为 ").append(supNumber).append(" 的供应商反审核失败,请手动修改供应商区域资质变更"); } } List successPkIds = unauditResult.getSuccessPkIds(); DynamicObject[] bd_suppliers1 = BusinessDataServiceHelper.load("bd_supplier", "id,number,status,enable,tqq9_mulcombofield1", new QFilter[]{new QFilter("id", QCP.in, successPkIds)}); for (DynamicObject dynamicObject : bd_suppliers1) { dynamicObject.set("tqq9_mulcombofield1",tqq9_qyzz); } OperationResult sumbitResult = OperationServiceHelper.executeOperate(Constants.TYPE_SUBMIT, "bd_supplier", bd_suppliers1, operateOption); if (!sumbitResult.isSuccess()) { List allErrorOrValidateInfo = unauditResult.getAllErrorOrValidateInfo(); for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) { String supNumber = supplierMap.get(iOperateInfo.getPkValue()); stringBuilder.append(",").append("编码为 ").append(supNumber).append(" 的供应商提交失败,请手动提交"); } } if(stringBuilder.length()>0){ this.getView().showErrorNotification(stringBuilder.substring(1)); return; } } } } }