parent
							
								
									a0dc516be4
								
							
						
					
					
						commit
						7a5e390d20
					
				| 
						 | 
				
			
			@ -0,0 +1,144 @@
 | 
			
		|||
package shkd.sys.sys.plugin.form;
 | 
			
		||||
 | 
			
		||||
import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
			
		||||
import kd.bos.form.events.BeforeDoOperationEventArgs;
 | 
			
		||||
import kd.bos.form.operate.AbstractOperate;
 | 
			
		||||
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.sdk.plugin.Plugin;
 | 
			
		||||
import kd.tmc.am.common.errorcode.ErrorCodeUtils;
 | 
			
		||||
import kd.tmc.am.common.exception.AmException;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 开户申请单据插件
 | 
			
		||||
 */
 | 
			
		||||
public class AccountApplicationBillPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
    private static final Log logger = LogFactory.getLog(AccountApplicationBillPlugin.class);
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void propertyChanged(PropertyChangedArgs args) {
 | 
			
		||||
        super.propertyChanged(args);
 | 
			
		||||
 | 
			
		||||
        String propName = args.getProperty().getName();
 | 
			
		||||
        if ("bank".equals(propName) || "openorg".equals(propName) || "issetbankinterface".equals(propName)) {
 | 
			
		||||
 | 
			
		||||
            try {
 | 
			
		||||
                DynamicObject dataEntity = this.getModel().getDataEntity(true);
 | 
			
		||||
 | 
			
		||||
                boolean issetbankinterface = dataEntity.getBoolean("issetbankinterface");
 | 
			
		||||
                if (!issetbankinterface) {
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 开户公司
 | 
			
		||||
                DynamicObject openorg = dataEntity.getDynamicObject("openorg");
 | 
			
		||||
                // 开户行
 | 
			
		||||
                DynamicObject bank = dataEntity.getDynamicObject("bank");
 | 
			
		||||
                logger.info("获取开户行信息:{}", bank);
 | 
			
		||||
 | 
			
		||||
                if (openorg == null || bank == null) {
 | 
			
		||||
                    logger.info("开发的前置条件不满足,无需触发逻辑");
 | 
			
		||||
                    return;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // 查询银企接口下拉列表赋值情况
 | 
			
		||||
//                EBGetLoginListResult loginListResult = BankServiceHelper.getLoginListResult(this.getModel().getDataEntity());
 | 
			
		||||
//                Map<String, String> bankVersionMap = loginListResult.getLoginMap();
 | 
			
		||||
//                logger.info("获取银行版本列表成功:{}", bankVersionMap);
 | 
			
		||||
//                ArrayList<ComboItem> bankVersionItems = new ArrayList<>(bankVersionMap.size());
 | 
			
		||||
//                bankVersionMap.forEach((key, value) ->
 | 
			
		||||
//                        bankVersionItems.add(
 | 
			
		||||
//                                new ComboItem(new LocaleString(value + "  " + key), key)
 | 
			
		||||
//                        )
 | 
			
		||||
//                );
 | 
			
		||||
 | 
			
		||||
                // 获取开户公司
 | 
			
		||||
                Long openorg_id = (Long)openorg.getPkValue();
 | 
			
		||||
                logger.info("获取开户公司ID:{}", openorg_id);
 | 
			
		||||
 | 
			
		||||
                // 银行类型
 | 
			
		||||
                DynamicObject bank_cate = bank.getDynamicObject("bank_cate");
 | 
			
		||||
                String bank_cate_name = bank_cate.getString("name");
 | 
			
		||||
 | 
			
		||||
                DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("shkd_bankorg",
 | 
			
		||||
                        "id,billno,shkd_name,shkd_hforg,shkd_frontendprotype",
 | 
			
		||||
                        new QFilter("billno", QCP.not_equals, "").toArray());
 | 
			
		||||
 | 
			
		||||
                // 前置机类型
 | 
			
		||||
                String qzjlx = "";
 | 
			
		||||
 | 
			
		||||
                for (DynamicObject dynamicObject : dynamicObjects) {
 | 
			
		||||
                    // 获取多选基础资料业务单元(推送组织)
 | 
			
		||||
                    ArrayList<Long> orgArray = new ArrayList<>();
 | 
			
		||||
                    DynamicObjectCollection orgArr = dynamicObject.getDynamicObjectCollection("shkd_hforg");
 | 
			
		||||
                    for (DynamicObject orgData : orgArr) {
 | 
			
		||||
                        orgArray.add(orgData.getLong("fbasedataid_Id"));
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if (orgArray.contains(openorg_id)) {
 | 
			
		||||
                        qzjlx = dynamicObject.getString("shkd_frontendprotype");
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                String configureAliases = qzjlx + "_" + bank_cate_name;
 | 
			
		||||
 | 
			
		||||
                logger.info("获取前置机类型_银行类型:{}", configureAliases);
 | 
			
		||||
 | 
			
		||||
                DynamicObject[] aqap_bank_logins = BusinessDataServiceHelper.load("aqap_bank_login", "id,number,name,alias", new QFilter("alias", QCP.equals, configureAliases).toArray());
 | 
			
		||||
 | 
			
		||||
                if (aqap_bank_logins.length > 0) {
 | 
			
		||||
                    DynamicObject aqap_bank_login = aqap_bank_logins[0];
 | 
			
		||||
                    this.getModel().setValue("bankinterface", aqap_bank_login.getString("number"));
 | 
			
		||||
                } else {
 | 
			
		||||
                    this.getModel().setValue("bankinterface", "");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            } catch (Exception exception) {
 | 
			
		||||
                throw new AmException(ErrorCodeUtils.create("errorCode", exception.getMessage()));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
 | 
			
		||||
        super.beforeDoOperation(args);
 | 
			
		||||
        AbstractOperate argsSource = (AbstractOperate)args.getSource();
 | 
			
		||||
        if("submit".equals(argsSource.getOperateKey())){
 | 
			
		||||
            DynamicObject dataEntity = this.getModel().getDataEntity(true);
 | 
			
		||||
            DynamicObject company = dataEntity.getDynamicObject("company");
 | 
			
		||||
 | 
			
		||||
            DynamicObject[] dynamicObjects = BusinessDataServiceHelper.load("am_accountbank", "id," +
 | 
			
		||||
                            "company,openorg,bankaccountnumber,shkd_sfjhxh,shkd_nxhrq,shkd_bxfyy,bank",
 | 
			
		||||
                    new QFilter("company", QCP.equals, company.getPkValue()).toArray());
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (dynamicObjects != null) {
 | 
			
		||||
                for (DynamicObject dynamicObject : dynamicObjects) {
 | 
			
		||||
                    DynamicObject bank = dynamicObject.getDynamicObject("bank");
 | 
			
		||||
                    String name = bank.getString("name");
 | 
			
		||||
                    if (name.contains("结算中心")) {
 | 
			
		||||
                        continue;
 | 
			
		||||
                    }
 | 
			
		||||
                    Object shkd_sfjhxh = dynamicObject.get("shkd_sfjhxh");
 | 
			
		||||
                    if (shkd_sfjhxh == null || "".equals(shkd_sfjhxh.toString())) {
 | 
			
		||||
                        args.setCancel(true);
 | 
			
		||||
                        this.getView().showTipNotification("请至【银行账户】补全下方已开立银行账户信息的【是否计划销户】字段");
 | 
			
		||||
                        args.setCancelMessage("请至【银行账户】补全下方已开立银行账户信息的【是否计划销户】字段");
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
package shkd.sys.sys.plugin.form;
 | 
			
		||||
 | 
			
		||||
import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.datamodel.IBillModel;
 | 
			
		||||
import kd.bos.form.FormShowParameter;
 | 
			
		||||
import kd.bos.form.ShowType;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
 | 
			
		||||
import kd.tmc.fbp.common.util.EmptyUtil;
 | 
			
		||||
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 销户申请单据插件
 | 
			
		||||
 */
 | 
			
		||||
public class AccountClosureBillPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterCreateNewData(EventObject e) {
 | 
			
		||||
        super.afterCreateNewData(e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterBindData(EventObject e) {
 | 
			
		||||
        super.afterBindData(e);
 | 
			
		||||
        DynamicObject company = (DynamicObject)this.getModel().getValue("company");
 | 
			
		||||
        this.showDynamicBill(company);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void showDynamicBill(DynamicObject company) {
 | 
			
		||||
        Object id = 0L;
 | 
			
		||||
        if (company != null) {
 | 
			
		||||
            id = company.getPkValue();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        FormShowParameter formShowParameter = new FormShowParameter();
 | 
			
		||||
        formShowParameter.getOpenStyle().setShowType(ShowType.InContainer);
 | 
			
		||||
        formShowParameter.getOpenStyle().setTargetKey("shkd_acctbanklistflex");
 | 
			
		||||
        formShowParameter.setFormId("am_acctbanklist");
 | 
			
		||||
        formShowParameter.setSendToClient(true);
 | 
			
		||||
        formShowParameter.setCustomParam("companyid", id);
 | 
			
		||||
        this.getView().showForm(formShowParameter);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,41 @@
 | 
			
		|||
package shkd.sys.sys.plugin.form;
 | 
			
		||||
 | 
			
		||||
import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.form.FormShowParameter;
 | 
			
		||||
import kd.bos.form.ShowType;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 变更申请表单插件
 | 
			
		||||
 */
 | 
			
		||||
public class ChangeBillPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterCreateNewData(EventObject e) {
 | 
			
		||||
        super.afterCreateNewData(e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterBindData(EventObject e) {
 | 
			
		||||
        super.afterBindData(e);
 | 
			
		||||
        DynamicObject company = (DynamicObject)this.getModel().getValue("company");
 | 
			
		||||
        this.showDynamicBill(company);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void showDynamicBill(DynamicObject company) {
 | 
			
		||||
        Object id = 0L;
 | 
			
		||||
        if (company != null) {
 | 
			
		||||
            id = company.getPkValue();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        FormShowParameter formShowParameter = new FormShowParameter();
 | 
			
		||||
        formShowParameter.getOpenStyle().setShowType(ShowType.InContainer);
 | 
			
		||||
        formShowParameter.getOpenStyle().setTargetKey("shkd_acctbanklistflex");
 | 
			
		||||
        formShowParameter.setFormId("am_acctbanklist");
 | 
			
		||||
        formShowParameter.setSendToClient(true);
 | 
			
		||||
        formShowParameter.setCustomParam("companyid", id);
 | 
			
		||||
        this.getView().showForm(formShowParameter);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
package shkd.sys.sys.plugin.operation;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 | 
			
		||||
import kd.bos.entity.plugin.args.BeforeOperationArgs;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 单据操作插件
 | 
			
		||||
 */
 | 
			
		||||
public class AccountOpeningProcessOP extends AbstractOperationServicePlugIn implements Plugin {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
 | 
			
		||||
        super.beforeExecuteOperationTransaction(e);
 | 
			
		||||
        String operationKey = e.getOperationKey();
 | 
			
		||||
        if ("savecheck".equals(operationKey)) {
 | 
			
		||||
            DynamicObject[] dataEntities = e.getDataEntities();
 | 
			
		||||
            DynamicObject dataEntity = dataEntities[0];
 | 
			
		||||
            // 开通网上银行
 | 
			
		||||
            boolean isopenbank = dataEntity.getBoolean("isopenbank");
 | 
			
		||||
            // 虚拟账户
 | 
			
		||||
            boolean isvirtual = dataEntity.getBoolean("isvirtual");
 | 
			
		||||
 | 
			
		||||
            boolean isOperation = false;
 | 
			
		||||
            StringBuilder cancelMessage = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
            // 如果勾选了开通网上银行,需判断除审批金额上限外的所有字段都为必录
 | 
			
		||||
            if (isopenbank) {
 | 
			
		||||
                DynamicObjectCollection netbankgrantentity = dataEntity.getDynamicObjectCollection("netbankgrantentity");
 | 
			
		||||
                if (!netbankgrantentity.isEmpty()) {
 | 
			
		||||
                    for (DynamicObject dynamicObject : netbankgrantentity) {
 | 
			
		||||
                        // 操作员
 | 
			
		||||
                        Object operator = dynamicObject.get("operator");
 | 
			
		||||
                        // 实物编码
 | 
			
		||||
                        Object goods = dynamicObject.get("goods");
 | 
			
		||||
                        if (operator == null || goods == null) {
 | 
			
		||||
                            isOperation = true;
 | 
			
		||||
                            cancelMessage.append("网银信息页签的操作员和实物编码字段必填").append("\n");
 | 
			
		||||
                            break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    isOperation = true;
 | 
			
		||||
                    cancelMessage.append("请填写网银信息页签的网银权限信息").append("\n");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 如果没有勾选虚拟账户,需判断预留印鉴所有字段都为必填
 | 
			
		||||
            if (!isvirtual) {
 | 
			
		||||
                DynamicObjectCollection entrysignetentity = dataEntity.getDynamicObjectCollection("entrysignetentity");
 | 
			
		||||
 | 
			
		||||
                if (!entrysignetentity.isEmpty()) {
 | 
			
		||||
                    for (DynamicObject dynamicObject : entrysignetentity) {
 | 
			
		||||
                        // 印鉴类型
 | 
			
		||||
                        Object signettype = dynamicObject.get("signettype");
 | 
			
		||||
                        // 印鉴名称
 | 
			
		||||
                        Object signetname = dynamicObject.get("signetname");
 | 
			
		||||
                        // 印鉴保管人
 | 
			
		||||
                        Object signetkeeper = dynamicObject.get("signetkeeper");
 | 
			
		||||
                        if (signettype == null || "".equals(signettype.toString()) || signetname == null || "".equals(signetname.toString()) || signetkeeper == null) {
 | 
			
		||||
                            isOperation = true;
 | 
			
		||||
                            cancelMessage.append("预留印鉴页签的印鉴类型、印鉴名称、印鉴保管人字段必填").append("\n");
 | 
			
		||||
                            break;
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    isOperation = true;
 | 
			
		||||
                    cancelMessage.append("请填写预留印鉴页签的预留印鉴信息").append("\n");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (isOperation) {
 | 
			
		||||
                e.setCancel(true);
 | 
			
		||||
                e.setCancelMessage(cancelMessage.toString());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue