公装家装、基材面材逻辑提交

This commit is contained in:
yujh_java 2025-09-09 13:39:08 +08:00
parent 5a7cdb05d0
commit f59dcdc0e4
2 changed files with 39 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import com.actionsoft.sdk.local.SDK;
import com.awspaas.user.apps.bnbm.datalinkup.entity.DateRange;
import com.awspaas.user.apps.bnbm.datalinkup.entity.Location;
import com.awspaas.user.apps.bnbm.datalinkup.service.DataSummaryService;
import com.awspaas.user.apps.bnbm.datalinkup.util.SaleUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -288,6 +289,8 @@ public class SaleCountDimensionImpl implements DataSummaryService {
LOGGER.info("销量销额数据无数据,停止查询");
} else {
ArrayList<BO> bos = new ArrayList<>();
// 循环外先获取下公装家装基材面材类别
List<BO> gzjzList = SDK.getBOAPI().query("BO_EU_DATALINKUP_CPJZGZJCMC").list();
for (RowMap map : maps) {
String gc = map.getString("KCZZ");
String yearmonth = map.getString("YEARMONTH");
@ -315,8 +318,10 @@ public class SaleCountDimensionImpl implements DataSummaryService {
Double ssjermb = map.getDouble("SSJERMB");
Double xe = map.getDouble("XE");
bo.set("XE", ssjermb!=null?ssjermb:xe!=null?(xe*0.13):0.00);
bo.set("MC_JC", Math.random()%2==0?"面材":"基材");
bo.set("JZ_GZ", Math.random()%2==0?"家装":"工装");
// 匹配公装家装类别如果未匹配到则默认未其他
String[] gzjzStrings = SaleUtil.matchSingleField(bkgs, map.getString("LB_1"), map.getString("LB_2"), gzjzList, "其他", "其他");
bo.set("JZ_GZ", gzjzStrings[0]);
bo.set("MC_JC", gzjzStrings[1]);
bos.add(bo);
}

View File

@ -0,0 +1,32 @@
package com.awspaas.user.apps.bnbm.datalinkup.util;
import com.actionsoft.bpms.bo.engine.BO;
import java.util.List;
public class SaleUtil {
/**
* 单字段匹配根据源字段 BKGS匹配 BO 中的目标字段 BBGS
* @param sourceValue 源字段值 BKGSLB_1LB_2
* @param targetKey BO 中的目标字段 key "BBGS""CPMC""CPLB_L2"
* @param boList 待匹配的 BO 列表
* @param defaultJzgz 匹配失败时默认的 JZGZ
* @param defaultJcmc 匹配失败时默认的 JCMC
* @return 匹配结果数组 [JZGZ, JCMC]
*/
public static String[] matchSingleField(String bbgsSource, String cpmcSource,String cppb_l2Source,
List<BO> boList, String defaultJzgz, String defaultJcmc) {
if (boList == null || boList.isEmpty()) {
return new String[]{defaultJzgz, defaultJcmc};
}
for (BO bo : boList) {
String bbgs = bo.getString("BBGS");
String cpmc = bo.getString("CPMC");
String cppb_l2 = bo.getString("CPLB_L2");
if(bbgs.equals(bbgsSource) && cpmcSource.contains(cpmc) && cppb_l2Source.contains(cppb_l2)) {
return new String[]{bo.getString("JZGZ"), bo.getString("JCMC")};
}
}
return new String[]{defaultJzgz, defaultJcmc};
}
}