12 Commits

58 changed files with 3097 additions and 210 deletions

View File

@@ -17,16 +17,16 @@
</modules>
<properties>
<lombok.version>1.18.30</lombok.version>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.boot.version>2.7.17</spring.boot.version>
<lidee.version>2.2.4</lidee.version>
<java.version>1.8</java.version>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
<maven.compiler.target>${java.version}</maven.compiler.target>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
<spring.boot.version>2.7.17</spring.boot.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
</properties>
<dependencyManagement>
<dependencies>

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubCustomService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 客户对象
* oracle gr_bi_pub_custom -> mysql gr_bi_pub_custom
*/
@Slf4j
@Component("generateCustomJob")
public class GenerateCustomJob implements JobHandler {
@Resource
private IGrBiPubCustomService grBiPubCustomService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成客户对象 ************");
grBiPubCustomService.generateCustom(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成客户对象完成 ************");
return "*********** 生成客户对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubDosageService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 剂型对象
* oracle gr_bi_pub_dosage -> mysql gr_bi_pub_dosage
*/
@Slf4j
@Component("generateDosageJob")
public class GenerateDosageJob implements JobHandler {
@Resource
private IGrBiPubDosageService grBiPubDosageService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成剂型对象 ************");
grBiPubDosageService.generateDosage(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成剂型对象完成 ************");
return "*********** 生成剂型对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubGoodsService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 货品对象
* oracle gr_bi_pub_goods -> mysql gr_bi_pub_goods
*/
@Slf4j
@Component("generateGoodsJob")
public class GenerateGoodsJob implements JobHandler {
@Resource
private IGrBiPubGoodsService grBiPubGoodsService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成货品对象 ************");
grBiPubGoodsService.generateGoods(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成货品对象完成 ************");
return "*********** 生成货品对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubProvinceService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 行政区域对象
* oracle gr_bi_pub_province -> mysql gr_bi_pub_province
*/
@Slf4j
@Component("generateProvinceJob")
public class GenerateProvinceJob implements JobHandler {
@Resource
private IGrBiPubProvinceService grBiPubProvinceService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成行政区域对象 ************");
grBiPubProvinceService.generateProvince(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成行政区域对象完成 ************");
return "*********** 生成行政区域对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubSalerService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 业务员对象
* oracle gr_bi_pub_saler -> mysql gr_bi_pub_saler
*/
@Slf4j
@Component("generateSalerJob")
public class GenerateSalerJob implements JobHandler {
@Resource
private IGrBiPubSalerService grBiPubSalerService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成业务员对象 ************");
grBiPubSalerService.generateSaler(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成业务员对象完成 ************");
return "*********** 生成业务员对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubSaletypeService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 销售类型对象
* oracle gr_bi_pub_saletype -> mysql gr_bi_pub_saletype
*/
@Slf4j
@Component("generateSaletypeJob")
public class GenerateSaletypeJob implements JobHandler {
@Resource
private IGrBiPubSaletypeService grBiPubSaletypeService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成销售类型对象 ************");
grBiPubSaletypeService.generateSaletype(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成销售类型对象完成 ************");
return "*********** 生成销售类型对象完成 ************";
}
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.config.job;
import com.lideeyunji.core.framework.service.IGrBiPubSalezoneService;
import com.lideeyunji.core.framework.service.IGrBiStProductService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.quartz.core.handler.JobHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 业务区域对象
* oracle gr_bi_pub_salezone -> mysql gr_bi_pub_salezone
*/
@Slf4j
@Component("generateSalezoneJob")
public class GenerateSalezoneJob implements JobHandler {
@Resource
private IGrBiPubSalezoneService grBiPubSalezoneService;
@Override
public String execute(String param) throws Exception {
log.info("*********** 开始生成业务区域对象 ************");
grBiPubSalezoneService.generateSalezone(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("*********** 生成业务区域对象完成 ************");
return "*********** 生成业务区域对象完成 ************";
}
}

View File

@@ -121,11 +121,12 @@ public class anyToGrBiNh implements JobHandler {
grNhEntity.setStcYearCurrent(data.getJSONObject("stcYearCompare").getFloat("currentValue"));//标准煤-昨年
grNhEntity.setStcYearBefore(data.getJSONObject("stcYearCompare").getFloat("beforeValue"));//标准煤-上年
grNhService.deltetNH(grNhEntity);
grNhService.saveNH(grNhEntity);
}
grNhService.deltetNH(grNhEntity);
// grNhService.query().eq("add_time",1);

View File

@@ -25,130 +25,208 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
List<String> groupFieldList = Arrays.asList(params.get("Group by").toString().split(","));
StringBuilder executePluginSql = new StringBuilder();
executePluginSql.append(" SELECT \n");
if (groupFieldList.contains("customname")) { //客户名称
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
executePluginSql.append(" tbl_lgbsa.CUSTOMID, \n");
executePluginSql.append(" tbl_lgbsa.CUSTOMNAME, \n");
}
if (groupFieldList.contains("useyear")) { //年
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) { //年
executePluginSql.append(" tbl_lgbsa.USEYEAR, \n");
if(!(groupFieldList.contains("usemonth") || params.containsKey("usemonth"))){
executePluginSql.append(" MAX(USEYEAR) as ny, \n"); //年月
}
}
if (groupFieldList.contains("usemonth")) { //月
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) { //月
executePluginSql.append(" tbl_lgbsa.USEMONTH, \n");
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
executePluginSql.append(" MAX(CONCAT(USEYEAR, LPAD(USEMONTH, 2, '0'))) as ny, \n"); //年月
}else{
executePluginSql.append(" MAX(LPAD(USEMONTH, 2, '0')) as ny, \n");
}
}
if (groupFieldList.contains("zonename")) { //业务区域
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
executePluginSql.append(" tbl_lgbsa.ZONEID, \n");
executePluginSql.append(" tbl_lgbsa.ZONENAME, \n");
}
if (groupFieldList.contains("saletypename")) { //销售类型
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
executePluginSql.append(" tbl_lgbsa.SALETYPEID, \n");
executePluginSql.append(" tbl_lgbsa.SALETYPENAME, \n");
}
if (groupFieldList.contains("salername")) { //业务员
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
executePluginSql.append(" tbl_lgbsa.SALERID, \n");
executePluginSql.append(" tbl_lgbsa.SALERNAME, \n");
}
if (groupFieldList.contains("dosagename")) { //剂型
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
executePluginSql.append(" tbl_lgbsa.DOSAGEID, \n");
executePluginSql.append(" tbl_lgbsa.DOSAGENAME, \n");
}
executePluginSql.append(" MAX(CONCAT(USEYEAR, LPAD(USEMONTH, 2, '0'))) as ny, \n"); //年月
if (params.containsKey("goodsname")) { //货品名称
executePluginSql.append(" tbl_lgbsa.GOODSID, \n");
executePluginSql.append(" tbl_lgbsa.GOODSNAME, \n");
}
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCEID ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCEID, \n"); //行政区域ID
executePluginSql.append(" GROUP_CONCAT(DISTINCT tbl_lgbsa.PROVINCENAME ORDER BY tbl_lgbsa.PROVINCEID SEPARATOR ',') as PROVINCENAME, \n"); //行政区域名称
executePluginSql.append(" SUM(tbl_lgbsa.MONTHSAQTY) as MONTHSAQTY, \n"); //本月销量
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s, \n");
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s, \n");
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s, \n");
executePluginSql.append(" -- 原本带CAST的字段简化写法CONCAT会自动转为字符串 \n");
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s, \n");
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s, \n");
executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s, \n");
executePluginSql.append(" CASE\n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) > 0 THEN\n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2))\n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END) < 0 THEN\n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAQTY) > 0, 100, 0)\n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAQTY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAQTY) * 100 END), 2))\n");
executePluginSql.append(" ELSE '0.00'\n");
executePluginSql.append(" END AS monthsaqty_yoy,\n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s, \n");
// executePluginSql.append(" -- 原本带CAST的字段简化写法CONCAT会自动转为字符串 \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s, \n");
// executePluginSql.append(" CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s, \n");
executePluginSql.append(" SUM(tbl_lgbsa.THISSAQTY) as THISSAQTY, \n"); //本年销量
executePluginSql.append(" SUM(tbl_lgbsa.LASTSAQTY) as LASTSAQTY, \n"); //上年销量
executePluginSql.append(" -- 数量同比(原有) \n");
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) > 0 THEN \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2), '%') \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) < 0 THEN \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAQTY) = 0 THEN IF(sum(tbl_lgbsa.THISSAQTY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2), '%') \n");
executePluginSql.append(" ELSE '0.00%' \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAQTY) - sum(tbl_lgbsa.LASTSAQTY)) / sum(tbl_lgbsa.LASTSAQTY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS saqty_yoy, \n");
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2), '万') as MONTHSAMONEY, \n"); //本月销售金额(元)
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.THISSAMONEY) / 10000, 2), '万') as THISSAMONEY, \n"); //本年销售金额(元)
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2), '万') as LASTSAMONEY, \n"); //上年销售金额(元)
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHSAMONEY) / 10000, 2) as MONTHSAMONEY, \n"); //本月销售金额(元)
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY)) / sum(tbl_lgbsa.LASTYEAROFMONTHSAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS monthsamoney_yoy, \n");
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.THISSAMONEY) / 10000, 2) as THISSAMONEY, \n"); //本年销售金额(元)
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LAST_MONTH_SAMONEY) = 0 THEN IF(sum(tbl_lgbsa.MONTHSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHSAMONEY) - sum(tbl_lgbsa.LAST_MONTH_SAMONEY)) / sum(tbl_lgbsa.LAST_MONTH_SAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS lastMonthSaMoney_yoy, \n"); //本月销售金额增长率
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.LASTSAMONEY) / 10000, 2) as LASTSAMONEY, \n"); //上年销售金额(元)
executePluginSql.append(" -- 销售金额同比(原有新增) \n");
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) > 0 THEN \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2), '%') \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) < 0 THEN \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTSAMONEY) = 0 THEN IF(sum(tbl_lgbsa.THISSAMONEY) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2), '%') \n");
executePluginSql.append(" ELSE '0.00%' \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISSAMONEY) - sum(tbl_lgbsa.LASTSAMONEY)) / sum(tbl_lgbsa.LASTSAMONEY) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS samoney_yoy, \n"); //销售收入同比
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2), '万') as MONTHPROFIT, \n"); //本月毛利额(元)
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.THISPROFIT) / 10000, 2), '万') as THISPROFIT, \n"); //本年毛利额(元)
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.LASTPROFIT) / 10000, 2), '万') as LASTPROFIT, \n"); //上年毛利额(元)
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHPROFIT) / 10000, 2) as MONTHPROFIT, \n"); //本月毛利额(元)
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) = 0 THEN IF(sum(tbl_lgbsa.MONTHPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHPROFIT) - sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT)) / sum(tbl_lgbsa.LASTYEAROFMONTHPROFIT) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS monthprofit_yoy, \n"); //年度毛利同比
executePluginSql.append(" ROUND(MAX(tbl_lgbsa.THISPROFIT) / 10000, 2) as THISPROFIT, \n"); //本年毛利额(元)
executePluginSql.append(" ROUND(MAX(tbl_lgbsa.LASTPROFIT) / 10000, 2) as LASTPROFIT, \n"); //上年毛利额(元)
executePluginSql.append(" -- 新增:毛利同比 \n");
executePluginSql.append(" CASE \n");
executePluginSql.append(" -- 正数红色圆点emoji + 数值 + % \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) > 0 THEN \n");
executePluginSql.append("WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2), '%') \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \n");
executePluginSql.append(" -- 负数绿色圆点emoji + 数值 + % \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2), '%') \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(sum(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTPROFIT) = 0 THEN IF(MAX(tbl_lgbsa.THISPROFIT) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (MAX(tbl_lgbsa.THISPROFIT) - sum(tbl_lgbsa.LASTPROFIT)) / sum(tbl_lgbsa.LASTPROFIT) * 100 END), 2)) \n");
executePluginSql.append(" -- 0值直接显示 \n");
executePluginSql.append(" ELSE '0.00%' \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS profit_yoy, \n"); //毛利同比
executePluginSql.append(" CONCAT(ROUND(SUM(tbl_lgbsa.MONTHCOST) / 10000, 2), '万') as MONTHCOST, \n"); //本月销售成本(元)
executePluginSql.append(" ROUND(SUM(tbl_lgbsa.MONTHCOST) / 10000, 2) as MONTHCOST, \n"); //本月销售成本(元)
executePluginSql.append(" ROUND(MAX(tbl_lgbsa.THISCOST) / 10000, 2) as THISCOST, \n"); //本年销售成本(元)
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END), 2)) \n");
executePluginSql.append(" WHEN (CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(tbl_lgbsa.LASTYEAROFMONTHCOST) = 0 THEN IF(sum(tbl_lgbsa.MONTHCOST) > 0, 100, 0) \n");
executePluginSql.append(" ELSE (sum(tbl_lgbsa.MONTHCOST) - sum(tbl_lgbsa.LASTYEAROFMONTHCOST)) / sum(tbl_lgbsa.LASTYEAROFMONTHCOST) * 100 END), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS monthcost_yoy, \n"); //本月销售成本同比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITCHANGE), 2) as PROFITCHANGE, \n"); //毛利变动(元)
executePluginSql.append(" ROUND(avg(tbl_lgbsa.PROFITGROWTH), 2) as PROFITGROWTH, \n"); //毛利额增长率
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISPROFITRATE), 2) as THISPROFITRATE, \n"); //本年毛利率
executePluginSql.append(" ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) as SAMONEYGROWTH, \n"); //销售金额增长率
executePluginSql.append(" CASE \n");
executePluginSql.append(" WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) > 0 THEN \n");
executePluginSql.append(" CONCAT('🟢 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2)) \n");
executePluginSql.append(" WHEN ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2) < 0 THEN \n");
executePluginSql.append(" CONCAT('🔴 ', ROUND(avg(tbl_lgbsa.SAMONEYGROWTH), 2)) \n");
executePluginSql.append(" ELSE '0.00' \n");
executePluginSql.append(" END AS SAMONEYGROWTH, \n");//销售金额增长率
executePluginSql.append(" ROUND(avg(tbl_lgbsa.LASTPROFITSHARE) * 100, 2) as LASTPROFITSHARE, \n"); //上年毛利额占比
executePluginSql.append(" CONCAT(ROUND(avg(tbl_lgbsa.THISPROFITSHARE) * 100, 2), '%') AS THISPROFITSHARE, \n"); //本年毛利额占比
executePluginSql.append(" CONCAT(ROUND(avg(tbl_lgbsa.MONTHPROFITSHARE) * 100, 2), '%') AS MONTHPROFITSHARE, \n"); //本月毛利额占比
executePluginSql.append(" CONCAT(ROUND(avg(tbl_lgbsa.LASTSAMONEYSHARE) * 100, 2), '%') AS LASTSAMONEYSHARE, \n"); //上年销售金额占比
executePluginSql.append(" CONCAT(ROUND(avg(tbl_lgbsa.THISSAMONEYSHARE) * 100, 2), '%') AS THISSAMONEYSHARE, \n"); //本年销售金额占比
executePluginSql.append(" CONCAT(ROUND(avg(tbl_lgbsa.MONTHSAMONEYSHARE) * 100, 2), '%') AS MONTHSAMONEYSHARE \n"); //本月销售金额占比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISPROFITSHARE) * 100, 2) AS THISPROFITSHARE, \n"); //本年毛利额占比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.MONTHPROFITSHARE) * 100, 2) AS MONTHPROFITSHARE, \n"); //本月毛利额占比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.LASTSAMONEYSHARE) * 100, 2) AS LASTSAMONEYSHARE, \n"); //上年销售金额占比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.THISSAMONEYSHARE) * 100, 2) AS THISSAMONEYSHARE, \n"); //本年销售金额占比
executePluginSql.append(" ROUND(avg(tbl_lgbsa.MONTHSAMONEYSHARE) * 100, 2) AS MONTHSAMONEYSHARE \n"); //本月销售金额占比
executePluginSql.append(" FROM \n");
executePluginSql.append(" yunji_gr_bi_sa_agg tbl_lgbsa \n");
executePluginSql.append(" GROUP BY \n");
if (groupFieldList.contains("customname")) {
if (groupFieldList.contains("customname") || params.containsKey("customname")) {
executePluginSql.append(" tbl_lgbsa.CUSTOMID,");
executePluginSql.append(" tbl_lgbsa.CUSTOMNAME,");
}
if (groupFieldList.contains("useyear")) {
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
executePluginSql.append(" tbl_lgbsa.USEYEAR,");
}
if (groupFieldList.contains("usemonth")) {
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
executePluginSql.append(" tbl_lgbsa.USEMONTH,");
}
if (groupFieldList.contains("zonename")) {
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
executePluginSql.append(" tbl_lgbsa.ZONEID,");
executePluginSql.append(" tbl_lgbsa.ZONENAME,");
}
if (groupFieldList.contains("saletypename")) {
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
executePluginSql.append(" tbl_lgbsa.SALETYPEID,");
executePluginSql.append(" tbl_lgbsa.SALETYPENAME,");
}
if (groupFieldList.contains("salername")) {
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
executePluginSql.append(" tbl_lgbsa.SALERID,");
executePluginSql.append(" tbl_lgbsa.SALERNAME,");
}
if (groupFieldList.contains("dosagename")) {
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
executePluginSql.append(" tbl_lgbsa.DOSAGEID,");
executePluginSql.append(" tbl_lgbsa.DOSAGENAME,");
}
if (params.containsKey("goodsname")) { //货品名称
executePluginSql.append(" tbl_lgbsa.GOODSID,");
executePluginSql.append(" tbl_lgbsa.GOODSNAME,");
}
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
params.put("executePluginSql", executePluginSql.toString());
// params.remove("Group by"); // 原有的逻辑注释了,这里也注释

View File

@@ -0,0 +1,36 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 客户对象 gr_bi_pub_custom
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_custom")
@Data
public class GrBiPubCustom implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "CUSTOMID")
private Long customid;
@TableField(value = "CUSTOMNAME")
private String customname;
@TableField(value = "CUSTOMNO")
private String customno;
@TableField(value = "CUSTOMOPCODE")
private String customopcode;
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 剂型对象 gr_bi_pub_dosage
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_dosage")
@Data
public class GrBiPubDosage implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "DOSAGEID")
private Long dosageid;
@TableField(value = "DOSAGENAME")
private String dosagename;
}

View File

@@ -0,0 +1,54 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 货品对象 gr_bi_pub_goods
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_goods")
@Data
public class GrBiPubGoods implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "GOODSID")
private Long goodsid;
@TableField(value = "GOODSNAME")
private String goodsname;
@TableField(value = "GOODSTYPE")
private String goodstype;
@TableField(value = "GOODSUNIT")
private String goodsunit;
@TableField(value = "GOODSNO")
private String goodsno;
@TableField(value = "GOODSOPCODE")
private String goodsopcode;
@TableField(value = "DOSAGEID")
private Long dosageid;
@TableField(value = "DOSAGENAME")
private String dosagename;
@TableField(value = "STDGOODSNAME")
private String stdgoodsname;
@TableField(value = "STDGOODSTYPE")
private String stdgoodstype;
}

View File

@@ -0,0 +1,36 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 行政区域对象 gr_bi_pub_province
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_province")
@Data
public class GrBiPubProvince implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "PROVINCEID")
private Long provinceid;
@TableField(value = "PROVINCENAME")
private String provincename;
@TableField(value = "PROVINCENO")
private Long provinceno;
@TableField(value = "PROVINCEOPCODE")
private String provinceopcode;
}

View File

@@ -0,0 +1,36 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 业务员对象 gr_bi_pub_saler
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_saler")
@Data
public class GrBiPubSaler implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "SALERID")
private Long salerid;
@TableField(value = "SALERNAME")
private String salername;
@TableField(value = "SALERNO")
private String salerno;
@TableField(value = "SALEROPCODE")
private String saleropcode;
}

View File

@@ -0,0 +1,30 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 销售类型对象 gr_bi_pub_saletype
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_saletype")
@Data
public class GrBiPubSaletype implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "SALETYPEID")
private Long saletypeid;
@TableField(value = "SALETYPENAME")
private String saletypename;
}

View File

@@ -0,0 +1,36 @@
package com.lideeyunji.core.framework.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* 业务区域对象 gr_bi_pub_salezone
*
* @author king
* @date 2026-03-14
*/
@TableName("gr_bi_pub_salezone")
@Data
public class GrBiPubSalezone implements Serializable
{
private static final long serialVersionUID = 1L;
@TableField(value = "SALEZONEID")
private Long salezoneid;
@TableField(value = "SALEZONENAME")
private String salezonename;
@TableField(value = "SALEZONENO")
private Long salezoneno;
@TableField(value = "SALEZONEOPCODE")
private String salezoneopcode;
}

View File

@@ -0,0 +1,77 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lideeyunji.core.framework.entity.GrBiStLot;
import org.apache.ibatis.annotations.Param;
/**
* 客户Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubCustomMapper extends BaseMapper<GrBiPubCustom>
{
/**
* 查询客户
*
* @param customid 客户主键
* @return 客户
*/
public GrBiPubCustom selectGrBiPubCustomByCustomid(Long customid);
/**
* 查询客户列表
*
* @param grBiPubCustom 客户
* @return 客户集合
*/
public List<GrBiPubCustom> selectGrBiPubCustomList(GrBiPubCustom grBiPubCustom);
/**
* 新增客户
*
* @param grBiPubCustom 客户
* @return 结果
*/
public int insertGrBiPubCustom(GrBiPubCustom grBiPubCustom);
/**
* 修改客户
*
* @param grBiPubCustom 客户
* @return 结果
*/
public int updateGrBiPubCustom(GrBiPubCustom grBiPubCustom);
/**
* 删除客户
*
* @param customid 客户主键
* @return 结果
*/
public int deleteGrBiPubCustomByCustomid(Long customid);
/**
* 批量删除客户
*
* @param customids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubCustomByCustomids(Long[] customids);
@DS(value = "#dataSourceType")
default List<GrBiPubCustom> getCustomList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldCustom(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,78 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 剂型Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubDosageMapper extends BaseMapper<GrBiPubDosage>
{
/**
* 查询剂型
*
* @param dosageid 剂型主键
* @return 剂型
*/
public GrBiPubDosage selectGrBiPubDosageByDosageid(Long dosageid);
/**
* 查询剂型列表
*
* @param grBiPubDosage 剂型
* @return 剂型集合
*/
public List<GrBiPubDosage> selectGrBiPubDosageList(GrBiPubDosage grBiPubDosage);
/**
* 新增剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
public int insertGrBiPubDosage(GrBiPubDosage grBiPubDosage);
/**
* 修改剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
public int updateGrBiPubDosage(GrBiPubDosage grBiPubDosage);
/**
* 删除剂型
*
* @param dosageid 剂型主键
* @return 结果
*/
public int deleteGrBiPubDosageByDosageid(Long dosageid);
/**
* 批量删除剂型
*
* @param dosageids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubDosageByDosageids(Long[] dosageids);
@DS(value = "#dataSourceType")
default List<GrBiPubDosage> getDosageList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldDosage(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,78 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.entity.GrBiPubGoods;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 货品Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubGoodsMapper extends BaseMapper<GrBiPubGoods>
{
/**
* 查询货品
*
* @param goodsid 货品主键
* @return 货品
*/
public GrBiPubGoods selectGrBiPubGoodsByGoodsid(Long goodsid);
/**
* 查询货品列表
*
* @param grBiPubGoods 货品
* @return 货品集合
*/
public List<GrBiPubGoods> selectGrBiPubGoodsList(GrBiPubGoods grBiPubGoods);
/**
* 新增货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
public int insertGrBiPubGoods(GrBiPubGoods grBiPubGoods);
/**
* 修改货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
public int updateGrBiPubGoods(GrBiPubGoods grBiPubGoods);
/**
* 删除货品
*
* @param goodsid 货品主键
* @return 结果
*/
public int deleteGrBiPubGoodsByGoodsid(Long goodsid);
/**
* 批量删除货品
*
* @param goodsids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubGoodsByGoodsids(Long[] goodsids);
@DS(value = "#dataSourceType")
default List<GrBiPubGoods> getGoodsList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldGoods(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,78 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.entity.GrBiPubProvince;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 行政区域Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubProvinceMapper extends BaseMapper<GrBiPubProvince>
{
/**
* 查询行政区域
*
* @param provinceid 行政区域主键
* @return 行政区域
*/
public GrBiPubProvince selectGrBiPubProvinceByProvinceid(Long provinceid);
/**
* 查询行政区域列表
*
* @param grBiPubProvince 行政区域
* @return 行政区域集合
*/
public List<GrBiPubProvince> selectGrBiPubProvinceList(GrBiPubProvince grBiPubProvince);
/**
* 新增行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
public int insertGrBiPubProvince(GrBiPubProvince grBiPubProvince);
/**
* 修改行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
public int updateGrBiPubProvince(GrBiPubProvince grBiPubProvince);
/**
* 删除行政区域
*
* @param provinceid 行政区域主键
* @return 结果
*/
public int deleteGrBiPubProvinceByProvinceid(Long provinceid);
/**
* 批量删除行政区域
*
* @param provinceids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubProvinceByProvinceids(Long[] provinceids);
@DS(value = "#dataSourceType")
default List<GrBiPubProvince> getProvinceList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldProvince(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,78 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.entity.GrBiPubSaler;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 业务员Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubSalerMapper extends BaseMapper<GrBiPubSaler>
{
/**
* 查询业务员
*
* @param salerid 业务员主键
* @return 业务员
*/
public GrBiPubSaler selectGrBiPubSalerBySalerid(Long salerid);
/**
* 查询业务员列表
*
* @param grBiPubSaler 业务员
* @return 业务员集合
*/
public List<GrBiPubSaler> selectGrBiPubSalerList(GrBiPubSaler grBiPubSaler);
/**
* 新增业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
public int insertGrBiPubSaler(GrBiPubSaler grBiPubSaler);
/**
* 修改业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
public int updateGrBiPubSaler(GrBiPubSaler grBiPubSaler);
/**
* 删除业务员
*
* @param salerid 业务员主键
* @return 结果
*/
public int deleteGrBiPubSalerBySalerid(Long salerid);
/**
* 批量删除业务员
*
* @param salerids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubSalerBySalerids(Long[] salerids);
@DS(value = "#dataSourceType")
default List<GrBiPubSaler> getSalerList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldSaler(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,77 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.entity.GrBiPubSaletype;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 销售类型Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubSaletypeMapper extends BaseMapper<GrBiPubSaletype>
{
/**
* 查询销售类型
*
* @param saletypeid 销售类型主键
* @return 销售类型
*/
public GrBiPubSaletype selectGrBiPubSaletypeBySaletypeid(Long saletypeid);
/**
* 查询销售类型列表
*
* @param grBiPubSaletype 销售类型
* @return 销售类型集合
*/
public List<GrBiPubSaletype> selectGrBiPubSaletypeList(GrBiPubSaletype grBiPubSaletype);
/**
* 新增销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
public int insertGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype);
/**
* 修改销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
public int updateGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype);
/**
* 删除销售类型
*
* @param saletypeid 销售类型主键
* @return 结果
*/
public int deleteGrBiPubSaletypeBySaletypeid(Long saletypeid);
/**
* 批量删除销售类型
*
* @param saletypeids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubSaletypeBySaletypeids(Long[] saletypeids);
@DS(value = "#dataSourceType")
default List<GrBiPubSaletype> getSaletypeList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldSaletype(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -0,0 +1,78 @@
package com.lideeyunji.core.framework.mapper;
import java.util.List;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.entity.GrBiPubSalezone;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 业务区域Mapper接口
*
* @author king
* @date 2026-03-14
*/
public interface GrBiPubSalezoneMapper extends BaseMapper<GrBiPubSalezone>
{
/**
* 查询业务区域
*
* @param salezoneid 业务区域主键
* @return 业务区域
*/
public GrBiPubSalezone selectGrBiPubSalezoneBySalezoneid(Long salezoneid);
/**
* 查询业务区域列表
*
* @param grBiPubSalezone 业务区域
* @return 业务区域集合
*/
public List<GrBiPubSalezone> selectGrBiPubSalezoneList(GrBiPubSalezone grBiPubSalezone);
/**
* 新增业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
public int insertGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone);
/**
* 修改业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
public int updateGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone);
/**
* 删除业务区域
*
* @param salezoneid 业务区域主键
* @return 结果
*/
public int deleteGrBiPubSalezoneBySalezoneid(Long salezoneid);
/**
* 批量删除业务区域
*
* @param salezoneids 需要删除的数据主键集合
* @return 结果
*/
public int deleteGrBiPubSalezoneBySalezoneids(Long[] salezoneids);
@DS(value = "#dataSourceType")
default List<GrBiPubSalezone> getSalezoneList(@Param("dataSourceType") String dataSourceType){
return this.selectList(new QueryWrapper<>());
}
@DS(value = "#dataSourceType")
default int deleteOldSalezone(@Param("dataSourceType") String dataSourceType){
return this.delete(new QueryWrapper<>());
}
}

View File

