parent
e92e41bf08
commit
d1c48c3279
|
|
@ -9,8 +9,13 @@ import kd.bos.orm.query.QFilter;
|
||||||
import kd.tmc.cfm.common.helper.CfmBillCommonHelper;
|
import kd.tmc.cfm.common.helper.CfmBillCommonHelper;
|
||||||
import kd.tmc.cfm.formplugin.bill.AbstractMultCateTextF7Plugin;
|
import kd.tmc.cfm.formplugin.bill.AbstractMultCateTextF7Plugin;
|
||||||
import kd.tmc.fbp.common.enums.BankAcctStatusEnum;
|
import kd.tmc.fbp.common.enums.BankAcctStatusEnum;
|
||||||
|
import kd.tmc.fbp.common.enums.CreditorTypeEnum;
|
||||||
import kd.tmc.fbp.common.helper.TmcAccountHelper;
|
import kd.tmc.fbp.common.helper.TmcAccountHelper;
|
||||||
import kd.tmc.fbp.common.util.EmptyUtil;
|
import kd.tmc.fbp.common.util.EmptyUtil;
|
||||||
|
import shkd.sys.sys.plugin.form.domain.AddCreditorTypeEnum;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description 抵质押物分录点击债权人弹出对应债权人类型基础资料
|
* @Description 抵质押物分录点击债权人弹出对应债权人类型基础资料
|
||||||
|
|
@ -18,6 +23,12 @@ import kd.tmc.fbp.common.util.EmptyUtil;
|
||||||
* @Date 2025/10/22
|
* @Date 2025/10/22
|
||||||
*/
|
*/
|
||||||
public class DzywBillPlugin extends AbstractMultCateTextF7Plugin implements BeforeF7SelectListener {
|
public class DzywBillPlugin extends AbstractMultCateTextF7Plugin implements BeforeF7SelectListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getEntryProp() {
|
||||||
|
return "entryentity";
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getTypePropName() {
|
protected String getTypePropName() {
|
||||||
return "shkd_zqrlx";
|
return "shkd_zqrlx";
|
||||||
|
|
@ -33,6 +44,37 @@ public class DzywBillPlugin extends AbstractMultCateTextF7Plugin implements Befo
|
||||||
return "shkd_zqrid";
|
return "shkd_zqrid";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getTypeOtherValue() {
|
||||||
|
return AddCreditorTypeEnum.OTHER.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected String getF7FormId(String type) {
|
||||||
|
return AddCreditorTypeEnum.getFormIdByValue(type.toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addCustomParam(String type, ListShowParameter lsp) {
|
||||||
|
if (AddCreditorTypeEnum.INNERUNIT.getValue().equals(type)) {
|
||||||
|
lsp.setCustomParam("orgFuncId", "08");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void addCustomFilter(String type, ListShowParameter lsp) {
|
||||||
|
List<QFilter> lspQFilter = lsp.getListFilterParameter().getQFilters();
|
||||||
|
if (CreditorTypeEnum.BANK.getValue().equals(type)) {
|
||||||
|
lspQFilter.add(new QFilter("finorgtype.type", "=", "0"));
|
||||||
|
} else if (CreditorTypeEnum.SETTLECENTER.getValue().equals(type)) {
|
||||||
|
lspQFilter.add(new QFilter("finorgtype.type", "=", "1"));
|
||||||
|
} else if (CreditorTypeEnum.FINORG.getValue().equals(type)) {
|
||||||
|
lspQFilter.add(new QFilter("finorgtype.type", "not in", Arrays.asList("0", "1")));
|
||||||
|
}
|
||||||
|
|
||||||
|
lspQFilter.add(new QFilter("enable", "=", "1"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeF7Select(BeforeF7SelectEvent evt) {
|
public void beforeF7Select(BeforeF7SelectEvent evt) {
|
||||||
switch (evt.getProperty().getName()) {
|
switch (evt.getProperty().getName()) {
|
||||||
|
|
@ -83,4 +125,5 @@ public class DzywBillPlugin extends AbstractMultCateTextF7Plugin implements Befo
|
||||||
long orgId = fundOrg == null ? 0L : Long.parseLong(fundOrg.getPkValue().toString());
|
long orgId = fundOrg == null ? 0L : Long.parseLong(fundOrg.getPkValue().toString());
|
||||||
return TmcAccountHelper.getAccountBankFilterByOrg(orgId).and("acctstatus", "=", BankAcctStatusEnum.NORMAL.getValue()).and(new QFilter("acctclassify", "!=", "I"));
|
return TmcAccountHelper.getAccountBankFilterByOrg(orgId).and("acctstatus", "=", BankAcctStatusEnum.NORMAL.getValue()).and(new QFilter("acctclassify", "!=", "I"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package shkd.sys.sys.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.utils.StringUtils;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.logging.Log;
|
||||||
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.tmc.fbp.common.helper.TermHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName FilingApplicationFormPlugin
|
||||||
|
* @Description 备案申请表单插件
|
||||||
|
* @Author csx
|
||||||
|
* @date 2025-11-05
|
||||||
|
**/
|
||||||
|
public class FilingApplicationFormPlugin extends AbstractBillPlugIn {
|
||||||
|
|
||||||
|
private static final Log logger = LogFactory.getLog(FilingApplicationFormPlugin.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
if ("shkd_qx".equals(name)){
|
||||||
|
String oldValue = (String) e.getChangeSet()[0].getOldValue();
|
||||||
|
String newValue = (String) e.getChangeSet()[0].getNewValue();
|
||||||
|
if (StringUtils.isEmpty(newValue)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int rowIndex = e.getChangeSet()[0].getRowIndex();
|
||||||
|
if (!newValue.equals(oldValue)){
|
||||||
|
boolean rightFormat = TermHelper.isRightFormat(this.getModel(), this.getView(), newValue);
|
||||||
|
if (!rightFormat){
|
||||||
|
this.getModel().setValue("shkd_qx",oldValue,rowIndex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
package shkd.sys.sys.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
|
import kd.bos.list.ListShowParameter;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.EventObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName FilingApplicationSelectPlugin
|
||||||
|
* @Description 业务单据选择备案申请校验插件
|
||||||
|
* @Author csx
|
||||||
|
* @date 2025-11-05
|
||||||
|
**/
|
||||||
|
public class FilingApplicationSelectPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
||||||
|
|
||||||
|
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
BasedataEdit materialEdit = (BasedataEdit) this.getView().getControl("shkd_baed");
|
||||||
|
if (materialEdit != null) {
|
||||||
|
materialEdit.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||||
|
String name = beforeF7SelectEvent.getProperty().getName();
|
||||||
|
if (name.equals("shkd_baed")) {
|
||||||
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
DynamicObject org = (DynamicObject) this.getModel().getValue("org");
|
||||||
|
if (org==null){
|
||||||
|
this.getView().showTipNotification("请先填写组织信息");
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QFilter qFilter = new QFilter("entryentity.shkd_rzzt", QFilter.equals, org.getLong("id"));
|
||||||
|
showParameter.getListFilterParameter().setFilter(qFilter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
if ("shkd_baed".equals(name)){
|
||||||
|
DynamicObject newValue = (DynamicObject) e.getChangeSet()[0].getNewValue();
|
||||||
|
DynamicObject oldValue = (DynamicObject) e.getChangeSet()[0].getOldValue();
|
||||||
|
if (newValue==null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
BigDecimal shkd_syed = newValue.getBigDecimal("shkd_syed");
|
||||||
|
BigDecimal drawamount = (BigDecimal) this.getModel().getValue("drawamount");
|
||||||
|
if (shkd_syed.compareTo(drawamount)<0){
|
||||||
|
this.getModel().setValue("shkd_baed",null);
|
||||||
|
this.getView().showTipNotification("该备案申请剩余额度不总");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package shkd.sys.sys.plugin.form.domain;
|
||||||
|
|
||||||
|
import kd.tmc.fbp.common.enums.MultiLangEnumBridge;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public enum AddCreditorTypeEnum {
|
||||||
|
BANK("bank", "bd_finorginfo", new MultiLangEnumBridge("银行", "CreditorTypeEnum_0", "tmc-fbp-common")),
|
||||||
|
SETTLECENTER("settlecenter", "bd_finorginfo", new MultiLangEnumBridge("结算中心", "CreditorTypeEnum_5", "tmc-fbp-common")),
|
||||||
|
FINORG("finorg", "bd_finorginfo", new MultiLangEnumBridge("非银行金融机构", "CreditorTypeEnum_1", "tmc-fbp-common")),
|
||||||
|
INNERUNIT("innerunit", "bos_org", new MultiLangEnumBridge("内部单位", "CreditorTypeEnum_2", "tmc-fbp-common")),
|
||||||
|
CUSTOM("custom", "bd_bizpartner", new MultiLangEnumBridge("客商", "CreditorTypeEnum_3", "tmc-fbp-common")),
|
||||||
|
OTHER("other", "fbd_other", new MultiLangEnumBridge("其他", "CreditorTypeEnum_4", "tmc-fbp-common")),
|
||||||
|
//拓展
|
||||||
|
//市场信息(发行场所)
|
||||||
|
SCXX("scxx", "tbd_marketinfo", new MultiLangEnumBridge("市场信息", "CreditorTypeEnum_6", "tmc-fbp-common"));
|
||||||
|
|
||||||
|
private String value;
|
||||||
|
private String formid;
|
||||||
|
private MultiLangEnumBridge name = null;
|
||||||
|
|
||||||
|
private AddCreditorTypeEnum(String value, String formid, MultiLangEnumBridge name) {
|
||||||
|
this.value = value;
|
||||||
|
this.formid = formid;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFormId() {
|
||||||
|
return this.formid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name.loadKDString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getName(String value) {
|
||||||
|
return (String)Arrays.stream(values()).filter((d) -> {
|
||||||
|
return d.value.equals(value);
|
||||||
|
}).map(AddCreditorTypeEnum::getName).findFirst().orElse("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getFormIdByValue(String value) {
|
||||||
|
return (String)Arrays.stream(values()).filter((d) -> {
|
||||||
|
return d.value.equals(value);
|
||||||
|
}).map(AddCreditorTypeEnum::getFormId).findFirst().orElse((String) null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isInnerUnit(String value) {
|
||||||
|
return INNERUNIT.value.equals(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSettleCenter(String value) {
|
||||||
|
return SETTLECENTER.value.equals(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isFinorg(String value) {
|
||||||
|
return FINORG.value.equals(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isCustom(String value) {
|
||||||
|
return CUSTOM.value.equals(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
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.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
|
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||||
|
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.SaveServiceHelper;
|
||||||
|
import shkd.sys.sys.plugin.form.FilingApplicationFormPlugin;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @FileName SubmitOccupyFilingApplication
|
||||||
|
* @Description 提交后触发更新备案申请的占用
|
||||||
|
* @Author csx
|
||||||
|
* @date 2025-11-05
|
||||||
|
**/
|
||||||
|
public class SubmitOccupyFilingApplication extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
|
private static final Log logger = LogFactory.getLog(FilingApplicationFormPlugin.class);
|
||||||
|
|
||||||
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
super.onPreparePropertys(e);
|
||||||
|
e.getFieldKeys().add("billno");
|
||||||
|
e.getFieldKeys().add("shkd_baed");
|
||||||
|
e.getFieldKeys().add("drawamount");
|
||||||
|
e.getFieldKeys().add("billstatus");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||||
|
super.beforeExecuteOperationTransaction(e);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||||
|
super.afterExecuteOperationTransaction(e);
|
||||||
|
logger.info("同步开始");
|
||||||
|
DynamicObject[] dataEntities = e.getDataEntities();
|
||||||
|
for (DynamicObject dataEntity : dataEntities) {
|
||||||
|
DynamicObject shkd_baed = dataEntity.getDynamicObject("shkd_baed");
|
||||||
|
if (shkd_baed!=null){
|
||||||
|
UpdateFilingApplicationData(shkd_baed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// SaveServiceHelper.save(dataEntities);
|
||||||
|
}
|
||||||
|
public void UpdateFilingApplicationData(DynamicObject shkd_baed){
|
||||||
|
QFilter qFilter = new QFilter("billstatus", QCP.in, Arrays.asList("B", "C"));//提交,审核状态
|
||||||
|
//债券发行
|
||||||
|
QFilter zqfxqFilter = qFilter.and(new QFilter("shkd_baed", QCP.equals, shkd_baed.getLong("id")));
|
||||||
|
List<Map<String, Object>> zqfxlist = new ArrayList<>();
|
||||||
|
DynamicObject[] cfm_loanbill_bonds = BusinessDataServiceHelper.load("cfm_loanbill_bond", "id,billno,drawamount", zqfxqFilter.toArray());
|
||||||
|
for (DynamicObject cfm_loanbill_bond : cfm_loanbill_bonds) {
|
||||||
|
Map<String,Object> zqfxmap=new HashMap<>();
|
||||||
|
zqfxmap.put("shkd_djbh",cfm_loanbill_bond.getString("billno"));
|
||||||
|
zqfxmap.put("shkd_djlx","债券发行");
|
||||||
|
zqfxmap.put("shkd_zyje",cfm_loanbill_bond.getBigDecimal("drawamount"));
|
||||||
|
zqfxlist.add(zqfxmap);
|
||||||
|
}
|
||||||
|
// 使用Stream计算shkd_zyje的合计
|
||||||
|
BigDecimal zqfxtotal = zqfxlist.stream() // 将zqfxlist转为Stream
|
||||||
|
.map(map -> (BigDecimal) map.get("shkd_zyje")) // 提取shkd_zyje的值
|
||||||
|
.filter(Objects::nonNull) // 过滤null值
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 求和,初始值为BigDecimal.ZERO
|
||||||
|
|
||||||
|
//银行提款处理
|
||||||
|
QFilter yhtkclqFilter = qFilter.and(new QFilter("shkd_baed", QCP.equals, shkd_baed.getLong("id")));
|
||||||
|
List<Map<String, Object>> yhtkcllist = new ArrayList<>();
|
||||||
|
DynamicObject[] cfm_loanbills = BusinessDataServiceHelper.load("cfm_loanbill", "id,billno,drawamount", yhtkclqFilter.toArray());
|
||||||
|
for (DynamicObject cfm_loanbill : cfm_loanbills) {
|
||||||
|
Map<String,Object> zqfxmap=new HashMap<>();
|
||||||
|
zqfxmap.put("shkd_djbh",cfm_loanbill.getString("billno"));
|
||||||
|
zqfxmap.put("shkd_djlx","银行提款处理");
|
||||||
|
zqfxmap.put("shkd_zyje",cfm_loanbill.getBigDecimal("drawamount"));
|
||||||
|
yhtkcllist.add(zqfxmap);
|
||||||
|
}
|
||||||
|
// 使用Stream计算shkd_zyje的合计
|
||||||
|
BigDecimal yhtkcltotal = yhtkcllist.stream() // 将zqfxlist转为Stream
|
||||||
|
.map(map -> (BigDecimal) map.get("shkd_zyje")) // 提取shkd_zyje的值
|
||||||
|
.filter(Objects::nonNull) // 过滤null值
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 求和,初始值为BigDecimal.ZERO
|
||||||
|
BigDecimal total = yhtkcltotal.add(zqfxtotal);
|
||||||
|
DynamicObject shkd_filingapplication = BusinessDataServiceHelper.loadSingle(shkd_baed.getPkValue(), "shkd_filingapplication");
|
||||||
|
shkd_filingapplication.set("shkd_zyed",yhtkcltotal.add(zqfxtotal));
|
||||||
|
BigDecimal shkd_zed = shkd_filingapplication.getBigDecimal("shkd_zed");
|
||||||
|
shkd_filingapplication.set("shkd_zyed",shkd_zed.subtract(total));
|
||||||
|
DynamicObjectCollection shkd_zyxx = shkd_filingapplication.getDynamicObjectCollection("shkd_zyxx");//占用信息
|
||||||
|
shkd_zyxx.clear();
|
||||||
|
|
||||||
|
for (Map<String, Object> stringObjectMap : yhtkcllist) {
|
||||||
|
DynamicObject dynamicObject = shkd_zyxx.addNew();
|
||||||
|
dynamicObject.set("shkd_djbh",stringObjectMap.get("shkd_djbh"));
|
||||||
|
dynamicObject.set("shkd_djlx",stringObjectMap.get("shkd_djlx"));
|
||||||
|
dynamicObject.set("shkd_zyje",stringObjectMap.get("shkd_zyje"));
|
||||||
|
}
|
||||||
|
for (Map<String, Object> stringObjectMap : zqfxlist) {
|
||||||
|
DynamicObject dynamicObject = shkd_zyxx.addNew();
|
||||||
|
dynamicObject.set("shkd_djbh",stringObjectMap.get("shkd_djbh"));
|
||||||
|
dynamicObject.set("shkd_djlx",stringObjectMap.get("shkd_djlx"));
|
||||||
|
dynamicObject.set("shkd_zyje",stringObjectMap.get("shkd_zyje"));
|
||||||
|
}
|
||||||
|
|
||||||
|
SaveServiceHelper.update(shkd_filingapplication);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue