1、运营管理部回填
This commit is contained in:
parent
86e0029d0e
commit
5835b02cf2
Binary file not shown.
Binary file not shown.
@ -0,0 +1,70 @@
|
|||||||
|
package com.awspaas.user.apps.bnbm.datalinkup.job;
|
||||||
|
|
||||||
|
import com.actionsoft.bpms.bo.engine.BO;
|
||||||
|
import com.actionsoft.bpms.commons.database.RowMap;
|
||||||
|
import com.actionsoft.bpms.schedule.IJob;
|
||||||
|
import com.actionsoft.bpms.util.DBSql;
|
||||||
|
import com.actionsoft.sdk.local.SDK;
|
||||||
|
import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange;
|
||||||
|
import com.awspaas.user.apps.bnbm.datalinkup.service.impl.ProductionDataSyncServiceImpl;
|
||||||
|
import com.awspaas.user.apps.bnbm.datalinkup.service.impl.PurchaseDataSummaryServiceImpl;
|
||||||
|
import com.awspaas.user.apps.bnbm.datalinkup.service.impl.PurchaseDataSyncServiceImpl;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: PurchaseDataLinkUpJob
|
||||||
|
* @Description: 运营数据数据同步定时任务
|
||||||
|
*/
|
||||||
|
public class ProductionDataLinkUpJob implements IJob{
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(ProductionDataLinkUpJob.class);
|
||||||
|
@Override
|
||||||
|
public void execute(JobExecutionContext job) throws JobExecutionException {
|
||||||
|
//时间范围数值
|
||||||
|
ArrayList<DateRange> list = new ArrayList<>();
|
||||||
|
ProductionDataSyncServiceImpl syncService = new ProductionDataSyncServiceImpl();
|
||||||
|
// PurchaseDataSummaryServiceImpl purchaseDataSummaryService = new PurchaseDataSummaryServiceImpl();
|
||||||
|
LOGGER.info("======== 开始执行运营数据同步任务 ========");
|
||||||
|
// 查询销售业务的主配置
|
||||||
|
List<BO> mainConfigs = SDK.getBOAPI().query("BO_EU_BNBM_DATALINKUP_SJGTPZ")
|
||||||
|
.addQuery("SSYW =", "运营")
|
||||||
|
.list();
|
||||||
|
// 使用服务层处理同步逻辑
|
||||||
|
ArrayList<DateRange> dateRanges = syncService.syncDataByConfigs(mainConfigs);
|
||||||
|
list.addAll(dateRanges);
|
||||||
|
LOGGER.info("======== 完成运营数据同步任务 ========");
|
||||||
|
|
||||||
|
// 汇总各板块数据
|
||||||
|
LOGGER.info("======== 开始执行运营汇总各板块数据 ========");
|
||||||
|
syncService.sumBkTable(mainConfigs);
|
||||||
|
LOGGER.info("======== 运营汇总各板块数据执行完成 ========");
|
||||||
|
|
||||||
|
//计算汇总维度
|
||||||
|
Set<DateRange> collect = list.stream().filter(o -> o.getStartDate() != null || o.getEndDate() != null)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
DateRange dateRange = new DateRange();
|
||||||
|
for (DateRange range : collect) {
|
||||||
|
if (range!=null || range.getStartDate()==null || range.getEndDate()==null) {
|
||||||
|
dateRange.setStartDate(range.getStartDate());
|
||||||
|
dateRange.setEndDate(range.getEndDate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOGGER.info("运营数据汇总计算开始时间为:{},结束时间为:{}",dateRange.getStartDate(),dateRange.getEndDate());
|
||||||
|
List<RowMap> bkgsMaps = DBSql.getMaps("SELECT BKGS FROM BO_EU_DWD_ORDER_RKD_HZ GROUP BY BKGS");
|
||||||
|
if (bkgsMaps!=null) {
|
||||||
|
for (RowMap map : bkgsMaps) {
|
||||||
|
BO bo = new BO();
|
||||||
|
bo.set("BKGS", map.getString("BKGS"));
|
||||||
|
// purchaseDataSummaryService.calculateSummary(dateRange, bo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOGGER.info("======== 运营数据同步任务执行完成 ========");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
package com.awspaas.user.apps.bnbm.datalinkup.job;
|
||||||
|
|
||||||
|
import com.actionsoft.bpms.bo.engine.BO;
|
||||||
|
import com.actionsoft.bpms.commons.database.RowMap;
|
||||||
|
import com.actionsoft.bpms.schedule.IJob;
|
||||||
|
import com.actionsoft.bpms.server.UserContext;
|
||||||
|
import com.actionsoft.bpms.util.DBSql;
|
||||||
|
import com.actionsoft.sdk.local.SDK;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName: YyglbDbHtJob
|
||||||
|
* @Description: 运营管理部对标回填
|
||||||
|
* @date: 2025/9/29 13:27
|
||||||
|
* @Blog: https://
|
||||||
|
*/
|
||||||
|
public class YyglbDbHtJob implements IJob {
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger(YyglbDbHtJob.class);
|
||||||
|
@Override
|
||||||
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
|
LocalDate now = LocalDate.now().minusMonths(1);
|
||||||
|
int year = now.getYear();
|
||||||
|
int monthValue = now.getMonthValue();
|
||||||
|
//分别遍历龙牌梦牌泰山 护面纸、石膏、煤的对标数量
|
||||||
|
//公式为:当月材料出库数量/当月石膏板折标产量
|
||||||
|
//龙牌取数为:生产出库用量 护面纸取全部、脱硫石膏取物料编码为101115110000130、煤为包含煤、生物质、天然气、蒸汽
|
||||||
|
String[] bkgsArr = new String[]{"龙牌","梦牌","泰山石膏"};
|
||||||
|
HashMap<String, String> wlmcMap = new HashMap<>();
|
||||||
|
wlmcMap.put("护面纸","HMZ");
|
||||||
|
wlmcMap.put("石膏","SG");
|
||||||
|
wlmcMap.put("煤","MEI");
|
||||||
|
ArrayList<BO> boList = new ArrayList<>();
|
||||||
|
|
||||||
|
try {
|
||||||
|
int update = DBSql.update("DELETE FROM BO_EU_YY_WLDHCKB WHERE YEAR = '" + year + "' AND MONTH = '" + monthValue + "'");
|
||||||
|
LOGGER.info("删除{}-{}的数据{}条",year,monthValue,update);
|
||||||
|
}catch (Exception e){
|
||||||
|
LOGGER.error("删除运营_物料单耗出库表出错,删除范围为:{}-{}:e",year,monthValue,e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
List<RowMap> maps1 = DBSql.getMaps("SELECT FLZZ FROM BO_EU_BNBM_SCCK_HZ GROUP BY FLZZ");
|
||||||
|
try {
|
||||||
|
for (String bkgs : bkgsArr) {
|
||||||
|
for (RowMap map2 : maps1) {
|
||||||
|
BO bo = new BO();
|
||||||
|
for (String wlmckey : wlmcMap.keySet()) {
|
||||||
|
String wlmcValue = wlmcMap.get(wlmckey);
|
||||||
|
RowMap map = DBSql.getMap("SELECT SUM(SFSL) AS SFSL FROM BO_EU_BNBM_SCCK_HZ WHERE BKGS = '" + bkgs + "' AND (DJZT = '已审核' OR DJZT = '签字') " +
|
||||||
|
" AND YEAR = '" + year + "' AND MONTH = '" + monthValue + "' AND WLMC LIKE '%" + wlmckey + "%' " +
|
||||||
|
" AND FLZZ = '"+map2.getString("FLZZ")+"'");
|
||||||
|
bo.set(wlmcValue,map.getString("SFSL"));
|
||||||
|
if (StringUtils.isNotBlank(map2.getString("FLZZ"))){
|
||||||
|
bo.set("FLZZ",map2.getString("FLZZ"));
|
||||||
|
RowMap flzz = DBSql.getMap("SELECT SJZZID FROM BO_EU_BNBM_ZZWHB WHERE GSMC = '" + map2.getString("FLZZ") + "'");
|
||||||
|
if (flzz!=null){
|
||||||
|
bo.set("ZZNM",flzz.getString("SJZZID"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bo.set("YEAR",year);
|
||||||
|
bo.set("MONTH",monthValue);
|
||||||
|
bo.set("NF",year);
|
||||||
|
bo.set("YF",monthValue);
|
||||||
|
bo.set("BKGS",bkgs);
|
||||||
|
bo.set("BK",bkgs.equals("泰山石膏")?"泰山":bkgs);
|
||||||
|
RowMap map1 = DBSql.getMap("SELECT SUM(ZBCL) AS zbcl FROM BO_EU_BNBM_SCRK_HZ " +
|
||||||
|
" WHERE BKGS = '" + bkgs + "' AND YEAR = '" + year + "' AND MONTH = '" + monthValue + "'" +
|
||||||
|
" AND WLMC LIKE '%石膏板%' AND KCZZ = '"+bo.getString("FLZZ")+"'");
|
||||||
|
if (map1!=null){
|
||||||
|
bo.set("SGBZBCL",map1.getString("zbcl"));
|
||||||
|
}else{
|
||||||
|
bo.set("SGBZBCL",0);
|
||||||
|
}
|
||||||
|
LOGGER.info("存储的值为:{}",bo.toJSONObject().toJSONString());
|
||||||
|
boList.add(bo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SDK.getBOAPI().createDataBO("BO_EU_YY_WLDHCKB",boList, UserContext.fromUID("admin"));
|
||||||
|
LOGGER.info("单耗对标计算完成时间范围为:{}-{}",year,monthValue);
|
||||||
|
}catch (Exception e){
|
||||||
|
LOGGER.error("单耗对标计算报错,错误时间范围为:{}-{}:{}",year,monthValue,e.getLocalizedMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -11,6 +11,7 @@ import com.actionsoft.sdk.local.SDK;
|
|||||||
import com.actionsoft.sdk.local.api.cc.RDSAPI;
|
import com.actionsoft.sdk.local.api.cc.RDSAPI;
|
||||||
import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange;
|
import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange;
|
||||||
import com.awspaas.user.apps.bnbm.datalinkup.service.DataSyncService;
|
import com.awspaas.user.apps.bnbm.datalinkup.service.DataSyncService;
|
||||||
|
import com.awspaas.user.apps.bnbm.datalinkup.util.PurchaseUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@ -24,6 +25,8 @@ import java.time.format.DateTimeFormatter;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.awspaas.user.apps.bnbm.datalinkup.util.PurchaseUtil.isEqual;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName: ProductionDataSyncServiceImpl
|
* @ClassName: ProductionDataSyncServiceImpl
|
||||||
* @Description: 生产实现类
|
* @Description: 生产实现类
|
||||||
@ -754,6 +757,7 @@ public class ProductionDataSyncServiceImpl implements DataSyncService {
|
|||||||
// 按时间范围分页迁移数据到汇总表
|
// 按时间范围分页迁移数据到汇总表
|
||||||
summarizeScopeData(targetTable, startDate, endDate, targetTimeField, hzb);
|
summarizeScopeData(targetTable, startDate, endDate, targetTimeField, hzb);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("处理配置失败 [板块={}, BindID={}]: {}",
|
LOGGER.error("处理配置失败 [板块={}, BindID={}]: {}",
|
||||||
plate, mainConfig.getString("BINDID"), e.getMessage(), e);
|
plate, mainConfig.getString("BINDID"), e.getMessage(), e);
|
||||||
@ -778,6 +782,7 @@ public class ProductionDataSyncServiceImpl implements DataSyncService {
|
|||||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
String startDate = "";
|
String startDate = "";
|
||||||
String endDate = "";
|
String endDate = "";
|
||||||
|
PurchaseUtil purchaseUtil = new PurchaseUtil();
|
||||||
try {
|
try {
|
||||||
do {
|
do {
|
||||||
if (startDated == null || endDated == null) {
|
if (startDated == null || endDated == null) {
|
||||||
@ -823,6 +828,25 @@ public class ProductionDataSyncServiceImpl implements DataSyncService {
|
|||||||
bo.set(key, map.get(key));
|
bo.set(key, map.get(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 如果是采购_入库单汇总 刷新石膏板种类
|
||||||
|
String newSgbzl = "";
|
||||||
|
String newSgbhd = "";//石膏板厚度
|
||||||
|
if (hzb.equals("BO_EU_BNBM_SCRK_HZ")) {
|
||||||
|
String bkgs = StringUtils.trimToEmpty(bo.getString("BKGS"));
|
||||||
|
String wlmc = StringUtils.trimToEmpty(bo.getString("WLMC"));
|
||||||
|
String wlfl = StringUtils.trimToEmpty(bo.getString("WLFL"));
|
||||||
|
String xl = StringUtils.trimToEmpty(bo.getString("XL"));
|
||||||
|
String pp = StringUtils.trimToEmpty(bo.getString("PP"));
|
||||||
|
String zl = StringUtils.trimToEmpty(bo.getString("ZL"));
|
||||||
|
String gg = StringUtils.trimToEmpty(bo.getString("GG"));
|
||||||
|
String rksl = StringUtils.trimToEmpty(bo.getString("RKSL"));
|
||||||
|
if (bkgs.equals("泰山石膏")){
|
||||||
|
newSgbzl = purchaseUtil.gypsumBoardCategory(wlfl, wlmc, xl, pp, zl);
|
||||||
|
}
|
||||||
|
newSgbhd = purchaseUtil.extractThickness(gg);
|
||||||
|
bo.set("SGBZL", newSgbzl);
|
||||||
|
bo.set("SGBHD", newSgbhd);
|
||||||
|
}
|
||||||
bos.add(bo);
|
bos.add(bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -833,6 +857,13 @@ public class ProductionDataSyncServiceImpl implements DataSyncService {
|
|||||||
hasMore = pageData.size() == PAGE_SIZE;
|
hasMore = pageData.size() == PAGE_SIZE;
|
||||||
pageNo++;
|
pageNo++;
|
||||||
} while (hasMore);
|
} while (hasMore);
|
||||||
|
int update = DBSql.update("UPDATE BO_EU_BNBM_SCRK_HZ a" +
|
||||||
|
" LEFT JOIN BO_EU_DATALINKUP_ZBXS b ON a.SGBZL = b.TYPE AND a.SGBHD = b.THICKNESS" +
|
||||||
|
" SET a.ZBCL = a.RKSL * b.ZBXS" +
|
||||||
|
" WHERE a.BKGS = '泰山石膏' " +
|
||||||
|
" AND a.WLMC LIKE '%石膏板%' " +
|
||||||
|
" AND a.RKRQ >= '" + startDate + "'");
|
||||||
|
LOGGER.info("更新折标产量条数:{}-开始时间为:{}",update,startDate);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
LOGGER.error("汇总数据失败 [汇总表={}, 第几页={}]: {}",
|
LOGGER.error("汇总数据失败 [汇总表={}, 第几页={}]: {}",
|
||||||
hzb, PAGE_SIZE, e.getMessage(), e);
|
hzb, PAGE_SIZE, e.getMessage(), e);
|
||||||
|
|||||||
@ -1400,7 +1400,7 @@ public class SaleDataSyncServiceImpl implements DataSyncService {
|
|||||||
lastYearData = rdsapi.getMaps(lastYearQuerySql);
|
lastYearData = rdsapi.getMaps(lastYearQuerySql);
|
||||||
} else {
|
} else {
|
||||||
// 这里需要根据您的rdsapi接口调整参数传递方式
|
// 这里需要根据您的rdsapi接口调整参数传递方式
|
||||||
lastYearData = rdsapi.getMaps(lastYearQuerySql, lastYearParams.toArray());
|
lastYearData = rdsapi.getMaps(lastYearQuerySql,lastYearFirstDayStr,lastYearNextMonthFirstDayStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastYearData != null && !lastYearData.isEmpty()) {
|
if (lastYearData != null && !lastYearData.isEmpty()) {
|
||||||
|
|||||||
@ -4,6 +4,9 @@ import com.awspaas.user.apps.bnbm.datalinkup.service.impl.SaleDataSyncServiceImp
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 采购模块工具类
|
* 采购模块工具类
|
||||||
*/
|
*/
|
||||||
@ -109,4 +112,122 @@ public class PurchaseUtil {
|
|||||||
}
|
}
|
||||||
return newWlmc;
|
return newWlmc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生产入库更新石膏板种类
|
||||||
|
* @param wlfl
|
||||||
|
* @param cpmc
|
||||||
|
* @param xl
|
||||||
|
* @param pp
|
||||||
|
* @param zl
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String gypsumBoardCategory(String wlfl, String cpmc, String xl, String pp, String zl){
|
||||||
|
if (wlfl.startsWith("58001002")){
|
||||||
|
return "基材";
|
||||||
|
} else if (xl.equals("然系列")) {
|
||||||
|
return "然系列";
|
||||||
|
} else if (xl.equals("泰山系列") && pp.equals("泰山") && zl.contains("耐火") && !zl.startsWith("耐水")) {
|
||||||
|
return "泰山耐火系列";
|
||||||
|
} else if (xl.equals("泰山系列") && pp.equals("泰山") && zl.contains("耐水") && !zl.startsWith("耐火")) {
|
||||||
|
return "泰山耐水系列";
|
||||||
|
} else if (wlfl.startsWith("58008") || wlfl.startsWith("58009") || wlfl.startsWith("58012")) {
|
||||||
|
return "GFP/GFG(高密高强)";
|
||||||
|
} else if (cpmc.startsWith("纸面石膏板(墙板)") && xl.equals("泰山系列") && pp.equals("泰山")
|
||||||
|
&& (zl.equals("观日出") || zl.equals("盘云海") || zl.equals("黄金带") || zl.equals("凌云松")
|
||||||
|
|| zl.equals("岱盘石") || zl.equals("银河水"))) {
|
||||||
|
return "印象泰山系列";
|
||||||
|
} else if (cpmc.startsWith("纸面石膏板(墙板)") && xl.equals("泰山系列") && pp.equals("泰山")
|
||||||
|
&& (zl.equals("灵鼠献瑞") || zl.equals("福牛贺喜") || zl.equals("虎虎生威") || zl.equals("玉兔拜月")
|
||||||
|
|| zl.equals("龙凤呈祥") || zl.equals("银蛇报春") || zl.equals("马到成功") || zl.equals("三羊开泰") || zl.equals("金猴送宝")
|
||||||
|
|| zl.equals("金鸡报晓") || zl.equals("旺狗招财") || zl.equals("金猪送福") )) {
|
||||||
|
return "十二生肖系列";
|
||||||
|
} else if (cpmc.startsWith("纸面石膏板(墙板)") && xl.equals("泰山系列") && pp.equals("泰山") && zl.equals("金砖")) {
|
||||||
|
return "金砖系列";
|
||||||
|
} else {
|
||||||
|
return "金砖系列";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从字符串中提取厚度值 - 支持多种格式
|
||||||
|
* @param input 输入字符串
|
||||||
|
* @return 提取到的厚度值,如9.5,如果未找到返回null
|
||||||
|
*/
|
||||||
|
public static String extractThickness(String input) {
|
||||||
|
if (input == null || input.trim().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统一将"×"替换为"*",便于处理
|
||||||
|
String normalizedInput = input.replace('×', '*');
|
||||||
|
// 模式1:数字*数字*数字.mm(可能包含括号内容)
|
||||||
|
Pattern pattern1 = Pattern.compile("(\\d+)\\*(\\d+)\\*(\\d+(?:\\.\\d+)?)mm");
|
||||||
|
|
||||||
|
// 模式2:数字*数字*数字.字母******(如9.5A******)
|
||||||
|
Pattern pattern2 = Pattern.compile("(\\d+)\\*(\\d+)\\*(\\d+(?:\\.\\d+)?)[A-Z]\\*+");
|
||||||
|
|
||||||
|
// 模式3:数字*数字*数字.空格(如10.0 100张/架)
|
||||||
|
Pattern pattern3 = Pattern.compile("(\\d+)\\*(\\d+)\\*(\\d+(?:\\.\\d+)?)\\s");
|
||||||
|
|
||||||
|
// 模式4:直接匹配厚度值(最通用的模式)
|
||||||
|
Pattern pattern4 = Pattern.compile("\\*(\\d+(?:\\.\\d+)?)(?:mm|[A-Z]|\\s|$)");
|
||||||
|
|
||||||
|
|
||||||
|
Matcher matcher;
|
||||||
|
|
||||||
|
// 尝试模式1
|
||||||
|
matcher = pattern1.matcher(normalizedInput);
|
||||||
|
if (matcher.find() && matcher.groupCount() >= 3) {
|
||||||
|
try {
|
||||||
|
return matcher.group(3);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// 继续尝试其他模式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 尝试模式2
|
||||||
|
matcher = pattern2.matcher(input);
|
||||||
|
if (matcher.find() && matcher.groupCount() >= 3) {
|
||||||
|
try {
|
||||||
|
return matcher.group(3);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// 继续尝试其他模式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 尝试模式3
|
||||||
|
matcher = pattern3.matcher(input);
|
||||||
|
if (matcher.find() && matcher.groupCount() >= 3) {
|
||||||
|
try {
|
||||||
|
return matcher.group(3);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// 继续尝试其他模式
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 尝试模式4(最通用的模式)
|
||||||
|
matcher = pattern4.matcher(input);
|
||||||
|
if (matcher.find()) {
|
||||||
|
try {
|
||||||
|
return matcher.group(1);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断两个数是否想到
|
||||||
|
* @param obj1
|
||||||
|
* @param obj2
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean isEqual(Object obj1, Object obj2) {
|
||||||
|
if (obj1 == null && obj2 == null) return true;
|
||||||
|
if (obj1 == null || obj2 == null) return false;
|
||||||
|
return obj1.equals(obj2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user