Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
陈绍鑫 2026-01-08 10:26:29 +08:00
commit 06cc7a55c9
4 changed files with 162 additions and 1 deletions

View File

@ -9,6 +9,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 客户API保存插件
@ -17,6 +19,7 @@ import java.util.Map;
public class CustomerSavePlugin implements Serializable, ApiSavePlugin {
private static final long serialVersionUID = -1233066349290656167L;
private static final Log logger = LogFactory.getLog(CustomerSavePlugin.class);
@Override
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
logger.info("API起始推送数据 → 客户分录信息 → " + reqData);
@ -25,6 +28,19 @@ public class CustomerSavePlugin implements Serializable, ApiSavePlugin {
Map<String, Object> group = (Map<String, Object>) oneLevel.get("group");
String groupNumber = group.get("number").toString();
Object regcapital = oneLevel.get("regcapital");
if (regcapital != null) {
String regcapitalString = regcapital.toString();//xx万元
oneLevel.put("regcapital", convertCurrency(regcapitalString));
}
Object shkd_vendorcategory = oneLevel.get("shkd_vendorcategory");
if (shkd_vendorcategory != null) {
String shkd_vendorcategoryString = shkd_vendorcategory.toString();//I_65
oneLevel.put("shkd_vendorcategory", extractAfterUnderscore(shkd_vendorcategoryString));
}
List<Map<String, Object>> entryGroupstandard = new ArrayList<>();
Map<String, Object> twoLevel = new HashMap<>();
@ -45,4 +61,38 @@ public class CustomerSavePlugin implements Serializable, ApiSavePlugin {
logger.info("API最后推送数据 → 客户分录信息 → " + reqData);
return reqData;
}
public static String convertCurrency(String input) {
// 正则表达式匹配数字 + "万人民币"
// \\d+ 匹配一个或多个数字
// 万人民币 是固定文本
Pattern pattern = Pattern.compile("(\\d+万)人民币");
Matcher matcher = pattern.matcher(input);
// 使用StringBuffer来构建结果
StringBuffer result = new StringBuffer();
while (matcher.find()) {
// 将匹配到的"万人民币"替换为"万元"
matcher.appendReplacement(result, matcher.group(1) + "");
}
// 添加剩余部分
matcher.appendTail(result);
return result.toString();
}
public static String extractAfterUnderscore(String input) {
// 使用split方法分割字符串
String[] parts = input.split("_", 2); // 只分割成最多2部分
// 如果分割后有多于1部分说明有下划线
if (parts.length > 1) {
return parts[1]; // 返回下划线后的内容
}
// 没有下划线返回原字符串
return input;
}
}

View File

@ -9,6 +9,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 供应商分录API保存插件
@ -24,6 +26,18 @@ public class SupplierSavePlugin implements Serializable, ApiSavePlugin {
Map<String, Object> group = (Map<String, Object>) oneLevel.get("group");
String groupNumber = group.get("number").toString();
Object regcapital = oneLevel.get("regcapital");
if (regcapital != null) {
String regcapitalString = regcapital.toString();//xx万元
oneLevel.put("regcapital", convertCurrency(regcapitalString));
}
Object shkd_vendorcategory = oneLevel.get("shkd_vendorcategory");
if (shkd_vendorcategory != null) {
String shkd_vendorcategoryString = shkd_vendorcategory.toString();//I_65
oneLevel.put("shkd_vendorcategory", extractAfterUnderscore(shkd_vendorcategoryString));
}
List<Map<String, Object>> entryGroupstandard = new ArrayList<>();
Map<String, Object> twoLevel = new HashMap<>();
@ -44,4 +58,37 @@ public class SupplierSavePlugin implements Serializable, ApiSavePlugin {
logger.info("API最后推送数据 → 供应商分录信息 → " + reqData);
return reqData;
}
public static String convertCurrency(String input) {
// 正则表达式匹配数字 + "万人民币"
// \\d+ 匹配一个或多个数字
// 万人民币 是固定文本
Pattern pattern = Pattern.compile("(\\d+万)人民币");
Matcher matcher = pattern.matcher(input);
// 使用StringBuffer来构建结果
StringBuffer result = new StringBuffer();
while (matcher.find()) {
// 将匹配到的"万人民币"替换为"万元"
matcher.appendReplacement(result, matcher.group(1) + "");
}
// 添加剩余部分
matcher.appendTail(result);
return result.toString();
}
public static String extractAfterUnderscore(String input) {
// 使用split方法分割字符串
String[] parts = input.split("_", 2); // 只分割成最多2部分
// 如果分割后有多于1部分说明有下划线
if (parts.length > 1) {
return parts[1]; // 返回下划线后的内容
}
// 没有下划线返回原字符串
return input;
}
}

View File

@ -0,0 +1,64 @@
package shkd.sys.sys.plugin.list;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.resource.promptenum.MultiLangEnumBridge;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.MainEntityType;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.bos.svc.ca.CAModule;
import kd.sdk.plugin.Plugin;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
/**
* 标准单据列表插件
*/
public class CaCertificateListPlugin extends AbstractListPlugin implements Plugin {
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
//获取列表
BillList list = this.getControl("billlistap");
//获取列表选中的行数据
ListSelectedRowCollection selectedRows = list.getSelectedRows();
if ("userphone".equals(itemKey)) {
List<Object> selectedRowPKValues = new ArrayList<>();
for (ListSelectedRow selectedRow : selectedRows) {
selectedRowPKValues.add(selectedRow.getPrimaryKeyValue());
}
selectedRowPKValues = new ArrayList<>(new HashSet<>(selectedRowPKValues));
for (Object primaryKeyValue : selectedRowPKValues) {
DynamicObject bdUsercredentials = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "bd_usercredentials");
Object uname = bdUsercredentials.get("uname");
if (uname == null) {
bdUsercredentials.set("shkd_glyhsjh", "");
SaveServiceHelper.save(new DynamicObject[]{bdUsercredentials});
} else {
DynamicObject[] bdUserandcertrelation = BusinessDataServiceHelper.load("bd_userandcertrelation",
"id,userid,certid", new QFilter("certid", QCP.equals, primaryKeyValue).toArray());
if (bdUserandcertrelation.length > 0) {
DynamicObject dynamicObject = bdUserandcertrelation[0];
DynamicObject bosUser = BusinessDataServiceHelper.loadSingle(dynamicObject.get("userid"), "bos_user");
bdUsercredentials.set("shkd_glyhsjh", bosUser.getString("phone"));
SaveServiceHelper.save(new DynamicObject[]{bdUsercredentials});
}
}
//列表刷新操作
list.refresh();
}
}
}
}

View File

@ -14,7 +14,7 @@ public class AddBillReceivableReportListDataPlugin extends AbstractReportListDat
@Override
public void afterQuery(AfterQueryEvent event) {
DataSet dataSet = event.getDataSet();
dataSet = dataSet.addField("case when shkd_kyje=0 and shkd_zyje=0 then '是' else '否' end", "shkd_sfyxz");//是否已下账
dataSet = dataSet.addField("case when (shkd_kyje=0 or shkd_kyje=null) and (shkd_zyje=0 or shkd_zyje=null) then '是' else '否' end", "shkd_sfyxz");//是否已下账
event.setDataSet(dataSet);
}
}