提交人:陈绍鑫

日期:2025/5/12 16:30
内容:低效账户查询插件
This commit is contained in:
陈绍鑫 2025-05-12 14:24:50 +08:00
parent 111c34decb
commit 2658a006c1
4 changed files with 432 additions and 0 deletions

View File

@ -0,0 +1,178 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package shkd.sys.sys.plugin.form;
import kd.bos.db.DB;
import kd.bos.db.ResultSetHandler;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.tmc.fbp.common.constant.DBRouteConst;
import kd.tmc.fbp.common.enums.RptDateRangeEnum;
import kd.tmc.fbp.common.helper.TmcDataServiceHelper;
import kd.tmc.fbp.common.util.EmptyUtil;
import java.sql.ResultSet;
import java.util.Date;
import java.util.EventObject;
import java.util.HashMap;
import java.util.Map;
public class addDormantSettingEdit extends AbstractFormPlugin {
public static final String DORMANTSET_FID_CACHE = "DORMANTSET_FID_CACHE";
public static final String FTRADECOUNT_MAP = "FTRADECOUNT_MAP";
public static final String FDATARANGE_MAP = "FDATARANGE_MAP";
public addDormantSettingEdit() {
}
public void beforeBindData(EventObject e) {
super.beforeBindData(e);
String dormantsetFid = this.getPageCache().get("DORMANTSET_FID_CACHE");
TXHandle txHandle;
Throwable var4;
String selectStr;
String date;
if (EmptyUtil.isEmpty(dormantsetFid)) {
txHandle = TX.requiresNew();
var4 = null;
try {
selectStr = "SELECT FID FROM T_AM_DORMANTSET ";
Long fid = (Long)DB.query(DBRouteConst.SYS, selectStr, (Object[])null, new ResultSetHandler<Long>() {
public Long handle(ResultSet resultSet) throws Exception {
Long fid;
for(fid = 0L; resultSet.next(); fid = resultSet.getLong(1)) {
}
return fid;
}
});
if (EmptyUtil.isEmpty(fid) || fid == 0L) {
fid = 1L;
Object datarange = this.getModel().getValue("datarange");
date = "";
if (RptDateRangeEnum.CUSTOM.getValue().equals(datarange)) {
Date startDate = (Date)this.getModel().getValue("startdate");
Date endDate = (Date)this.getModel().getValue("enddate");
date = date.concat(RptDateRangeEnum.CUSTOM.getValue()).concat("&").concat(String.valueOf(startDate.getTime()).concat("&").concat(String.valueOf(endDate.getTime())));
} else if (datarange != null) {
date = datarange.toString();
}
Object tradecount = this.getModel().getValue("tradecount");
String insertStr = "INSERT INTO T_AM_DORMANTSET (FID,FTRADECOUNT,FDATARANGE) values (?,?,?)";
TmcDataServiceHelper.execute(DBRouteConst.SYS, insertStr, new Object[]{fid, tradecount, date});
this.getPageCache().put("DORMANTSET_FID_CACHE", String.valueOf(fid));
}
} catch (Throwable var34) {
var4 = var34;
throw var34;
} finally {
if (txHandle != null) {
if (var4 != null) {
try {
txHandle.close();
} catch (Throwable var30) {
var4.addSuppressed(var30);
}
} else {
txHandle.close();
}
}
}
}
txHandle = TX.requiresNew();
var4 = null;
try {
selectStr = "SELECT FTRADECOUNT,FDATARANGE,addcolumn FROM T_AM_DORMANTSET";
Map<String, String> info = (Map)DB.query(DBRouteConst.SYS, selectStr, new Object[0], (rs) -> {
Map<String, String> lockInfo = new HashMap();
if (rs.next()) {
lockInfo.put("FTRADECOUNT_MAP", rs.getString(1));
lockInfo.put("FDATARANGE_MAP", rs.getString(2));
lockInfo.put("addcolumn", rs.getString(3));
}
return lockInfo;
});
String count = (String)info.get("FTRADECOUNT_MAP");
this.getModel().setValue("tradecount", EmptyUtil.isEmpty(count) ? 0L : Long.parseLong(count));
date = (String)info.get("FDATARANGE_MAP");
if (date.contains(RptDateRangeEnum.CUSTOM.getValue())) {
String[] data = date.split("&");
if (data.length == 3) {
date = data[0];
this.getModel().setValue("startdate", new Date(Long.parseLong(data[1])));
this.getModel().setValue("enddate", new Date(Long.parseLong(data[2])));
}
}
String addcolumn = (String)info.get("addcolumn");
String[] addcolumnarray = new String[0];
try {
addcolumnarray = addcolumn.split("&");
} catch (Exception ex) {
}
if (addcolumnarray.length == 2) {
if ("null".equals(addcolumnarray[0])){
this.getModel().setValue("shkd_acctstyle_list", null);
}else {
this.getModel().setValue("shkd_acctstyle_list", addcolumnarray[0]);
}
if ("0".equals(addcolumnarray[1])){
this.getModel().setValue("shkd_acctproperty_list", null);
}else {
this.getModel().setValue("shkd_acctproperty_list", addcolumnarray[1]);
}
}
this.getModel().setValue("datarange", date);
} catch (Throwable var32) {
var4 = var32;
throw var32;
} finally {
if (txHandle != null) {
if (var4 != null) {
try {
txHandle.close();
} catch (Throwable var31) {
var4.addSuppressed(var31);
}
} else {
txHandle.close();
}
}
}
Date startDate = (Date)this.getModel().getValue("startdate");
Date endDate = (Date)this.getModel().getValue("enddate");
if (startDate == null) {
this.getModel().setValue("startdate", new Date());
}
if (endDate == null) {
this.getModel().setValue("enddate", new Date());
}
}
public void afterDoOperation(AfterDoOperationEventArgs args) {
super.afterDoOperation(args);
String operateKey = args.getOperateKey();
OperationResult opResult = args.getOperationResult();
if ("btnok".equals(operateKey) && opResult.isSuccess()) {
this.getView().close();
}
}
}

View File

@ -0,0 +1,24 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package shkd.sys.sys.plugin.operation;
import kd.tmc.fbp.business.opservice.ITmcBizOppService;
import kd.tmc.fbp.business.validate.AbstractTmcBizOppValidator;
import kd.tmc.fbp.opplugin.TmcOperationServicePlugIn;
import shkd.sys.sys.plugin.operation.domain.NewDormantSaveService;
public class addDormantSaveOp extends TmcOperationServicePlugIn {
public addDormantSaveOp() {
}
public ITmcBizOppService getBizOppService() {
return new NewDormantSaveService();
}
public AbstractTmcBizOppValidator getBizOppValidator() {
return null;
}
}

View File

@ -0,0 +1,81 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package shkd.sys.sys.plugin.operation.domain;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.exception.KDException;
import kd.tmc.fbp.business.opservice.AbstractTmcBizOppService;
import kd.tmc.fbp.common.constant.DBRouteConst;
import kd.tmc.fbp.common.enums.RptDateRangeEnum;
import kd.tmc.fbp.common.helper.TmcDataServiceHelper;
import java.util.Date;
public class NewDormantSaveService extends AbstractTmcBizOppService {
public NewDormantSaveService() {
}
public void process(DynamicObject[] dataEntities) throws KDException {
DynamicObject dataEntity = dataEntities[0];
int tradeint = dataEntity.getInt("tradecount");
String datarange = dataEntity.getString("datarange");
Date startDate = dataEntity.getDate("startdate");
Date endDate = dataEntity.getDate("enddate");
String shkd_acctstyle_listString;
String shkd_acctstyle_list = dataEntity.getString("shkd_acctstyle_list");//账户类型
if (shkd_acctstyle_list == null || shkd_acctstyle_list.isEmpty()) {
shkd_acctstyle_listString="null";
}else {
shkd_acctstyle_listString=shkd_acctstyle_list;
}
Long shkd_acctproperty_listLong;//账户用途
DynamicObject shkd_acctproperty_list = dataEntity.getDynamicObject("shkd_acctproperty_list");
if (shkd_acctproperty_list==null){
shkd_acctproperty_listLong=0L;
}else {
shkd_acctproperty_listLong=shkd_acctproperty_list.getLong("id");
}
if (RptDateRangeEnum.CUSTOM.getValue().equals(datarange)) {
datarange = datarange.concat("&").concat(String.valueOf(startDate.getTime()).concat("&").concat(String.valueOf(endDate.getTime())));
}
String addcolumn=shkd_acctstyle_listString.concat("&").concat(String.valueOf(shkd_acctproperty_listLong));
// String updateStr = "UPDATE T_AM_DORMANTSET SET FTRADECOUNT =?,FDATARANGE=?";
String updateStr = "UPDATE T_AM_DORMANTSET SET FTRADECOUNT =?,FDATARANGE=?,addcolumn=?";
try {
TXHandle tx = TX.requiresNew();
Throwable var9 = null;
try {
TmcDataServiceHelper.execute(DBRouteConst.SYS, updateStr, new Object[]{tradeint, datarange,addcolumn});
} catch (Throwable var19) {
var9 = var19;
throw var19;
} finally {
if (tx != null) {
if (var9 != null) {
try {
tx.close();
} catch (Throwable var18) {
var9.addSuppressed(var18);
}
} else {
tx.close();
}
}
}
} catch (Exception var21) {
}
}
}

View File

@ -0,0 +1,149 @@
package shkd.sys.sys.plugin.report;
import kd.bos.algo.DataSet;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.db.DB;
import kd.bos.db.tx.TX;
import kd.bos.db.tx.TXHandle;
import kd.bos.entity.report.AbstractReportListDataPluginExt;
import kd.bos.event.AfterQueryEvent;
import kd.bos.orm.ORM;
import kd.tmc.fbp.common.constant.DBRouteConst;
import kd.tmc.fbp.common.enums.RptDateRangeEnum;
import kd.tmc.fbp.common.util.DateUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class addDormantDataListPlugin extends AbstractReportListDataPluginExt {
@Override
public void afterQuery(AfterQueryEvent event) {
DataSet dataSet = event.getDataSet();
DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(dataSet.copy());
Map<String, Object> settingFilterMap =dormantSettingFilter();
for (Map.Entry<String, Object> entry : settingFilterMap.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (key.equals("shkd_acctstyle_list")&&value!=null){
dataSet = dataSet.filter("acctstyle_list in ('"+value+"')");
continue;
}
if (key.equals("shkd_acctproperty_list")&&value!=null){
dataSet= dataSet.filter("acctproperty_list in ("+value+")");
continue;
}
}
event.setDataSet(dataSet);
}
private static Map<String, Object> dormantSettingFilter() {
HashMap<String, Object> settingFilterMap = new HashMap();
int tradenumber = 5;
String datarange = "sixmonth";
String addcolumn =null;
TXHandle txHandle = TX.requiresNew();
Throwable var4 = null;
try {
String selectStr = "SELECT FTRADECOUNT,FDATARANGE,addcolumn FROM T_AM_DORMANTSET";
Map<String, String> info = (Map) DB.query(DBRouteConst.SYS, selectStr, new Object[0], (rs) -> {
Map<String, String> lockInfo = new HashMap();
if (rs.next()) {
lockInfo.put("FTRADECOUNT_MAP", rs.getString(1));
lockInfo.put("FDATARANGE_MAP", rs.getString(2));
lockInfo.put("addcolumn", rs.getString(3));
}
return lockInfo;
});
if (info.size() != 0) {
tradenumber = Integer.parseInt((String)info.get("FTRADECOUNT_MAP"));
datarange = (String)info.get("FDATARANGE_MAP");
addcolumn = (String)info.get("addcolumn");
}
} catch (Throwable var14) {
var4 = var14;
throw var14;
} finally {
if (txHandle != null) {
if (var4 != null) {
try {
txHandle.close();
} catch (Throwable var13) {
var4.addSuppressed(var13);
}
} else {
txHandle.close();
}
}
}
Date queryStartDate = new Date();
Date queryEndDate = new Date();
if (datarange.contains(RptDateRangeEnum.CUSTOM.getValue())) {
String[] data = datarange.split("&");
if (data.length == 3) {
queryStartDate = new Date(Long.parseLong(data[1]));
queryEndDate = new Date(Long.parseLong(data[2]));
}
} else {
queryStartDate = transRange2Date(datarange);
queryEndDate = DateUtils.getNextDay(DateUtils.getCurrentDate(), 1);
}
String[] addcolumnarray = new String[0];
try {
addcolumnarray = addcolumn.split("&");
} catch (Exception ex) {
settingFilterMap.put("shkd_acctstyle_list", null);
settingFilterMap.put("shkd_acctproperty_list", null);
}
if (addcolumnarray.length == 2) {
if ("null".equals(addcolumnarray[0])){
settingFilterMap.put("shkd_acctstyle_list", null);
}else {
settingFilterMap.put("shkd_acctstyle_list", addcolumnarray[0]);
}
if ("0".equals(addcolumnarray[1])){
settingFilterMap.put("shkd_acctproperty_list", null);
}else {
settingFilterMap.put("shkd_acctproperty_list", addcolumnarray[1]);
}
}
settingFilterMap.put("queryStartDate", queryStartDate);
settingFilterMap.put("queryEndDate", queryEndDate);
settingFilterMap.put("tradenumber", tradenumber);
return settingFilterMap;
}
private static Date transRange2Date(String datarange) {
Date endDate = DateUtils.getNextDay(DateUtils.getCurrentDate(), 1);
Calendar calendar = Calendar.getInstance();
calendar.setTime(endDate);
if (RptDateRangeEnum.ONEMONTH.getValue().equals(datarange)) {
calendar.add(2, -1);
} else if (RptDateRangeEnum.THREEMONTH.getValue().equals(datarange)) {
calendar.add(2, -3);
} else if (RptDateRangeEnum.SIXMONTH.getValue().equals(datarange)) {
calendar.add(2, -6);
} else if (RptDateRangeEnum.NIGHTMONTH.getValue().equals(datarange)) {
calendar.add(2, -9);
} else if (RptDateRangeEnum.ONEYEAR.getValue().equals(datarange)) {
calendar.add(1, -1);
} else if (RptDateRangeEnum.TWOYEAR.getValue().equals(datarange)) {
calendar.add(1, -2);
} else if (RptDateRangeEnum.THREEYEAR.getValue().equals(datarange)) {
calendar.add(1, -3);
}
Date beginDate = DateUtils.getDataFormat(calendar.getTime(), true);
return beginDate;
}
}