@@ -22,6 +22,9 @@ public interface GrBiSaAggMapper extends BaseMapper<GrBiSaAgg> {
void updateThisData();
void updateLastData();
void updateLastMonthSamoney();
void updateLastYearOfMonthData();
void updateComplexCalculate1();
void updateComplexCalculate2();

View File

@@ -4,6 +4,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lideeyunji.core.framework.entity.GrNhEntity;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import com.lideeyunji.tool.framework.sql.core.conditions.Wrapper;
import org.apache.ibatis.annotations.Param;
/**
@@ -18,4 +19,13 @@ public interface GrNhMapper extends BaseMapper<GrNhEntity> {
default int save(@Param("dataSourceType") String dataSourceType, GrNhEntity grNhEntity) {
return this.insert(grNhEntity);
}
@DS(value = "#dataSourceType")
default int deltetNH(@Param("dataSourceType") String dataSourceType, GrNhEntity grNhEntity) {
//return this.delete(new Wrapper<GrNhEntity>().eq("add_time", grNhEntity.getAddTime()));
return 0;
}
}

View File

@@ -0,0 +1,15 @@
package com.lideeyunji.core.framework.service;
import org.apache.ibatis.annotations.Param;
/**
* 客户Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubCustomService
{
void generateCustom(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import org.apache.ibatis.annotations.Param;
/**
* 剂型Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubDosageService
{
/**
* 查询剂型
*
* @param dosageid 剂型主键
* @return 剂型
*/
public GrBiPubDosage selectGrBiPubDosageByDosageid(Long dosageid);
/**
* 查询剂型列表
*
* @param grBiPubDosage 剂型
* @return 剂型集合
*/
public List<GrBiPubDosage> selectGrBiPubDosageList(GrBiPubDosage grBiPubDosage);
/**
* 新增剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
public int insertGrBiPubDosage(GrBiPubDosage grBiPubDosage);
/**
* 修改剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
public int updateGrBiPubDosage(GrBiPubDosage grBiPubDosage);
/**
* 批量删除剂型
*
* @param dosageids 需要删除的剂型主键集合
* @return 结果
*/
public int deleteGrBiPubDosageByDosageids(Long[] dosageids);
/**
* 删除剂型信息
*
* @param dosageid 剂型主键
* @return 结果
*/
public int deleteGrBiPubDosageByDosageid(Long dosageid);
void generateDosage(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubGoods;
import org.apache.ibatis.annotations.Param;
/**
* 货品Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubGoodsService
{
/**
* 查询货品
*
* @param goodsid 货品主键
* @return 货品
*/
public GrBiPubGoods selectGrBiPubGoodsByGoodsid(Long goodsid);
/**
* 查询货品列表
*
* @param grBiPubGoods 货品
* @return 货品集合
*/
public List<GrBiPubGoods> selectGrBiPubGoodsList(GrBiPubGoods grBiPubGoods);
/**
* 新增货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
public int insertGrBiPubGoods(GrBiPubGoods grBiPubGoods);
/**
* 修改货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
public int updateGrBiPubGoods(GrBiPubGoods grBiPubGoods);
/**
* 批量删除货品
*
* @param goodsids 需要删除的货品主键集合
* @return 结果
*/
public int deleteGrBiPubGoodsByGoodsids(Long[] goodsids);
/**
* 删除货品信息
*
* @param goodsid 货品主键
* @return 结果
*/
public int deleteGrBiPubGoodsByGoodsid(Long goodsid);
void generateGoods(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubProvince;
import org.apache.ibatis.annotations.Param;
/**
* 行政区域Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubProvinceService
{
/**
* 查询行政区域
*
* @param provinceid 行政区域主键
* @return 行政区域
*/
public GrBiPubProvince selectGrBiPubProvinceByProvinceid(Long provinceid);
/**
* 查询行政区域列表
*
* @param grBiPubProvince 行政区域
* @return 行政区域集合
*/
public List<GrBiPubProvince> selectGrBiPubProvinceList(GrBiPubProvince grBiPubProvince);
/**
* 新增行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
public int insertGrBiPubProvince(GrBiPubProvince grBiPubProvince);
/**
* 修改行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
public int updateGrBiPubProvince(GrBiPubProvince grBiPubProvince);
/**
* 批量删除行政区域
*
* @param provinceids 需要删除的行政区域主键集合
* @return 结果
*/
public int deleteGrBiPubProvinceByProvinceids(Long[] provinceids);
/**
* 删除行政区域信息
*
* @param provinceid 行政区域主键
* @return 结果
*/
public int deleteGrBiPubProvinceByProvinceid(Long provinceid);
void generateProvince(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubSaler;
import org.apache.ibatis.annotations.Param;
/**
* 业务员Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubSalerService
{
/**
* 查询业务员
*
* @param salerid 业务员主键
* @return 业务员
*/
public GrBiPubSaler selectGrBiPubSalerBySalerid(Long salerid);
/**
* 查询业务员列表
*
* @param grBiPubSaler 业务员
* @return 业务员集合
*/
public List<GrBiPubSaler> selectGrBiPubSalerList(GrBiPubSaler grBiPubSaler);
/**
* 新增业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
public int insertGrBiPubSaler(GrBiPubSaler grBiPubSaler);
/**
* 修改业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
public int updateGrBiPubSaler(GrBiPubSaler grBiPubSaler);
/**
* 批量删除业务员
*
* @param salerids 需要删除的业务员主键集合
* @return 结果
*/
public int deleteGrBiPubSalerBySalerids(Long[] salerids);
/**
* 删除业务员信息
*
* @param salerid 业务员主键
* @return 结果
*/
public int deleteGrBiPubSalerBySalerid(Long salerid);
void generateSaler(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubSaletype;
import org.apache.ibatis.annotations.Param;
/**
* 销售类型Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubSaletypeService
{
/**
* 查询销售类型
*
* @param saletypeid 销售类型主键
* @return 销售类型
*/
public GrBiPubSaletype selectGrBiPubSaletypeBySaletypeid(Long saletypeid);
/**
* 查询销售类型列表
*
* @param grBiPubSaletype 销售类型
* @return 销售类型集合
*/
public List<GrBiPubSaletype> selectGrBiPubSaletypeList(GrBiPubSaletype grBiPubSaletype);
/**
* 新增销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
public int insertGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype);
/**
* 修改销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
public int updateGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype);
/**
* 批量删除销售类型
*
* @param saletypeids 需要删除的销售类型主键集合
* @return 结果
*/
public int deleteGrBiPubSaletypeBySaletypeids(Long[] saletypeids);
/**
* 删除销售类型信息
*
* @param saletypeid 销售类型主键
* @return 结果
*/
public int deleteGrBiPubSaletypeBySaletypeid(Long saletypeid);
void generateSaletype(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -0,0 +1,64 @@
package com.lideeyunji.core.framework.service;
import java.util.List;
import com.lideeyunji.core.framework.entity.GrBiPubSalezone;
import org.apache.ibatis.annotations.Param;
/**
* 业务区域Service接口
*
* @author king
* @date 2026-03-14
*/
public interface IGrBiPubSalezoneService
{
/**
* 查询业务区域
*
* @param salezoneid 业务区域主键
* @return 业务区域
*/
public GrBiPubSalezone selectGrBiPubSalezoneBySalezoneid(Long salezoneid);
/**
* 查询业务区域列表
*
* @param grBiPubSalezone 业务区域
* @return 业务区域集合
*/
public List<GrBiPubSalezone> selectGrBiPubSalezoneList(GrBiPubSalezone grBiPubSalezone);
/**
* 新增业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
public int insertGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone);
/**
* 修改业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
public int updateGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone);
/**
* 批量删除业务区域
*
* @param salezoneids 需要删除的业务区域主键集合
* @return 结果
*/
public int deleteGrBiPubSalezoneBySalezoneids(Long[] salezoneids);
/**
* 删除业务区域信息
*
* @param salezoneid 业务区域主键
* @return 结果
*/
public int deleteGrBiPubSalezoneBySalezoneid(Long salezoneid);
void generateSalezone(@Param("dataSourceType") String dataSourceType);
}

View File

@@ -1,7 +1,9 @@
package com.lideeyunji.core.framework.service;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lideeyunji.core.framework.entity.GrNhEntity;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import java.util.List;
@@ -17,6 +19,7 @@ public interface IGrNhService extends IService<GrNhEntity> {
void delete(List<Long> idList);
Integer deltetNH(GrNhEntity grNhEntity);
}

View File

@@ -0,0 +1,54 @@
package com.lideeyunji.core.framework.service.impl;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiStLot;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.lideeyunji.core.framework.mapper.GrBiPubCustomMapper;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.service.IGrBiPubCustomService;
import org.springframework.transaction.annotation.Transactional;
/**
* 客户Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubCustomServiceImpl extends ServiceImpl<GrBiPubCustomMapper, GrBiPubCustom> implements IGrBiPubCustomService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateCustom(String dataSourceType) {
// 获取数据
List<GrBiPubCustom> grBiSaSetdtlList = this.baseMapper.getCustomList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldCustom(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubCustom grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
}

View File

@@ -0,0 +1,124 @@
package com.lideeyunji.core.framework.service.impl;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.lideeyunji.core.framework.mapper.GrBiPubDosageMapper;
import com.lideeyunji.core.framework.entity.GrBiPubDosage;
import com.lideeyunji.core.framework.service.IGrBiPubDosageService;
/**
* 剂型Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubDosageServiceImpl extends ServiceImpl<GrBiPubDosageMapper, GrBiPubDosage> implements IGrBiPubDosageService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateDosage(String dataSourceType) {
// 获取数据
List<GrBiPubDosage> grBiSaSetdtlList = this.baseMapper.getDosageList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldDosage(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubDosage grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询剂型
*
* @param dosageid 剂型主键
* @return 剂型
*/
@Override
public GrBiPubDosage selectGrBiPubDosageByDosageid(Long dosageid)
{
return this.baseMapper.selectGrBiPubDosageByDosageid(dosageid);
}
/**
* 查询剂型列表
*
* @param grBiPubDosage 剂型
* @return 剂型
*/
@Override
public List<GrBiPubDosage> selectGrBiPubDosageList(GrBiPubDosage grBiPubDosage)
{
return this.baseMapper.selectGrBiPubDosageList(grBiPubDosage);
}
/**
* 新增剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
@Override
public int insertGrBiPubDosage(GrBiPubDosage grBiPubDosage)
{
return this.baseMapper.insertGrBiPubDosage(grBiPubDosage);
}
/**
* 修改剂型
*
* @param grBiPubDosage 剂型
* @return 结果
*/
@Override
public int updateGrBiPubDosage(GrBiPubDosage grBiPubDosage)
{
return this.baseMapper.updateGrBiPubDosage(grBiPubDosage);
}
/**
* 批量删除剂型
*
* @param dosageids 需要删除的剂型主键
* @return 结果
*/
@Override
public int deleteGrBiPubDosageByDosageids(Long[] dosageids)
{
return this.baseMapper.deleteGrBiPubDosageByDosageids(dosageids);
}
/**
* 删除剂型信息
*
* @param dosageid 剂型主键
* @return 结果
*/
@Override
public int deleteGrBiPubDosageByDosageid(Long dosageid)
{
return this.baseMapper.deleteGrBiPubDosageByDosageid(dosageid);
}
}

View File

@@ -0,0 +1,123 @@
package com.lideeyunji.core.framework.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.entity.GrBiPubGoods;
import com.lideeyunji.core.framework.mapper.GrBiPubGoodsMapper;
import com.lideeyunji.core.framework.service.IGrBiPubGoodsService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 货品Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubGoodsServiceImpl extends ServiceImpl<GrBiPubGoodsMapper, GrBiPubGoods> implements IGrBiPubGoodsService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateGoods(String dataSourceType) {
// 获取数据
List<GrBiPubGoods> grBiSaSetdtlList = this.baseMapper.getGoodsList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldGoods(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubGoods grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询货品
*
* @param goodsid 货品主键
* @return 货品
*/
@Override
public GrBiPubGoods selectGrBiPubGoodsByGoodsid(Long goodsid)
{
return this.baseMapper.selectGrBiPubGoodsByGoodsid(goodsid);
}
/**
* 查询货品列表
*
* @param grBiPubGoods 货品
* @return 货品
*/
@Override
public List<GrBiPubGoods> selectGrBiPubGoodsList(GrBiPubGoods grBiPubGoods)
{
return this.baseMapper.selectGrBiPubGoodsList(grBiPubGoods);
}
/**
* 新增货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
@Override
public int insertGrBiPubGoods(GrBiPubGoods grBiPubGoods)
{
return this.baseMapper.insertGrBiPubGoods(grBiPubGoods);
}
/**
* 修改货品
*
* @param grBiPubGoods 货品
* @return 结果
*/
@Override
public int updateGrBiPubGoods(GrBiPubGoods grBiPubGoods)
{
return this.baseMapper.updateGrBiPubGoods(grBiPubGoods);
}
/**
* 批量删除货品
*
* @param goodsids 需要删除的货品主键
* @return 结果
*/
@Override
public int deleteGrBiPubGoodsByGoodsids(Long[] goodsids)
{
return this.baseMapper.deleteGrBiPubGoodsByGoodsids(goodsids);
}
/**
* 删除货品信息
*
* @param goodsid 货品主键
* @return 结果
*/
@Override
public int deleteGrBiPubGoodsByGoodsid(Long goodsid)
{
return this.baseMapper.deleteGrBiPubGoodsByGoodsid(goodsid);
}
}

View File

@@ -0,0 +1,123 @@
package com.lideeyunji.core.framework.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.entity.GrBiPubProvince;
import com.lideeyunji.core.framework.mapper.GrBiPubProvinceMapper;
import com.lideeyunji.core.framework.service.IGrBiPubProvinceService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 行政区域Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubProvinceServiceImpl extends ServiceImpl<GrBiPubProvinceMapper, GrBiPubProvince> implements IGrBiPubProvinceService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateProvince(String dataSourceType) {
// 获取数据
List<GrBiPubProvince> grBiSaSetdtlList = this.baseMapper.getProvinceList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldProvince(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubProvince grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询行政区域
*
* @param provinceid 行政区域主键
* @return 行政区域
*/
@Override
public GrBiPubProvince selectGrBiPubProvinceByProvinceid(Long provinceid)
{
return this.baseMapper.selectGrBiPubProvinceByProvinceid(provinceid);
}
/**
* 查询行政区域列表
*
* @param grBiPubProvince 行政区域
* @return 行政区域
*/
@Override
public List<GrBiPubProvince> selectGrBiPubProvinceList(GrBiPubProvince grBiPubProvince)
{
return this.baseMapper.selectGrBiPubProvinceList(grBiPubProvince);
}
/**
* 新增行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
@Override
public int insertGrBiPubProvince(GrBiPubProvince grBiPubProvince)
{
return this.baseMapper.insertGrBiPubProvince(grBiPubProvince);
}
/**
* 修改行政区域
*
* @param grBiPubProvince 行政区域
* @return 结果
*/
@Override
public int updateGrBiPubProvince(GrBiPubProvince grBiPubProvince)
{
return this.baseMapper.updateGrBiPubProvince(grBiPubProvince);
}
/**
* 批量删除行政区域
*
* @param provinceids 需要删除的行政区域主键
* @return 结果
*/
@Override
public int deleteGrBiPubProvinceByProvinceids(Long[] provinceids)
{
return this.baseMapper.deleteGrBiPubProvinceByProvinceids(provinceids);
}
/**
* 删除行政区域信息
*
* @param provinceid 行政区域主键
* @return 结果
*/
@Override
public int deleteGrBiPubProvinceByProvinceid(Long provinceid)
{
return this.baseMapper.deleteGrBiPubProvinceByProvinceid(provinceid);
}
}

View File

@@ -0,0 +1,124 @@
package com.lideeyunji.core.framework.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.entity.GrBiPubSaler;
import com.lideeyunji.core.framework.mapper.GrBiPubSalerMapper;
import com.lideeyunji.core.framework.service.IGrBiPubSalerService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 业务员Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubSalerServiceImpl extends ServiceImpl<GrBiPubSalerMapper, GrBiPubSaler> implements IGrBiPubSalerService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateSaler(String dataSourceType) {
// 获取数据
List<GrBiPubSaler> grBiSaSetdtlList = this.baseMapper.getSalerList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldSaler(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubSaler grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询业务员
*
* @param salerid 业务员主键
* @return 业务员
*/
@Override
public GrBiPubSaler selectGrBiPubSalerBySalerid(Long salerid)
{
return this.baseMapper.selectGrBiPubSalerBySalerid(salerid);
}
/**
* 查询业务员列表
*
* @param grBiPubSaler 业务员
* @return 业务员
*/
@Override
public List<GrBiPubSaler> selectGrBiPubSalerList(GrBiPubSaler grBiPubSaler)
{
return this.baseMapper.selectGrBiPubSalerList(grBiPubSaler);
}
/**
* 新增业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
@Override
public int insertGrBiPubSaler(GrBiPubSaler grBiPubSaler)
{
return this.baseMapper.insertGrBiPubSaler(grBiPubSaler);
}
/**
* 修改业务员
*
* @param grBiPubSaler 业务员
* @return 结果
*/
@Override
public int updateGrBiPubSaler(GrBiPubSaler grBiPubSaler)
{
return this.baseMapper.updateGrBiPubSaler(grBiPubSaler);
}
/**
* 批量删除业务员
*
* @param salerids 需要删除的业务员主键
* @return 结果
*/
@Override
public int deleteGrBiPubSalerBySalerids(Long[] salerids)
{
return this.baseMapper.deleteGrBiPubSalerBySalerids(salerids);
}
/**
* 删除业务员信息
*
* @param salerid 业务员主键
* @return 结果
*/
@Override
public int deleteGrBiPubSalerBySalerid(Long salerid)
{
return this.baseMapper.deleteGrBiPubSalerBySalerid(salerid);
}
}

View File

@@ -0,0 +1,123 @@
package com.lideeyunji.core.framework.service.impl;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.lideeyunji.core.framework.mapper.GrBiPubSaletypeMapper;
import com.lideeyunji.core.framework.entity.GrBiPubSaletype;
import com.lideeyunji.core.framework.service.IGrBiPubSaletypeService;
/**
* 销售类型Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubSaletypeServiceImpl extends ServiceImpl<GrBiPubSaletypeMapper, GrBiPubSaletype> implements IGrBiPubSaletypeService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateSaletype(String dataSourceType) {
// 获取数据
List<GrBiPubSaletype> grBiSaSetdtlList = this.baseMapper.getSaletypeList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldSaletype(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubSaletype grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询销售类型
*
* @param saletypeid 销售类型主键
* @return 销售类型
*/
@Override
public GrBiPubSaletype selectGrBiPubSaletypeBySaletypeid(Long saletypeid)
{
return this.baseMapper.selectGrBiPubSaletypeBySaletypeid(saletypeid);
}
/**
* 查询销售类型列表
*
* @param grBiPubSaletype 销售类型
* @return 销售类型
*/
@Override
public List<GrBiPubSaletype> selectGrBiPubSaletypeList(GrBiPubSaletype grBiPubSaletype)
{
return this.baseMapper.selectGrBiPubSaletypeList(grBiPubSaletype);
}
/**
* 新增销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
@Override
public int insertGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype)
{
return this.baseMapper.insertGrBiPubSaletype(grBiPubSaletype);
}
/**
* 修改销售类型
*
* @param grBiPubSaletype 销售类型
* @return 结果
*/
@Override
public int updateGrBiPubSaletype(GrBiPubSaletype grBiPubSaletype)
{
return this.baseMapper.updateGrBiPubSaletype(grBiPubSaletype);
}
/**
* 批量删除销售类型
*
* @param saletypeids 需要删除的销售类型主键
* @return 结果
*/
@Override
public int deleteGrBiPubSaletypeBySaletypeids(Long[] saletypeids)
{
return this.baseMapper.deleteGrBiPubSaletypeBySaletypeids(saletypeids);
}
/**
* 删除销售类型信息
*
* @param saletypeid 销售类型主键
* @return 结果
*/
@Override
public int deleteGrBiPubSaletypeBySaletypeid(Long saletypeid)
{
return this.baseMapper.deleteGrBiPubSaletypeBySaletypeid(saletypeid);
}
}

View File

@@ -0,0 +1,123 @@
package com.lideeyunji.core.framework.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiPubCustom;
import com.lideeyunji.core.framework.entity.GrBiPubSalezone;
import com.lideeyunji.core.framework.mapper.GrBiPubSalezoneMapper;
import com.lideeyunji.core.framework.service.IGrBiPubSalezoneService;
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 业务区域Service业务层处理
*
* @author king
* @date 2026-03-14
*/
@Slf4j
@Service
public class GrBiPubSalezoneServiceImpl extends ServiceImpl<GrBiPubSalezoneMapper, GrBiPubSalezone> implements IGrBiPubSalezoneService
{
@Override
@DSTransactional
@DS(value = "#dataSourceType")
public void generateSalezone(String dataSourceType) {
// 获取数据
List<GrBiPubSalezone> grBiSaSetdtlList = this.baseMapper.getSalezoneList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {
return;
}
//保存数据
int reNum = this.baseMapper.deleteOldSalezone(lideeYunJiBaseConstant.DS_ERP_BI_DATA);
log.info("删除数量:{}", reNum);
//使用 saveBatch 批量插入
boolean success = this.saveBatch(grBiSaSetdtlList, 500);
if (!success) {
throw new RuntimeException("批量新增异常");
}
// for (GrBiPubSalezone grBiSaSetdtl : grBiSaSetdtlList) {
// int re = this.baseMapper.insert(grBiSaSetdtl);
// if (re < 1) {
// throw new RuntimeException("批量新增异常");
// }
// }
}
/**
* 查询业务区域
*
* @param salezoneid 业务区域主键
* @return 业务区域
*/
@Override
public GrBiPubSalezone selectGrBiPubSalezoneBySalezoneid(Long salezoneid)
{
return this.baseMapper.selectGrBiPubSalezoneBySalezoneid(salezoneid);
}
/**
* 查询业务区域列表
*
* @param grBiPubSalezone 业务区域
* @return 业务区域
*/
@Override
public List<GrBiPubSalezone> selectGrBiPubSalezoneList(GrBiPubSalezone grBiPubSalezone)
{
return this.baseMapper.selectGrBiPubSalezoneList(grBiPubSalezone);
}
/**
* 新增业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
@Override
public int insertGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone)
{
return this.baseMapper.insertGrBiPubSalezone(grBiPubSalezone);
}
/**
* 修改业务区域
*
* @param grBiPubSalezone 业务区域
* @return 结果
*/
@Override
public int updateGrBiPubSalezone(GrBiPubSalezone grBiPubSalezone)
{
return this.baseMapper.updateGrBiPubSalezone(grBiPubSalezone);
}
/**
* 批量删除业务区域
*
* @param salezoneids 需要删除的业务区域主键
* @return 结果
*/
@Override
public int deleteGrBiPubSalezoneBySalezoneids(Long[] salezoneids)
{
return this.baseMapper.deleteGrBiPubSalezoneBySalezoneids(salezoneids);
}
/**
* 删除业务区域信息
*
* @param salezoneid 业务区域主键
* @return 结果
*/
@Override
public int deleteGrBiPubSalezoneBySalezoneid(Long salezoneid)
{
return this.baseMapper.deleteGrBiPubSalezoneBySalezoneid(salezoneid);
}
}

View File

@@ -2,6 +2,7 @@ package com.lideeyunji.core.framework.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrBiSaAgg;
@@ -23,7 +24,7 @@ public class GrBiSaAggServiceImpl extends ServiceImpl<GrBiSaAggMapper, GrBiSaAgg
* 计算销售报表
*/
@Override
@Transactional
@DSTransactional
@DS(value = "#dataSourceType")
public void generateSalesReportJob(@Param("dataSourceType") String dataSourceType) {
//获取本地mysql数据库中表中UPDATE_TIME最新的数据
@@ -62,7 +63,9 @@ public class GrBiSaAggServiceImpl extends ServiceImpl<GrBiSaAggMapper, GrBiSaAgg
//保存数据
removeAndSaveBatch(pastYear, pastMonth, currentYear, currentMonth, grBiSaSetdtlList);
this.baseMapper.updateThisData();
this.baseMapper.updateLastYearOfMonthData();
this.baseMapper.updateLastData();
this.baseMapper.updateLastMonthSamoney();
this.baseMapper.updateComplexCalculate1();
this.baseMapper.updateComplexCalculate2();
this.baseMapper.updateComplexCalculate3();

View File

@@ -28,34 +28,6 @@ public class GrBiStLotServiceImpl extends ServiceImpl<GrBiStLotMapper, GrBiStLot
@DSTransactional
@DS(value = "#dataSourceType")
public void generateStLot(String dataSourceType) {
//获取本地mysql数据库中表中UPDATE_TIME最新的数据
// LambdaQueryWrapper<GrBiStLot> queryWrapper = new LambdaQueryWrapper<GrBiStLot>().orderByDesc(GrBiStLot::getUseYear, GrBiStLot::getUseMonth).last("LIMIT 1");
// GrBiStLot real = this.baseMapper.selectOne(queryWrapper);
// int lastUserYear = 2022;
// int lastUserMonth = 1;
// if(real != null){
// lastUserYear = Integer.parseInt(real.getUseYear());
// lastUserMonth = Integer.parseInt(real.getUseMonth());
// }
// // 获取当前时间的年和月
// LocalDateTime now = LocalDateTime.now();
// int currentYear = now.getYear();
// int currentMonth = now.getMonthValue();
//
// // 获取三个月前的时间和年月
// LocalDateTime threeMonthsAgo = now.minusMonths(3);
// int pastYear = threeMonthsAgo.getYear();
// int pastMonth = threeMonthsAgo.getMonthValue();
//
// log.info("最后更新的年月:{}年{}月", lastUserYear, lastUserMonth);
// log.info("当前:{}年{}月", currentYear, currentMonth);
// log.info("三个月前:{}年{}月", pastYear, pastMonth);
// if (lastUserYear < pastYear || (lastUserYear == pastYear && lastUserMonth < pastMonth)) {
// pastYear = lastUserYear;
// pastMonth = lastUserMonth;
// }
// log.info("开始时间:{}年{}月, 结束时间:{}年{}月", pastYear, pastMonth, currentYear, currentMonth);
// 获取数据
List<GrBiStLot> grBiSaSetdtlList = this.baseMapper.getStLotList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {

View File

@@ -29,34 +29,6 @@ public class GrBiStProductAvlServiceImpl extends ServiceImpl<GrBiStProductAvlMap
@DSTransactional
@DS(value = "#dataSourceType")
public void generateStProductAvl(String dataSourceType) {
//获取本地mysql数据库中表中UPDATE_TIME最新的数据
// LambdaQueryWrapper<grBiStProductAvl> queryWrapper = new LambdaQueryWrapper<grBiStProductAvl>().orderByDesc(grBiStProductAvl::getUseYear, grBiStProductAvl::getUseMonth).last("LIMIT 1");
// grBiStProductAvl real = this.baseMapper.selectOne(queryWrapper);
// int lastUserYear = 2022;
// int lastUserMonth = 1;
// if(real != null){
// lastUserYear = Integer.parseInt(real.getUseYear());
// lastUserMonth = Integer.parseInt(real.getUseMonth());
// }
// // 获取当前时间的年和月
// LocalDateTime now = LocalDateTime.now();
// int currentYear = now.getYear();
// int currentMonth = now.getMonthValue();
//
// // 获取三个月前的时间和年月
// LocalDateTime threeMonthsAgo = now.minusMonths(3);
// int pastYear = threeMonthsAgo.getYear();
// int pastMonth = threeMonthsAgo.getMonthValue();
//
// log.info("最后更新的年月:{}年{}月", lastUserYear, lastUserMonth);
// log.info("当前:{}年{}月", currentYear, currentMonth);
// log.info("三个月前:{}年{}月", pastYear, pastMonth);
// if (lastUserYear < pastYear || (lastUserYear == pastYear && lastUserMonth < pastMonth)) {
// pastYear = lastUserYear;
// pastMonth = lastUserMonth;
// }
// log.info("开始时间:{}年{}月, 结束时间:{}年{}月", pastYear, pastMonth, currentYear, currentMonth);
// 获取数据
List<GrBiStProductAvl> grBiSaSetdtlList = this.baseMapper.getStProductList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {

View File

@@ -28,34 +28,6 @@ public class GrBiStProductServiceImpl extends ServiceImpl<GrBiStProductMapper, G
@DSTransactional
@DS(value = "#dataSourceType")
public void generateStProduct(String dataSourceType) {
//获取本地mysql数据库中表中UPDATE_TIME最新的数据
// LambdaQueryWrapper<GrBiStProduct> queryWrapper = new LambdaQueryWrapper<GrBiStProduct>().orderByDesc(GrBiStProduct::getUseYear, GrBiStProduct::getUseMonth).last("LIMIT 1");
// GrBiStProduct real = this.baseMapper.selectOne(queryWrapper);
// int lastUserYear = 2022;
// int lastUserMonth = 1;
// if(real != null){
// lastUserYear = Integer.parseInt(real.getUseYear());
// lastUserMonth = Integer.parseInt(real.getUseMonth());
// }
// // 获取当前时间的年和月
// LocalDateTime now = LocalDateTime.now();
// int currentYear = now.getYear();
// int currentMonth = now.getMonthValue();
//
// // 获取三个月前的时间和年月
// LocalDateTime threeMonthsAgo = now.minusMonths(3);
// int pastYear = threeMonthsAgo.getYear();
// int pastMonth = threeMonthsAgo.getMonthValue();
//
// log.info("最后更新的年月:{}年{}月", lastUserYear, lastUserMonth);
// log.info("当前:{}年{}月", currentYear, currentMonth);
// log.info("三个月前:{}年{}月", pastYear, pastMonth);
// if (lastUserYear < pastYear || (lastUserYear == pastYear && lastUserMonth < pastMonth)) {
// pastYear = lastUserYear;
// pastMonth = lastUserMonth;
// }
// log.info("开始时间:{}年{}月, 结束时间:{}年{}月", pastYear, pastMonth, currentYear, currentMonth);
// 获取数据
List<GrBiStProduct> grBiSaSetdtlList = this.baseMapper.getStProductList(lideeYunJiBaseConstant.DS_ORACLE_GRYYBI);
if (CollUtil.isEmpty(grBiSaSetdtlList)) {

View File

@@ -1,6 +1,8 @@
package com.lideeyunji.core.framework.service.impl;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lideeyunji.core.framework.entity.GrNhEntity;
import com.lideeyunji.core.framework.mapper.GrNhMapper;
@@ -11,6 +13,7 @@ import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
@@ -29,12 +32,60 @@ public class GrNhServiceImpl extends ServiceImpl<GrNhMapper, GrNhEntity> impleme
removeByIds(idList);
}
@Override
@DSTransactional
public Integer deltetNH(GrNhEntity grNhEntity) {
GrNhEntity old = baseMapper.selectOne(new Wrapper<GrNhEntity>() {
@Override
public GrNhEntity getEntity() {
return null;
}
@Override
public MergeSegments getExpression() {
return null;
}
@Override
public void clear() {
}
@Override
public String getSqlSegment() {
return "";
}
}).setAddTime(new Date());
int re = this.baseMapper.deltetNH(lideeYunJiBaseConstant.DS_ERP_BI_DATA, grNhEntity);
return re;
}
//新增
@Override
@DSTransactional
public Integer saveNH(GrNhEntity grNhEntity) {
GrNhEntity old = baseMapper.selectOne(new Wrapper<GrNhEntity>() {
@Override
public GrNhEntity getEntity() {
return null;
}
@Override
public MergeSegments getExpression() {
return null;
}
@Override
public void clear() {
}
@Override
public String getSqlSegment() {
return "";
}
}).setAddTime(new Date());
int re = this.baseMapper.save(lideeYunJiBaseConstant.DS_ERP_BI_DATA, grNhEntity);
return re;
}

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubCustomMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubCustom" id="GrBiPubCustomResult">
<result property="customid" column="CUSTOMID" />
<result property="customname" column="CUSTOMNAME" />
<result property="customno" column="CUSTOMNO" />
<result property="customopcode" column="CUSTOMOPCODE" />
<result property="updateTime" column="UPDATE_TIME" />
</resultMap>
<sql id="selectGrBiPubCustomVo">
select CUSTOMID, CUSTOMNAME, CUSTOMNO, CUSTOMOPCODE, UPDATE_TIME from gr_bi_pub_custom
</sql>
<select id="selectGrBiPubCustomList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubCustom" resultMap="GrBiPubCustomResult">
<include refid="selectGrBiPubCustomVo"/>
<where>
<if test="customid != null "> and CUSTOMID = #{customid}</if>
<if test="customname != null and customname != ''"> and CUSTOMNAME like concat('%', #{customname}, '%')</if>
<if test="customno != null and customno != ''"> and CUSTOMNO = #{customno}</if>
<if test="customopcode != null and customopcode != ''"> and CUSTOMOPCODE = #{customopcode}</if>
<if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
</where>
</select>
<select id="selectGrBiPubCustomByCustomid" parameterType="Long" resultMap="GrBiPubCustomResult">
<include refid="selectGrBiPubCustomVo"/>
where CUSTOMID = #{customid}
</select>
<insert id="insertGrBiPubCustom" parameterType="com.lideeyunji.core.framework.entity.GrBiPubCustom">
insert into gr_bi_pub_custom
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="customid != null">CUSTOMID,</if>
<if test="customname != null">CUSTOMNAME,</if>
<if test="customno != null">CUSTOMNO,</if>
<if test="customopcode != null">CUSTOMOPCODE,</if>
<if test="updateTime != null">UPDATE_TIME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="customid != null">#{customid},</if>
<if test="customname != null">#{customname},</if>
<if test="customno != null">#{customno},</if>
<if test="customopcode != null">#{customopcode},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateGrBiPubCustom" parameterType="com.lideeyunji.core.framework.entity.GrBiPubCustom">
update gr_bi_pub_custom
<trim prefix="SET" suffixOverrides=",">
<if test="customname != null">CUSTOMNAME = #{customname},</if>
<if test="customno != null">CUSTOMNO = #{customno},</if>
<if test="customopcode != null">CUSTOMOPCODE = #{customopcode},</if>
<if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
</trim>
where CUSTOMID = #{customid}
</update>
<delete id="deleteGrBiPubCustomByCustomid" parameterType="Long">
delete from gr_bi_pub_custom where CUSTOMID = #{customid}
</delete>
<delete id="deleteGrBiPubCustomByCustomids" parameterType="String">
delete from gr_bi_pub_custom where CUSTOMID in
<foreach item="customid" collection="array" open="(" separator="," close=")">
#{customid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubDosageMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubDosage" id="GrBiPubDosageResult">
<result property="dosageid" column="DOSAGEID" />
<result property="dosagename" column="DOSAGENAME" />
</resultMap>
<sql id="selectGrBiPubDosageVo">
select DOSAGEID, DOSAGENAME from gr_bi_pub_dosage
</sql>
<select id="selectGrBiPubDosageList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubDosage" resultMap="GrBiPubDosageResult">
<include refid="selectGrBiPubDosageVo"/>
<where>
<if test="dosageid != null "> and DOSAGEID = #{dosageid}</if>
<if test="dosagename != null and dosagename != ''"> and DOSAGENAME like concat('%', #{dosagename}, '%')</if>
</where>
</select>
<select id="selectGrBiPubDosageByDosageid" parameterType="Long" resultMap="GrBiPubDosageResult">
<include refid="selectGrBiPubDosageVo"/>
where DOSAGEID = #{dosageid}
</select>
<insert id="insertGrBiPubDosage" parameterType="com.lideeyunji.core.framework.entity.GrBiPubDosage">
insert into gr_bi_pub_dosage
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="dosageid != null">DOSAGEID,</if>
<if test="dosagename != null">DOSAGENAME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="dosageid != null">#{dosageid},</if>
<if test="dosagename != null">#{dosagename},</if>
</trim>
</insert>
<update id="updateGrBiPubDosage" parameterType="com.lideeyunji.core.framework.entity.GrBiPubDosage">
update gr_bi_pub_dosage
<trim prefix="SET" suffixOverrides=",">
<if test="dosagename != null">DOSAGENAME = #{dosagename},</if>
</trim>
where DOSAGEID = #{dosageid}
</update>
<delete id="deleteGrBiPubDosageByDosageid" parameterType="Long">
delete from gr_bi_pub_dosage where DOSAGEID = #{dosageid}
</delete>
<delete id="deleteGrBiPubDosageByDosageids" parameterType="String">
delete from gr_bi_pub_dosage where DOSAGEID in
<foreach item="dosageid" collection="array" open="(" separator="," close=")">
#{dosageid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubGoodsMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubGoods" id="GrBiPubGoodsResult">
<result property="goodsid" column="GOODSID" />
<result property="goodsname" column="GOODSNAME" />
<result property="goodstype" column="GOODSTYPE" />
<result property="goodsunit" column="GOODSUNIT" />
<result property="goodsno" column="GOODSNO" />
<result property="goodsopcode" column="GOODSOPCODE" />
<result property="dosageid" column="DOSAGEID" />
<result property="dosagename" column="DOSAGENAME" />
<result property="stdgoodsname" column="STDGOODSNAME" />
<result property="stdgoodstype" column="STDGOODSTYPE" />
<result property="updateTime" column="UPDATE_TIME" />
</resultMap>
<sql id="selectGrBiPubGoodsVo">
select GOODSID, GOODSNAME, GOODSTYPE, GOODSUNIT, GOODSNO, GOODSOPCODE, DOSAGEID, DOSAGENAME, STDGOODSNAME, STDGOODSTYPE, UPDATE_TIME from gr_bi_pub_goods
</sql>
<select id="selectGrBiPubGoodsList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubGoods" resultMap="GrBiPubGoodsResult">
<include refid="selectGrBiPubGoodsVo"/>
<where>
<if test="goodsid != null "> and GOODSID = #{goodsid}</if>
<if test="goodsname != null and goodsname != ''"> and GOODSNAME like concat('%', #{goodsname}, '%')</if>
<if test="goodstype != null and goodstype != ''"> and GOODSTYPE = #{goodstype}</if>
<if test="goodsunit != null and goodsunit != ''"> and GOODSUNIT = #{goodsunit}</if>
<if test="goodsno != null and goodsno != ''"> and GOODSNO = #{goodsno}</if>
<if test="goodsopcode != null and goodsopcode != ''"> and GOODSOPCODE = #{goodsopcode}</if>
<if test="dosageid != null "> and DOSAGEID = #{dosageid}</if>
<if test="dosagename != null and dosagename != ''"> and DOSAGENAME like concat('%', #{dosagename}, '%')</if>
<if test="stdgoodsname != null and stdgoodsname != ''"> and STDGOODSNAME like concat('%', #{stdgoodsname}, '%')</if>
<if test="stdgoodstype != null and stdgoodstype != ''"> and STDGOODSTYPE = #{stdgoodstype}</if>
<if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
</where>
</select>
<select id="selectGrBiPubGoodsByGoodsid" parameterType="Long" resultMap="GrBiPubGoodsResult">
<include refid="selectGrBiPubGoodsVo"/>
where GOODSID = #{goodsid}
</select>
<insert id="insertGrBiPubGoods" parameterType="com.lideeyunji.core.framework.entity.GrBiPubGoods">
insert into gr_bi_pub_goods
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="goodsid != null">GOODSID,</if>
<if test="goodsname != null">GOODSNAME,</if>
<if test="goodstype != null">GOODSTYPE,</if>
<if test="goodsunit != null">GOODSUNIT,</if>
<if test="goodsno != null">GOODSNO,</if>
<if test="goodsopcode != null">GOODSOPCODE,</if>
<if test="dosageid != null">DOSAGEID,</if>
<if test="dosagename != null">DOSAGENAME,</if>
<if test="stdgoodsname != null">STDGOODSNAME,</if>
<if test="stdgoodstype != null">STDGOODSTYPE,</if>
<if test="updateTime != null">UPDATE_TIME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="goodsid != null">#{goodsid},</if>
<if test="goodsname != null">#{goodsname},</if>
<if test="goodstype != null">#{goodstype},</if>
<if test="goodsunit != null">#{goodsunit},</if>
<if test="goodsno != null">#{goodsno},</if>
<if test="goodsopcode != null">#{goodsopcode},</if>
<if test="dosageid != null">#{dosageid},</if>
<if test="dosagename != null">#{dosagename},</if>
<if test="stdgoodsname != null">#{stdgoodsname},</if>
<if test="stdgoodstype != null">#{stdgoodstype},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateGrBiPubGoods" parameterType="com.lideeyunji.core.framework.entity.GrBiPubGoods">
update gr_bi_pub_goods
<trim prefix="SET" suffixOverrides=",">
<if test="goodsname != null">GOODSNAME = #{goodsname},</if>
<if test="goodstype != null">GOODSTYPE = #{goodstype},</if>
<if test="goodsunit != null">GOODSUNIT = #{goodsunit},</if>
<if test="goodsno != null">GOODSNO = #{goodsno},</if>
<if test="goodsopcode != null">GOODSOPCODE = #{goodsopcode},</if>
<if test="dosageid != null">DOSAGEID = #{dosageid},</if>
<if test="dosagename != null">DOSAGENAME = #{dosagename},</if>
<if test="stdgoodsname != null">STDGOODSNAME = #{stdgoodsname},</if>
<if test="stdgoodstype != null">STDGOODSTYPE = #{stdgoodstype},</if>
<if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
</trim>
where GOODSID = #{goodsid}
</update>
<delete id="deleteGrBiPubGoodsByGoodsid" parameterType="Long">
delete from gr_bi_pub_goods where GOODSID = #{goodsid}
</delete>
<delete id="deleteGrBiPubGoodsByGoodsids" parameterType="String">
delete from gr_bi_pub_goods where GOODSID in
<foreach item="goodsid" collection="array" open="(" separator="," close=")">
#{goodsid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubProvinceMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubProvince" id="GrBiPubProvinceResult">
<result property="provinceid" column="PROVINCEID" />
<result property="provincename" column="PROVINCENAME" />
<result property="provinceno" column="PROVINCENO" />
<result property="provinceopcode" column="PROVINCEOPCODE" />
<result property="updateTime" column="UPDATE_TIME" />
</resultMap>
<sql id="selectGrBiPubProvinceVo">
select PROVINCEID, PROVINCENAME, PROVINCENO, PROVINCEOPCODE, UPDATE_TIME from gr_bi_pub_province
</sql>
<select id="selectGrBiPubProvinceList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubProvince" resultMap="GrBiPubProvinceResult">
<include refid="selectGrBiPubProvinceVo"/>
<where>
<if test="provinceid != null "> and PROVINCEID = #{provinceid}</if>
<if test="provincename != null and provincename != ''"> and PROVINCENAME like concat('%', #{provincename}, '%')</if>
<if test="provinceno != null "> and PROVINCENO = #{provinceno}</if>
<if test="provinceopcode != null and provinceopcode != ''"> and PROVINCEOPCODE = #{provinceopcode}</if>
<if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
</where>
</select>
<select id="selectGrBiPubProvinceByProvinceid" parameterType="Long" resultMap="GrBiPubProvinceResult">
<include refid="selectGrBiPubProvinceVo"/>
where PROVINCEID = #{provinceid}
</select>
<insert id="insertGrBiPubProvince" parameterType="com.lideeyunji.core.framework.entity.GrBiPubProvince">
insert into gr_bi_pub_province
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="provinceid != null">PROVINCEID,</if>
<if test="provincename != null">PROVINCENAME,</if>
<if test="provinceno != null">PROVINCENO,</if>
<if test="provinceopcode != null">PROVINCEOPCODE,</if>
<if test="updateTime != null">UPDATE_TIME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="provinceid != null">#{provinceid},</if>
<if test="provincename != null">#{provincename},</if>
<if test="provinceno != null">#{provinceno},</if>
<if test="provinceopcode != null">#{provinceopcode},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateGrBiPubProvince" parameterType="com.lideeyunji.core.framework.entity.GrBiPubProvince">
update gr_bi_pub_province
<trim prefix="SET" suffixOverrides=",">
<if test="provincename != null">PROVINCENAME = #{provincename},</if>
<if test="provinceno != null">PROVINCENO = #{provinceno},</if>
<if test="provinceopcode != null">PROVINCEOPCODE = #{provinceopcode},</if>
<if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
</trim>
where PROVINCEID = #{provinceid}
</update>
<delete id="deleteGrBiPubProvinceByProvinceid" parameterType="Long">
delete from gr_bi_pub_province where PROVINCEID = #{provinceid}
</delete>
<delete id="deleteGrBiPubProvinceByProvinceids" parameterType="String">
delete from gr_bi_pub_province where PROVINCEID in
<foreach item="provinceid" collection="array" open="(" separator="," close=")">
#{provinceid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubSalerMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubSaler" id="GrBiPubSalerResult">
<result property="salerid" column="SALERID" />
<result property="salername" column="SALERNAME" />
<result property="salerno" column="SALERNO" />
<result property="saleropcode" column="SALEROPCODE" />
<result property="updateTime" column="UPDATE_TIME" />
</resultMap>
<sql id="selectGrBiPubSalerVo">
select SALERID, SALERNAME, SALERNO, SALEROPCODE, UPDATE_TIME from gr_bi_pub_saler
</sql>
<select id="selectGrBiPubSalerList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaler" resultMap="GrBiPubSalerResult">
<include refid="selectGrBiPubSalerVo"/>
<where>
<if test="salerid != null "> and SALERID = #{salerid}</if>
<if test="salername != null and salername != ''"> and SALERNAME like concat('%', #{salername}, '%')</if>
<if test="salerno != null and salerno != ''"> and SALERNO = #{salerno}</if>
<if test="saleropcode != null and saleropcode != ''"> and SALEROPCODE = #{saleropcode}</if>
<if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
</where>
</select>
<select id="selectGrBiPubSalerBySalerid" parameterType="Long" resultMap="GrBiPubSalerResult">
<include refid="selectGrBiPubSalerVo"/>
where SALERID = #{salerid}
</select>
<insert id="insertGrBiPubSaler" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaler">
insert into gr_bi_pub_saler
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="salerid != null">SALERID,</if>
<if test="salername != null">SALERNAME,</if>
<if test="salerno != null">SALERNO,</if>
<if test="saleropcode != null">SALEROPCODE,</if>
<if test="updateTime != null">UPDATE_TIME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="salerid != null">#{salerid},</if>
<if test="salername != null">#{salername},</if>
<if test="salerno != null">#{salerno},</if>
<if test="saleropcode != null">#{saleropcode},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateGrBiPubSaler" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaler">
update gr_bi_pub_saler
<trim prefix="SET" suffixOverrides=",">
<if test="salername != null">SALERNAME = #{salername},</if>
<if test="salerno != null">SALERNO = #{salerno},</if>
<if test="saleropcode != null">SALEROPCODE = #{saleropcode},</if>
<if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
</trim>
where SALERID = #{salerid}
</update>
<delete id="deleteGrBiPubSalerBySalerid" parameterType="Long">
delete from gr_bi_pub_saler where SALERID = #{salerid}
</delete>
<delete id="deleteGrBiPubSalerBySalerids" parameterType="String">
delete from gr_bi_pub_saler where SALERID in
<foreach item="salerid" collection="array" open="(" separator="," close=")">
#{salerid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubSaletypeMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubSaletype" id="GrBiPubSaletypeResult">
<result property="saletypeid" column="SALETYPEID" />
<result property="saletypename" column="SALETYPENAME" />
</resultMap>
<sql id="selectGrBiPubSaletypeVo">
select SALETYPEID, SALETYPENAME from gr_bi_pub_saletype
</sql>
<select id="selectGrBiPubSaletypeList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaletype" resultMap="GrBiPubSaletypeResult">
<include refid="selectGrBiPubSaletypeVo"/>
<where>
<if test="saletypeid != null "> and SALETYPEID = #{saletypeid}</if>
<if test="saletypename != null and saletypename != ''"> and SALETYPENAME like concat('%', #{saletypename}, '%')</if>
</where>
</select>
<select id="selectGrBiPubSaletypeBySaletypeid" parameterType="Long" resultMap="GrBiPubSaletypeResult">
<include refid="selectGrBiPubSaletypeVo"/>
where SALETYPEID = #{saletypeid}
</select>
<insert id="insertGrBiPubSaletype" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaletype">
insert into gr_bi_pub_saletype
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="saletypeid != null">SALETYPEID,</if>
<if test="saletypename != null">SALETYPENAME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="saletypeid != null">#{saletypeid},</if>
<if test="saletypename != null">#{saletypename},</if>
</trim>
</insert>
<update id="updateGrBiPubSaletype" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSaletype">
update gr_bi_pub_saletype
<trim prefix="SET" suffixOverrides=",">
<if test="saletypename != null">SALETYPENAME = #{saletypename},</if>
</trim>
where SALETYPEID = #{saletypeid}
</update>
<delete id="deleteGrBiPubSaletypeBySaletypeid" parameterType="Long">
delete from gr_bi_pub_saletype where SALETYPEID = #{saletypeid}
</delete>
<delete id="deleteGrBiPubSaletypeBySaletypeids" parameterType="String">
delete from gr_bi_pub_saletype where SALETYPEID in
<foreach item="saletypeid" collection="array" open="(" separator="," close=")">
#{saletypeid}
</foreach>
</delete>
</mapper>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lideeyunji.core.framework.mapper.GrBiPubSalezoneMapper">
<resultMap type="com.lideeyunji.core.framework.entity.GrBiPubSalezone" id="GrBiPubSalezoneResult">
<result property="salezoneid" column="SALEZONEID" />
<result property="salezonename" column="SALEZONENAME" />
<result property="salezoneno" column="SALEZONENO" />
<result property="salezoneopcode" column="SALEZONEOPCODE" />
<result property="updateTime" column="UPDATE_TIME" />
</resultMap>
<sql id="selectGrBiPubSalezoneVo">
select SALEZONEID, SALEZONENAME, SALEZONENO, SALEZONEOPCODE, UPDATE_TIME from gr_bi_pub_salezone
</sql>
<select id="selectGrBiPubSalezoneList" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSalezone" resultMap="GrBiPubSalezoneResult">
<include refid="selectGrBiPubSalezoneVo"/>
<where>
<if test="salezoneid != null "> and SALEZONEID = #{salezoneid}</if>
<if test="salezonename != null and salezonename != ''"> and SALEZONENAME like concat('%', #{salezonename}, '%')</if>
<if test="salezoneno != null "> and SALEZONENO = #{salezoneno}</if>
<if test="salezoneopcode != null and salezoneopcode != ''"> and SALEZONEOPCODE = #{salezoneopcode}</if>
<if test="updateTime != null "> and UPDATE_TIME = #{updateTime}</if>
</where>
</select>
<select id="selectGrBiPubSalezoneBySalezoneid" parameterType="Long" resultMap="GrBiPubSalezoneResult">
<include refid="selectGrBiPubSalezoneVo"/>
where SALEZONEID = #{salezoneid}
</select>
<insert id="insertGrBiPubSalezone" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSalezone">
insert into gr_bi_pub_salezone
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="salezoneid != null">SALEZONEID,</if>
<if test="salezonename != null">SALEZONENAME,</if>
<if test="salezoneno != null">SALEZONENO,</if>
<if test="salezoneopcode != null">SALEZONEOPCODE,</if>
<if test="updateTime != null">UPDATE_TIME,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="salezoneid != null">#{salezoneid},</if>
<if test="salezonename != null">#{salezonename},</if>
<if test="salezoneno != null">#{salezoneno},</if>
<if test="salezoneopcode != null">#{salezoneopcode},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateGrBiPubSalezone" parameterType="com.lideeyunji.core.framework.entity.GrBiPubSalezone">
update gr_bi_pub_salezone
<trim prefix="SET" suffixOverrides=",">
<if test="salezonename != null">SALEZONENAME = #{salezonename},</if>
<if test="salezoneno != null">SALEZONENO = #{salezoneno},</if>
<if test="salezoneopcode != null">SALEZONEOPCODE = #{salezoneopcode},</if>
<if test="updateTime != null">UPDATE_TIME = #{updateTime},</if>
</trim>
where SALEZONEID = #{salezoneid}
</update>
<delete id="deleteGrBiPubSalezoneBySalezoneid" parameterType="Long">
delete from gr_bi_pub_salezone where SALEZONEID = #{salezoneid}
</delete>
<delete id="deleteGrBiPubSalezoneBySalezoneids" parameterType="String">
delete from gr_bi_pub_salezone where SALEZONEID in
<foreach item="salezoneid" collection="array" open="(" separator="," close=")">
#{salezoneid}
</foreach>
</delete>
</mapper>

View File

@@ -89,7 +89,7 @@
SALERID,
SUM( MONTHSAQTY ) AS THISSAQTY, -- 本年销量
SUM( MONTHSAMONEY ) AS THISSAMONEY, -- 本年销售金额
SUM( MONTHCOST) as THISCOST, -- 本年毛利额
SUM( MONTHCOST) as THISCOST, -- 本年销售成本
SUM( MONTHPROFIT ) AS THISPROFIT -- 本年毛利额
FROM
yunji_gr_bi_sa_agg
@@ -116,6 +116,94 @@
a.THISPROFIT = COALESCE ( b.THISPROFIT, 0 );
</update>
<update id="updateLastYearOfMonthData">
UPDATE yunji_gr_bi_sa_agg a
LEFT JOIN (
SELECT
USEYEAR,
USEMONTH,
GOODSID,
ZONEID,
PROVINCEID,
SALETYPEID,
DOSAGEID,
CUSTOMID,
SALERID,
SUM( MONTHSAQTY ) AS LASTYEAROFMONTHSAQTY,
SUM( MONTHSAMONEY ) AS LASTYEAROFMONTHSAMONEY,
SUM( MONTHCOST) as LASTYEAROFMONTHCOST,
SUM( MONTHPROFIT ) AS LASTYEAROFMONTHPROFIT
FROM
yunji_gr_bi_sa_agg
GROUP BY
USEYEAR,
USEMONTH,
GOODSID,
ZONEID,
PROVINCEID,
SALETYPEID,
DOSAGEID,
CUSTOMID,
SALERID
) b ON b.USEYEAR = a.USEYEAR-1
AND b.USEMONTH = a.USEMONTH
AND b.GOODSID = a.GOODSID
AND b.ZONEID = a.ZONEID
AND b.PROVINCEID = a.PROVINCEID
AND b.SALETYPEID = a.SALETYPEID
AND b.DOSAGEID = a.DOSAGEID
AND b.CUSTOMID = a.CUSTOMID
AND b.SALERID = a.SALERID
SET a.LASTYEAROFMONTHSAQTY = COALESCE ( b.LASTYEAROFMONTHSAQTY, 0 ),
a.LASTYEAROFMONTHSAMONEY = COALESCE ( b.LASTYEAROFMONTHSAMONEY, 0 ),
a.LASTYEAROFMONTHCOST = COALESCE ( b.LASTYEAROFMONTHCOST, 0 ),
a.LASTYEAROFMONTHPROFIT = COALESCE ( b.LASTYEAROFMONTHPROFIT, 0 );
</update>
<update id="updateLastMonthSamoney">
UPDATE yunji_gr_bi_sa_agg AS current_month
JOIN (
SELECT
-- 当前记录的维度和年月
USEYEAR,
USEMONTH,
GOODSID,
ZONEID,
PROVINCEID,
SALETYPEID,
DOSAGEID,
CUSTOMID,
SALERID,
-- 计算上个月的年月
YEAR(DATE_SUB(CONCAT(USEYEAR, '-', USEMONTH, '-01'), INTERVAL 1 MONTH)) AS LAST_YEAR,
MONTH(DATE_SUB(CONCAT(USEYEAR, '-', USEMONTH, '-01'), INTERVAL 1 MONTH)) AS LAST_MONTH,
-- 当前月的销售金额,将作为上个月的金额赋给别的记录
SUM(MONTHSAMONEY) AS CURRENT_MONTH_SAMONEY
FROM yunji_gr_bi_sa_agg
GROUP BY
USEYEAR,
USEMONTH,
GOODSID,
ZONEID,
PROVINCEID,
SALETYPEID,
DOSAGEID,
CUSTOMID,
SALERID
) AS last_month_data
ON current_month.GOODSID = last_month_data.GOODSID
AND current_month.ZONEID = last_month_data.ZONEID
AND current_month.PROVINCEID = last_month_data.PROVINCEID
AND current_month.SALETYPEID = last_month_data.SALETYPEID
AND current_month.DOSAGEID = last_month_data.DOSAGEID
AND current_month.CUSTOMID = last_month_data.CUSTOMID
AND current_month.SALERID = last_month_data.SALERID
AND current_month.USEYEAR = last_month_data.LAST_YEAR
AND current_month.USEMONTH = last_month_data.LAST_MONTH
SET
current_month.LAST_MONTH_SAMONEY = last_month_data.CURRENT_MONTH_SAMONEY;
</update>
<update id="updateLastData">
UPDATE yunji_gr_bi_sa_agg a
LEFT JOIN (

View File

@@ -9,67 +9,67 @@
<name>${project.artifactId}</name>
<description>基础 bom 文件,管理整个项目的依赖版本</description>
<properties>
<servlet.version>4.0.4</servlet.version>
<tika-core.version>2.9.1</tika-core.version>
<podam.version>7.2.11.RELEASE</podam.version>
<captcha-plus.version>1.0.10</captcha-plus.version>
<lidee.version>2.2.4</lidee.version>
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
<poi-ooxml.verion>4.1.2</poi-ooxml.verion>
<express.version>3.3.3</express.version>
<bizlog-sdk.version>3.0.6</bizlog-sdk.version>
<starter.validation.version>2.3.12.RELEASE</starter.validation.version>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<fastjson.version>1.2.83</fastjson.version>
<junit.version>4.13.2</junit.version>
<groovy.version>3.0.21</groovy.version>
<tencentcloud-sdk-java.version>3.1.880</tencentcloud-sdk-java.version>
<mybatis-plus-generator.version>3.5.5</mybatis-plus-generator.version>
<mybatis.version>3.5.15</mybatis.version>
<opentracing.version>0.33.0</opentracing.version>
<jsqlparser.version>4.3</jsqlparser.version>
<dom4j.version>1.6.1</dom4j.version>
<screw.version>1.0.5</screw.version>
<mybatis-plus-join.version>1.4.10</mybatis-plus-join.version>
<kingbase.jdbc.version>8.6.0</kingbase.jdbc.version>
<aspectjweaver.version>1.9.7</aspectjweaver.version>
<aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version>
<revision>2.0.1-jdk8-snapshot</revision>
<jsch.version>0.1.55</jsch.version>
<xercesImpl.version>2.12.2</xercesImpl.version>
<ip2region.version>2.7.0</ip2region.version>
<okio.version>3.5.0</okio.version>
<dynamic-datasource.version>4.3.0</dynamic-datasource.version>
<redisson.version>3.18.0</redisson.version>
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
<spring-boot-admin.version>2.7.15</spring-boot-admin.version>
<guice.version>5.1.0</guice.version>
<minio.version>8.5.7</minio.version>
<aliyun-java-sdk-core.version>4.6.4</aliyun-java-sdk-core.version>
<jedis-mock.version>1.0.13</jedis-mock.version>
<spring.boot.version>2.7.18</spring.boot.version>
<hutool.version>5.8.25</hutool.version>
<guava.version>33.0.0-jre</guava.version>
<servlet.versoin>2.5</servlet.versoin>
<springdoc.version>1.6.15</springdoc.version>
<resilience4j.version>1.7.1</resilience4j.version>
<lock4j.version>2.2.7</lock4j.version>
<commons-io.version>2.15.1</commons-io.version>
<poi-scratchpad.verion>4.1.2</poi-scratchpad.verion>
<okhttp3.version>4.9.3</okhttp3.version>
<commons-net.version>3.10.0</commons-net.version>
<jsoup.version>1.17.2</jsoup.version>
<mybatis-plus.version>3.5.5</mybatis-plus.version>
<knife4j.version>4.3.0</knife4j.version>
<lombok.version>1.18.30</lombok.version>
<easyexcel.verion>3.3.3</easyexcel.verion>
<flowable.version>6.8.0</flowable.version>
<druid.version>1.2.21</druid.version>
<skywalking.version>8.12.0</skywalking.version>
<mockito-inline.version>4.11.0</mockito-inline.version>
<justauth.version>1.0.8</justauth.version>
<dm8.jdbc.version>8.1.3.62</dm8.jdbc.version>
<podam.version>7.2.11.RELEASE</podam.version>
<velocity.version>2.3</velocity.version>
<junit.version>4.13.2</junit.version>
<jsqlparser.version>4.3</jsqlparser.version>
<spring.boot.version>2.7.18</spring.boot.version>
<tika-core.version>2.9.1</tika-core.version>
<lock4j.version>2.2.7</lock4j.version>
<okio.version>3.5.0</okio.version>
<guice.version>5.1.0</guice.version>
<aspectjweaver.version>1.9.7</aspectjweaver.version>
<lombok.version>1.18.30</lombok.version>
<xercesImpl.version>2.12.2</xercesImpl.version>
<jsoup.version>1.17.2</jsoup.version>
<fastjson.version>1.2.83</fastjson.version>
<commons-net.version>3.10.0</commons-net.version>
<kingbase.jdbc.version>8.6.0</kingbase.jdbc.version>
<poi-ooxml.verion>4.1.2</poi-ooxml.verion>
<hutool.version>5.8.25</hutool.version>
<resilience4j.version>1.7.1</resilience4j.version>
<transmittable-thread-local.version>2.14.5</transmittable-thread-local.version>
<lidee.version>2.2.4</lidee.version>
<flowable.version>6.8.0</flowable.version>
<redisson.version>3.18.0</redisson.version>
<okhttp3.version>4.9.3</okhttp3.version>
<bizlog-sdk.version>3.0.6</bizlog-sdk.version>
<mybatis-plus.version>3.5.5</mybatis-plus.version>
<druid.version>1.2.21</druid.version>
<starter.validation.version>2.3.12.RELEASE</starter.validation.version>
<servlet.version>4.0.4</servlet.version>
<commons-io.version>2.15.1</commons-io.version>
<easyexcel.verion>3.3.3</easyexcel.verion>
<springdoc.version>1.6.15</springdoc.version>
<minio.version>8.5.7</minio.version>
<mockito-inline.version>4.11.0</mockito-inline.version>
<jedis-mock.version>1.0.13</jedis-mock.version>
<tencentcloud-sdk-java.version>3.1.880</tencentcloud-sdk-java.version>
<dm8.jdbc.version>8.1.3.62</dm8.jdbc.version>
<express.version>3.3.3</express.version>
<ip2region.version>2.7.0</ip2region.version>
<jsch.version>0.1.55</jsch.version>
<aliyun-java-sdk-core.version>4.6.4</aliyun-java-sdk-core.version>
<captcha-plus.version>1.0.10</captcha-plus.version>
<dynamic-datasource.version>4.3.0</dynamic-datasource.version>
<servlet.versoin>2.5</servlet.versoin>
<knife4j.version>4.3.0</knife4j.version>
<spring-boot-admin.version>2.7.15</spring-boot-admin.version>
<mybatis.version>3.5.15</mybatis.version>
<mapstruct.version>1.5.5.Final</mapstruct.version>
<groovy.version>3.0.21</groovy.version>
<aliyun-java-sdk-dysmsapi.version>2.2.1</aliyun-java-sdk-dysmsapi.version>
<justauth.version>1.0.8</justauth.version>
<screw.version>1.0.5</screw.version>
<guava.version>33.0.0-jre</guava.version>
<skywalking.version>8.12.0</skywalking.version>
<opentracing.version>0.33.0</opentracing.version>
<mybatis-plus-generator.version>3.5.5</mybatis-plus-generator.version>
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
<dom4j.version>1.6.1</dom4j.version>
<poi-scratchpad.verion>4.1.2</poi-scratchpad.verion>
<revision>2.0.1-jdk8-snapshot</revision>
</properties>
<dependencyManagement>
<dependencies>

View File

@@ -117,4 +117,15 @@
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -13,8 +13,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>10</source>
<target>10</target>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>

View File

@@ -218,7 +218,7 @@ public class HttpUtils {
}
paramStr.append(entry.getKey())
.append("=")
.append(java.net.URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8));
.append(java.net.URLEncoder.encode(entry.getValue(), String.valueOf(StandardCharsets.UTF_8)));
}
writer = new BufferedWriter(
new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));