parent
6da26d6e7f
commit
8823b58060
|
|
@ -2,13 +2,24 @@ package shkd.sys.sys.plugin.form;
|
|||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.RefBillEdit;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
|
||||
import kd.bos.servicehelper.org.OrgViewType;
|
||||
import kd.tmc.fbp.common.helper.TermHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @FileName FilingApplicationFormPlugin
|
||||
|
|
@ -16,17 +27,26 @@ import java.util.EventObject;
|
|||
* @Author csx
|
||||
* @date 2025-11-05
|
||||
**/
|
||||
public class FilingApplicationFormPlugin extends AbstractBillPlugIn {
|
||||
public class FilingApplicationFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(FilingApplicationFormPlugin.class);
|
||||
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit basedataEdit = (BasedataEdit) this.getView().getControl("shkd_rzzt");
|
||||
if (basedataEdit != null) {
|
||||
basedataEdit.addBeforeF7SelectListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCreateNewData(EventObject e) {
|
||||
super.afterCreateNewData(e);
|
||||
//设置默认值
|
||||
//通过插件获取当前切换选择的组织
|
||||
Long id = RequestContext.get().getOrgId();
|
||||
this.getModel().setValue("shkd_ejgs",id);
|
||||
// Long id = RequestContext.get().getOrgId();
|
||||
// this.getModel().setValue("shkd_ejgs",id);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -49,4 +69,25 @@ public class FilingApplicationFormPlugin extends AbstractBillPlugIn {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent evt) {
|
||||
String name = evt.getProperty().getName();
|
||||
if ("shkd_rzzt".equals(name)){
|
||||
DynamicObject shkd_ejgs = (DynamicObject) this.getModel().getValue("shkd_ejgs");
|
||||
if (shkd_ejgs==null){
|
||||
this.getView().showTipNotification("请先填写二级公司");
|
||||
evt.setCancel(true);
|
||||
return;
|
||||
}
|
||||
//获取该组织的全部下级业务单元
|
||||
Long id = shkd_ejgs.getLong("id");//业务单元id
|
||||
List<Long> orgIds = new ArrayList<>(1);
|
||||
orgIds.add(id);
|
||||
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, false);//不包括自己
|
||||
ListShowParameter showParameter = (ListShowParameter) evt.getFormShowParameter();
|
||||
QFilter qFilter = new QFilter("id", QFilter.in, allSubordinateOrgs);
|
||||
showParameter.getListFilterParameter().setFilter(qFilter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import shkd.sys.sys.plugin.form.FilingApplicationFormPlugin;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @FileName SubmitOccupyFilingApplication
|
||||
|
|
@ -58,14 +59,13 @@ public class SubmitOccupyFilingApplication extends AbstractOperationServicePlugI
|
|||
logger.info("同步代码失败");
|
||||
}
|
||||
}
|
||||
// SaveServiceHelper.save(dataEntities);
|
||||
}
|
||||
public void UpdateFilingApplicationData(DynamicObject shkd_baed,DynamicObject dataEntity){
|
||||
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());
|
||||
DynamicObject[] cfm_loanbill_bonds = BusinessDataServiceHelper.load("cfm_loanbill_bond", "id,billno,org.id,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"));
|
||||
|
|
@ -78,26 +78,56 @@ public class SubmitOccupyFilingApplication extends AbstractOperationServicePlugI
|
|||
zqfxmap.put("shkd_djlx","提款处理");
|
||||
}
|
||||
zqfxmap.put("shkd_zyje",cfm_loanbill_bond.getBigDecimal("drawamount"));
|
||||
zqfxmap.put("shkd_org",cfm_loanbill_bond.getLong("org.id"));
|
||||
zqfxlist.add(zqfxmap);
|
||||
}
|
||||
|
||||
//融资租赁fl_leasecontractbill
|
||||
List<Map<String, Object>> rzzllist = new ArrayList<>();
|
||||
DynamicObject[] fl_leasecontractbills = BusinessDataServiceHelper.load("fl_leasecontractbill", "id,billno,org.id,amount", zqfxqFilter.toArray());
|
||||
for (DynamicObject fl_leasecontractbill : fl_leasecontractbills) {
|
||||
Map<String,Object> zqfxmap=new HashMap<>();
|
||||
zqfxmap.put("shkd_djbh",fl_leasecontractbill.getString("billno"));
|
||||
zqfxmap.put("shkd_djlx","融资租赁");
|
||||
zqfxmap.put("shkd_zyje",fl_leasecontractbill.getBigDecimal("amount"));
|
||||
zqfxmap.put("shkd_org",fl_leasecontractbill.getLong("org.id"));
|
||||
rzzllist.add(zqfxmap);
|
||||
}
|
||||
//合并
|
||||
List<Map<String, Object>> hebinList=hebinList(zqfxlist,rzzllist);
|
||||
// 使用Stream计算shkd_zyje的合计
|
||||
BigDecimal zqfxtotal = zqfxlist.stream() // 将zqfxlist转为Stream
|
||||
BigDecimal hebintotal = hebinList.stream() // 将zqfxlist转为Stream
|
||||
.map(map -> (BigDecimal) map.get("shkd_zyje")) // 提取shkd_zyje的值
|
||||
.filter(Objects::nonNull) // 过滤null值
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add); // 求和,初始值为BigDecimal.ZERO
|
||||
|
||||
DynamicObject shkd_filingapplication = BusinessDataServiceHelper.loadSingle(shkd_baed.getPkValue(), "shkd_filingapplication");
|
||||
shkd_filingapplication.set("shkd_zyed",zqfxtotal);
|
||||
DynamicObject shkd_filingapplication = BusinessDataServiceHelper.loadSingle(shkd_baed.getPkValue(), "shkd_filingapplication");//备案申请
|
||||
BigDecimal shkd_zed = shkd_filingapplication.getBigDecimal("shkd_zed");
|
||||
if (shkd_zed.subtract(zqfxtotal).compareTo(BigDecimal.ZERO)<0){
|
||||
if (shkd_zed.subtract(hebintotal).compareTo(BigDecimal.ZERO)<0){
|
||||
this.getOperationResult().addErrorInfo(setErrorMessage(dataEntity, dataEntity.getString("billno")+"失败原因:"+"备案申请余额不足"));
|
||||
return;
|
||||
}
|
||||
shkd_filingapplication.set("shkd_syed",shkd_zed.subtract(zqfxtotal));
|
||||
shkd_filingapplication.set("shkd_zyed",hebintotal);
|
||||
shkd_filingapplication.set("shkd_syed",shkd_zed.subtract(hebintotal));
|
||||
|
||||
//赋值明细每行对应占用金额
|
||||
DynamicObjectCollection entryentity = shkd_filingapplication.getDynamicObjectCollection("entryentity");
|
||||
for (DynamicObject entry : entryentity) {
|
||||
long aLong = entry.getDynamicObject("shkd_rzzt").getLong("id");
|
||||
List<Map<String, Object>> result = hebinList.stream()
|
||||
.filter(map -> aLong==(Long)map.get("shkd_org")) // 根据 shkd_org 字段过滤
|
||||
.collect(Collectors.toList()); // 将结果收集到一个新的列表中
|
||||
BigDecimal sum=BigDecimal.ZERO;
|
||||
for (Map<String, Object> stringObjectMap : result) {
|
||||
sum=sum.add((BigDecimal) stringObjectMap.get("shkd_zyje"));
|
||||
}
|
||||
entry.set("shkd_zyamount",sum);
|
||||
}
|
||||
|
||||
DynamicObjectCollection shkd_zyxx = shkd_filingapplication.getDynamicObjectCollection("shkd_zyxx");//占用信息
|
||||
shkd_zyxx.clear();
|
||||
|
||||
for (Map<String, Object> stringObjectMap : zqfxlist) {
|
||||
//构建占用信息
|
||||
for (Map<String, Object> stringObjectMap : hebinList) {
|
||||
DynamicObject dynamicObject = shkd_zyxx.addNew();
|
||||
dynamicObject.set("shkd_djbh",stringObjectMap.get("shkd_djbh"));
|
||||
dynamicObject.set("shkd_djlx",stringObjectMap.get("shkd_djlx"));
|
||||
|
|
@ -107,6 +137,17 @@ public class SubmitOccupyFilingApplication extends AbstractOperationServicePlugI
|
|||
SaveServiceHelper.save(new DynamicObject[]{shkd_filingapplication});
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 合并集合方法
|
||||
* */
|
||||
private List<Map<String, Object>> hebinList(List<Map<String, Object>> zqfxlist, List<Map<String, Object>> rzzllist) {
|
||||
// 创建一个新的集合来存储合并后的数据
|
||||
List<Map<String, Object>> mergedList = new ArrayList<>(rzzllist); // 将rzzllist的元素拷贝到新集合中
|
||||
mergedList.addAll(zqfxlist); // 将zqfxlist的元素添加到新集合中
|
||||
return mergedList;
|
||||
}
|
||||
|
||||
/*
|
||||
* 返回错误信息对象
|
||||
* */
|
||||
|
|
|
|||
Loading…
Reference in New Issue