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