Compare commits
1 Commits
51bd73d9de
...
dev_2026-0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0317f8596e |
@@ -47,4 +47,4 @@ lideeyunji:
|
||||
yunji: # 低代码平台
|
||||
debug: true #是否开启调试模式
|
||||
saveReqLog: false # 是否保存请求日志
|
||||
saveOpLog: false # 是否保存操作日志
|
||||
saveOpLog: false # 是否保存操作日志
|
||||
@@ -97,10 +97,5 @@
|
||||
<artifactId>orai18n</artifactId>
|
||||
<version>21.1.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.pagehelper</groupId>
|
||||
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
||||
<version>1.4.7</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -11,7 +11,10 @@ import com.lideeyunji.core.framework.config.aspect.enhancereport.enums.RefreshPl
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.BuildEnhanceReportContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportParam;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.*;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportAfterAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportBaseAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportBeforeAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportPluginManager;
|
||||
import com.lideeyunji.core.framework.entity.ReportEntity;
|
||||
import com.lideeyunji.core.framework.service.IReportService;
|
||||
import com.lideeyunji.core.framework.utils.Func;
|
||||
@@ -21,9 +24,7 @@ import com.lideeyunji.tool.framework.yunji.tool.spring.SpringUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.FuncBase;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.AfterReturning;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -139,30 +140,6 @@ public class LideeYunJiReportEnhance extends LideeYunJiBaseEnhance {
|
||||
ReportPluginManager.executePlugin(javaClass, context);
|
||||
}
|
||||
|
||||
@Around("@annotation(lideeyunJiReportEnhance)")
|
||||
public Object around(ProceedingJoinPoint joinPoint, LideeyunJiReportEnhance lideeyunJiReportEnhance) throws Throwable {
|
||||
//获取参数
|
||||
BuildEnhanceReportContext buildEnhanceContext = this.getContextAndPlugins(joinPoint);
|
||||
if (FuncBase.isEmpty(buildEnhanceContext)) {//没有增强
|
||||
return joinPoint.proceed();
|
||||
}
|
||||
|
||||
//增强列表
|
||||
String javaClass = buildEnhanceContext.getJavaClass();
|
||||
if (Func.isEmpty(javaClass)) {//无增强
|
||||
return joinPoint.proceed();
|
||||
}
|
||||
//有增强,但是增强不是报表增强,直接返回原值
|
||||
ReportBaseAdvicePlugin plugin = ReportPluginManager.getPlugin(javaClass);
|
||||
if (!(plugin instanceof ReportAroundAdvicePlugin)) {
|
||||
return joinPoint.proceed();
|
||||
}
|
||||
|
||||
EnhanceReportContext context = buildEnhanceContext.getContext();
|
||||
//执行增强
|
||||
return ReportPluginManager.executeAroundPlugin(javaClass, context);
|
||||
}
|
||||
|
||||
private BuildEnhanceReportContext getContextAndPlugins(JoinPoint joinPoint) {
|
||||
Map<String, Object> paramMap = super.getJoinPointParam(joinPoint);
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.lideeyunji.core.framework.config.aspect.enhancereport.plugin;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
|
||||
import com.lideeyunji.tool.framework.yunji.model.ResultDataModel;
|
||||
|
||||
/**
|
||||
* 报表统计 环绕增强(报表统计专属)
|
||||
*/
|
||||
public interface ReportAroundAdvicePlugin extends ReportBaseAdvicePlugin {
|
||||
|
||||
Object executeAround(EnhanceReportContext enhanceContext);
|
||||
}
|
||||
@@ -2,7 +2,6 @@
|
||||
package com.lideeyunji.core.framework.config.aspect.enhancereport.plugin;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
|
||||
import com.lideeyunji.tool.framework.yunji.model.ResultDataModel;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -40,8 +39,4 @@ public class ReportPluginManager {
|
||||
plugin.execute(enhanceContext);
|
||||
}
|
||||
|
||||
public static Object executeAroundPlugin(String name, EnhanceReportContext enhanceContext) {
|
||||
ReportAroundAdvicePlugin plugin = (ReportAroundAdvicePlugin)plugins.get(name);
|
||||
return plugin.executeAround(enhanceContext);
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.controller;
|
||||
|
||||
import com.lideeyunji.core.framework.service.IByglByfaService;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import com.lideeyunji.tool.framework.constants.FrameErrorCodeConstants;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseWebResult;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "保养管理-保养方案")
|
||||
@RestController
|
||||
@AllArgsConstructor
|
||||
@RequestMapping(lideeYunJiBaseConstant.REQUEST_URL_START + "/bygl")
|
||||
public class ByglController extends BaseController {
|
||||
|
||||
private final IByglByfaService byglByfaService;
|
||||
|
||||
@PostMapping("/changeFaState")
|
||||
public BaseWebResult save(@RequestBody Map<String,Object> model) {
|
||||
String state = lideeYunJiUtils.getMap2Str(model, "state");
|
||||
String id = lideeYunJiUtils.getMap2Str(model, "id");
|
||||
if(StringUtils.isBlank(id)){
|
||||
return BaseWebResult.error(FrameErrorCodeConstants.FRAME_OP_ERROR);
|
||||
}
|
||||
byglByfaService.changeFaState(id, state);
|
||||
return BaseWebResult.success("状态修改成功");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.lideeyunji.core.framework.controller;
|
||||
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService;
|
||||
import com.lideeyunji.core.framework.utils.FuncWeb;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import com.lideeyunji.tool.framework.tenant.core.aop.TenantIgnore;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseWebResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 综合销售情况月维度Controller
|
||||
*
|
||||
* @author king
|
||||
* @date 2026-03-19
|
||||
*/
|
||||
@TenantIgnore
|
||||
@RestController
|
||||
@RequestMapping(lideeYunJiBaseConstant.REQUEST_URL_START+"/agg/month")
|
||||
public class NewGrBiSaAggMonthCountController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private INewGrBiSaAggMonthCountService newGrBiSaAggMonthCountService;
|
||||
|
||||
@Autowired
|
||||
private INewGrBiSaAggYearCountService newGrBiSaAggYearCountService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询综合销售情况月维度-总计
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermission('agg:month:total:detail')")
|
||||
@PostMapping("/total/detail")
|
||||
public BaseWebResult getTotalDetail(HttpServletRequest req)
|
||||
{
|
||||
Map<String, Object> params = FuncWeb.getParameterBodyMap(req);
|
||||
String groupField = params.containsKey("Group by") ? params.get("Group by").toString() : "useMonth";
|
||||
SaAggParam saAggParam = new SaAggParam();
|
||||
if (params.containsKey("useMonth")){
|
||||
saAggParam.setUseMonth(params.get("useMonth").toString());
|
||||
}
|
||||
if(params.containsKey("useYear")){
|
||||
saAggParam.setUseYear(params.get("useYear").toString());
|
||||
}else{
|
||||
saAggParam.setUseYear(new SimpleDateFormat("yyyy").format(new Date()));
|
||||
}
|
||||
if(params.containsKey("customName")){
|
||||
saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split(",")));
|
||||
}
|
||||
if (params.containsKey("zoneName")){
|
||||
saAggParam.setZoneName(Arrays.asList(params.get("zoneName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("saleTypeName")){
|
||||
saAggParam.setSaleTypeName(Arrays.asList(params.get("saleTypeName").toString().split( ",")));
|
||||
}
|
||||
|
||||
if (params.containsKey("salerName")){
|
||||
saAggParam.setSalerName(Arrays.asList(params.get("salerName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("dosageName")){
|
||||
saAggParam.setDosageName(Arrays.asList(params.get("dosageName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("stdGoodsName")){
|
||||
saAggParam.setStdGoodsName(Arrays.asList(params.get("stdGoodsName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("goodsName")){
|
||||
saAggParam.setGoodsName(Arrays.asList(params.get("goodsName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("provinceName")){
|
||||
saAggParam.setProvinceName(Arrays.asList(params.get("provinceName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("useMonth") || groupField.contains("useMonth")){
|
||||
List<NewGrBiSaAggMonthCount> list = newGrBiSaAggMonthCountService.getTotalDetail(saAggParam);
|
||||
return BaseWebResult.success(list);
|
||||
}else{
|
||||
List<NewGrBiSaAggYearCount> list = newGrBiSaAggYearCountService.getTotalDetail(saAggParam);
|
||||
return BaseWebResult.success(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,96 +0,0 @@
|
||||
package com.lideeyunji.core.framework.controller;
|
||||
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService;
|
||||
import com.lideeyunji.core.framework.utils.FuncWeb;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import com.lideeyunji.tool.framework.tenant.core.aop.TenantIgnore;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseWebResult;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 综合销售情况年维度Controller
|
||||
*
|
||||
* @author king
|
||||
* @date 2026-03-19
|
||||
*/
|
||||
@TenantIgnore
|
||||
@RestController
|
||||
@RequestMapping(lideeYunJiBaseConstant.REQUEST_URL_START+"/agg/year")
|
||||
public class NewGrBiSaAggYearCountController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private INewGrBiSaAggYearCountService newGrBiSaAggYearCountService;
|
||||
|
||||
// /**
|
||||
// * 查询综合销售情况年维度-总计
|
||||
// */
|
||||
//// @PreAuthorize("@ss.hasPermi('agg:month:total:detail')")
|
||||
// @PostMapping("/total/detail")
|
||||
// public BaseWebResult getTotalDetail(HttpServletRequest req) {
|
||||
// Map<String, Object> params = FuncWeb.getParameterBodyMap(req);
|
||||
// SaAggParam saAggParam = new SaAggParam();
|
||||
// String groupField = params.get("Group by").toString();
|
||||
// LinkedList<String> groupFieldList = new LinkedList<>(Arrays.asList(groupField.split(",")));
|
||||
//
|
||||
// if (params.containsKey("useyear")) {
|
||||
// saAggParam.setUseYear(params.get("useyear").toString());
|
||||
// if (!groupField.contains("useyear")) {
|
||||
// groupFieldList.addFirst("useyear");
|
||||
// }
|
||||
// }
|
||||
// if (params.containsKey("customname")) {
|
||||
// saAggParam.setCustomName(Arrays.asList(params.get("customname").toString().split( ",")));
|
||||
// if (!groupField.contains("customname")) {
|
||||
// groupFieldList.addLast("customname");
|
||||
// }
|
||||
// }
|
||||
// if (params.containsKey("zonename")) {
|
||||
// saAggParam.setZoneName(Arrays.asList(params.get("zonename").toString().split( ",")));
|
||||
// if (!groupField.contains("zonename")) {
|
||||
// groupFieldList.addLast("zonename");
|
||||
// }
|
||||
// }
|
||||
// if (params.containsKey("saletypename")) {
|
||||
// saAggParam.setSaleTypeName(Arrays.asList(params.get("saletypename").toString().split( ",")));
|
||||
// if (!groupField.contains("saletypename")) {
|
||||
// groupFieldList.addLast("saletypename");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (params.containsKey("salername")) {
|
||||
// saAggParam.setSalerName(Arrays.asList(params.get("salername").toString().split( ",")));
|
||||
// if (!groupField.contains("salername")) {
|
||||
// groupFieldList.addLast("salername");
|
||||
// }
|
||||
// }
|
||||
// if (params.containsKey("dosagename")) {
|
||||
// saAggParam.setDosageName(Arrays.asList(params.get("dosagename").toString().split( ",")));
|
||||
// if (!groupField.contains("dosagename")) {
|
||||
// groupFieldList.addLast("dosagename");
|
||||
// }
|
||||
// }
|
||||
// if (params.containsKey("stdGoodsName")) {
|
||||
// saAggParam.setStdGoodsName(Arrays.asList(params.get("stdGoodsName").toString().split( ",")));
|
||||
// if (!groupField.contains("stdGoodsName")) {
|
||||
// groupFieldList.addLast("stdGoodsName");
|
||||
// }
|
||||
// }
|
||||
// saAggParam.setGroupFieldList(groupFieldList);
|
||||
// List<NewGrBiSaAggYearCount> list = newGrBiSaAggYearCountService.getTotalDetail(saAggParam);
|
||||
// return BaseWebResult.success(list);
|
||||
// }
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.enhance.example.report.bygl;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.mapper.ByglByjhMapper;
|
||||
import com.lideeyunji.core.framework.utils.Func;
|
||||
import com.lideeyunji.tool.framework.common.constant.ByglConstant;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 保养管理-保养方案
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("byglByfaPlugin")
|
||||
public class ByglByfaPlugin implements AroundAdvicePlugin {
|
||||
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
|
||||
private static final String SCHEME_ID_PREFIX = "FA";
|
||||
|
||||
@Autowired
|
||||
private ByglByjhMapper byglByjhMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
//新增方法默认状态字段(1启用)
|
||||
params.put("state", ByglConstant.FA_STATE_QY);
|
||||
// 获取并验证scheme_id
|
||||
String scheme_id = lideeYunJiUtils.getMap2Str(params, "scheme_id");
|
||||
boolean needGenerateNewId = shouldGenerateNewSchemeId(scheme_id);
|
||||
if(needGenerateNewId){
|
||||
String newSchemeId = generateSchemeId();
|
||||
params.put("scheme_id", newSchemeId);
|
||||
log.info("生成新方案ID: {}", newSchemeId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否需要生成新的方案ID
|
||||
*/
|
||||
private boolean shouldGenerateNewSchemeId(String scheme_id) {
|
||||
if(StringUtils.isBlank(scheme_id)){
|
||||
return true;
|
||||
}
|
||||
Map<String, Object> existingScheme = byglByjhMapper.getSchemeBySchemeId(scheme_id);
|
||||
return Func.isNotEmpty(existingScheme);
|
||||
}
|
||||
/**
|
||||
* 生成方案ID
|
||||
* 格式:FA + 时间戳(yyyyMMddHHmmss)
|
||||
*/
|
||||
private String generateSchemeId() {
|
||||
return SCHEME_ID_PREFIX + LocalDateTime.now().format(DATE_TIME_FORMATTER);
|
||||
}
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
package com.lideeyunji.core.framework.enhance.example.report.bygl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.lideeyunji.core.framework.adapter.FrameWorkAdapter;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementGd;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementJl;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementYs;
|
||||
import com.lideeyunji.core.framework.mapper.ByManagementGdMapper;
|
||||
import com.lideeyunji.core.framework.mapper.ByManagementJlMapper;
|
||||
import com.lideeyunji.core.framework.mapper.ByManagementYsMapper;
|
||||
import com.lideeyunji.core.framework.mapper.ByglByjhMapper;
|
||||
import com.lideeyunji.tool.framework.common.constant.ByglConstant;
|
||||
import com.lideeyunji.tool.framework.common.util.object.BeanUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.tool.spring.SpringUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 保养管理-保养工单编辑
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("byglBygdBjPlugin")
|
||||
public class ByglBygdBjPlugin implements AroundAdvicePlugin {
|
||||
|
||||
/**
|
||||
* 操作类型常量
|
||||
*/
|
||||
private static final String SUBMIT_TYPE_CL = "cl";
|
||||
private static final String SUBMIT_TYPE_YS = "ys";
|
||||
|
||||
/**
|
||||
* 状态常量
|
||||
*/
|
||||
private static final int NOT_DELETED = 0;
|
||||
|
||||
@Autowired
|
||||
private ByglByjhMapper byglByjhMapper;
|
||||
|
||||
@Autowired
|
||||
private ByManagementJlMapper byManagementJlMapper;
|
||||
|
||||
@Autowired
|
||||
private ByManagementYsMapper byManagementYsMapper;
|
||||
|
||||
@Autowired
|
||||
private ByManagementGdMapper byManagementGdMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
String submit_type = lideeYunJiUtils.getMap2Str(params, "submit_type");
|
||||
log.info("开始处理工单操作,submit_type: {}", submit_type);
|
||||
if(StringUtils.isBlank(submit_type)){
|
||||
log.info("submit_type为空,跳过处理");
|
||||
return;
|
||||
}
|
||||
String id = lideeYunJiUtils.getMap2Str(params, "id");
|
||||
validateParams(id, submit_type);
|
||||
FrameWorkAdapter adapter = SpringUtils.getBean(FrameWorkAdapter.class);
|
||||
|
||||
switch (submit_type) {
|
||||
case SUBMIT_TYPE_CL://处理操作
|
||||
handleClOperation(id, params, adapter);
|
||||
break;
|
||||
case SUBMIT_TYPE_YS://验收操作
|
||||
handleYsOperation(id, params, adapter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 验收操作
|
||||
*/
|
||||
private void handleYsOperation(String id, Map<String, Object> params, FrameWorkAdapter adapter) {
|
||||
String gdys_yj = lideeYunJiUtils.getMap2Str(params, "gdys_yj");
|
||||
String pjxj = lideeYunJiUtils.getMap2Str(params, "pjxj");
|
||||
|
||||
ByManagementJl jl = byManagementJlMapper.selectById(id);
|
||||
|
||||
jl.setYsTime(DateUtil.now());
|
||||
jl.setPjxj(pjxj);
|
||||
jl.setState(ByglConstant.YSZT_STATE_YYS);
|
||||
jl.setGdysYj(gdys_yj);
|
||||
jl.setUpdateTime(LocalDateTime.now());
|
||||
jl.setUpdateUser(adapter.getOnlineUserId());
|
||||
|
||||
byManagementJlMapper.updateById(jl);
|
||||
|
||||
ByManagementYs ys = BeanUtils.toBean(jl, ByManagementYs.class);
|
||||
if(ys == null){
|
||||
throw new RuntimeException("对象转换失败");
|
||||
}
|
||||
byManagementYsMapper.updateById(ys);
|
||||
|
||||
log.info("工单验收成功,ID: {}", id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理操作
|
||||
*/
|
||||
private void handleClOperation(String id, Map<String, Object> params, FrameWorkAdapter adapter) {
|
||||
String bygd_cljg = lideeYunJiUtils.getMap2Str(params, "bygd_cljg");
|
||||
|
||||
int result = byglByjhMapper.updateClBygd(id, bygd_cljg, ByglConstant.BY_STATE_YWC);
|
||||
|
||||
if (result <= 0) {
|
||||
log.info("工单处理失败,ID: {}", id);
|
||||
return;
|
||||
}
|
||||
ByManagementGd gd = byManagementGdMapper.selectById(id);
|
||||
ByManagementJl jl = createByManagementJl(gd, adapter);
|
||||
byManagementJlMapper.insert(jl);
|
||||
syncToYsTable(jl);
|
||||
|
||||
log.info("工单处理成功,ID: {}", id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建保养记录
|
||||
*/
|
||||
private ByManagementJl createByManagementJl(ByManagementGd gd, FrameWorkAdapter adapter) {
|
||||
ByManagementJl jl = new ByManagementJl();
|
||||
jl.setId(IdWorker.getId());
|
||||
jl.setOrderId(gd.getOrderId());
|
||||
jl.setOrderName(gd.getOrderName());
|
||||
jl.setEquipmentInfo(gd.getEquipmentInfo());
|
||||
jl.setUpkeepLevel(gd.getUpkeepLevel());
|
||||
jl.setUpkeepTime(gd.getUpkeepTime());
|
||||
jl.setPriority(gd.getPriority());
|
||||
jl.setState(ByglConstant.YSZT_STATE_DYS);
|
||||
jl.setExecutor(gd.getExecutor());
|
||||
jl.setCreateTime(LocalDateTime.now());
|
||||
jl.setCreateUser(adapter.getOnlineUserId());
|
||||
jl.setIsDeleted(NOT_DELETED);
|
||||
return jl;
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步到验收表
|
||||
*/
|
||||
private void syncToYsTable(ByManagementJl jl) {
|
||||
ByManagementYs ys = BeanUtils.toBean(jl, ByManagementYs.class);
|
||||
if(ys == null){
|
||||
throw new RuntimeException("对象转换失败");
|
||||
}
|
||||
byManagementYsMapper.insert(ys);
|
||||
}
|
||||
|
||||
/**
|
||||
* 参数校验
|
||||
*/
|
||||
private void validateParams(String id, String submit_type) {
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new IllegalArgumentException("工单ID不能为空");
|
||||
}
|
||||
if(!SUBMIT_TYPE_CL.equals(submit_type) && !SUBMIT_TYPE_YS.equals(submit_type)){
|
||||
throw new IllegalArgumentException("不支持的操作类型: " + submit_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.enhance.example.report.bygl;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.mapper.ByglByjhMapper;
|
||||
import com.lideeyunji.core.framework.utils.Func;
|
||||
import com.lideeyunji.tool.framework.common.constant.ByglConstant;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 保养管理-保养工单
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("byglBygdPlugin")
|
||||
public class ByglBygdPlugin implements AroundAdvicePlugin {
|
||||
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
|
||||
private static final String ORDER_ID_PREFIX = "GD";
|
||||
|
||||
@Autowired
|
||||
private ByglByjhMapper byglByjhMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
//新增方法默认状态字段
|
||||
params.put("order_state",ByglConstant.GD_STATE_DKS);
|
||||
String order_id = lideeYunJiUtils.getMap2Str(params, "order_id");
|
||||
boolean needGenerateNewId = shouldGenerateNewOrderId(order_id);
|
||||
if(needGenerateNewId){
|
||||
String newOrderId = generateOrderId();
|
||||
params.put("order_id",newOrderId);
|
||||
log.info("生成新工单ID: {}", newOrderId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
/**
|
||||
* 判断是否需要生成新的工单ID
|
||||
*/
|
||||
private boolean shouldGenerateNewOrderId(String order_id) {
|
||||
if(StringUtils.isBlank(order_id)){
|
||||
return true;
|
||||
}
|
||||
Map<String, Object> existingOrder = byglByjhMapper.getOrderByPlanId(order_id);
|
||||
return Func.isNotEmpty(existingOrder);
|
||||
}
|
||||
/**
|
||||
* 生成工单ID
|
||||
* 格式:GD + 时间戳(yyyyMMddHHmmss)
|
||||
*/
|
||||
private String generateOrderId() {
|
||||
return ORDER_ID_PREFIX + LocalDateTime.now().format(DATE_TIME_FORMATTER);
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package com.lideeyunji.core.framework.enhance.example.report.bygl;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.mapper.ByglByjhMapper;
|
||||
import com.lideeyunji.core.framework.utils.Func;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 保养管理-保养计划-列表
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("byglByjlLbPlugin")
|
||||
public class ByglByjhLbPlugin implements AroundAdvicePlugin {
|
||||
|
||||
@Autowired
|
||||
private ByglByjhMapper byglByjhMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
List<Map<String, Object>> records = enhanceContext.getResult().getRecords();
|
||||
if (Func.isEmpty(records)) {
|
||||
return;
|
||||
}
|
||||
for (Map<String, Object> record : records) {
|
||||
String plan_id = lideeYunJiUtils.getMap2Str(record, "plan_id");
|
||||
Map<String, Object> countByPlanId = byglByjhMapper.getCountByPlanId(plan_id);
|
||||
record.put("plan_count",lideeYunJiUtils.getMap2Long(countByPlanId,"jhs"));
|
||||
record.put("completed_count",lideeYunJiUtils.getMap2Long(countByPlanId,"wcs"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.enhance.example.report.bygl;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.mapper.ByglByjhMapper;
|
||||
import com.lideeyunji.core.framework.utils.Func;
|
||||
import com.lideeyunji.tool.framework.common.constant.ByglConstant;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 保养管理-保养计划-新增
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("byglByjhPlugin")
|
||||
public class ByglByjhPlugin implements AroundAdvicePlugin {
|
||||
|
||||
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
|
||||
private static final String PLAN_ID_PREFIX = "BYJH";
|
||||
|
||||
@Autowired
|
||||
private ByglByjhMapper byglByjhMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
//新增方法默认状态字段
|
||||
params.put("plan_state", ByglConstant.JH_STATE_JXZ);
|
||||
String plan_id = lideeYunJiUtils.getMap2Str(params, "plan_id");
|
||||
boolean needGenerateNewId = shouldGenerateNewPlanId(plan_id);
|
||||
if(needGenerateNewId){
|
||||
String newPlanId = generatePlanId();
|
||||
params.put("plan_id",newPlanId);
|
||||
log.info("生成新计划ID: {}", newPlanId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否需要生成新的计划ID
|
||||
*/
|
||||
private boolean shouldGenerateNewPlanId(String plan_id) {
|
||||
if(StringUtils.isBlank(plan_id)){
|
||||
return true;
|
||||
}
|
||||
Map<String, Object> existingPlan = byglByjhMapper.getPlanByPlanId(plan_id);
|
||||
return Func.isNotEmpty(existingPlan);
|
||||
}
|
||||
/**
|
||||
* 生成计划ID
|
||||
* 格式:BYJH + 时间戳(yyyyMMddHHmmss)
|
||||
*/
|
||||
private String generatePlanId() {
|
||||
return PLAN_ID_PREFIX + LocalDateTime.now().format(DATE_TIME_FORMATTER);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,13 +3,10 @@ package com.lideeyunji.core.framework.enhance.example.report.xtsy;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportBeforeAdvicePlugin;
|
||||
import com.lideeyunji.tool.framework.exception.lideeYunJiException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -25,273 +22,177 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
||||
log.info("进入=======>zhxsqkLineReportEnhance=======>execute");
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
if (params.containsKey("Group by")) {
|
||||
if(params.containsKey("goodsname")){
|
||||
throw new lideeYunJiException("在选择维度时,“货品名称”不能有值!");
|
||||
}
|
||||
List<String> groupFieldList = Arrays.asList(params.get("Group by").toString().split(","));
|
||||
String sql;
|
||||
if(!params.containsKey("useYear")){
|
||||
params.put("useYear", new SimpleDateFormat("yyyy").format(new Date()));
|
||||
}
|
||||
if((groupFieldList.contains("useMonth") || params.containsKey("useMonth"))){
|
||||
if((groupFieldList.contains("usemonth") || params.containsKey("usemonth"))){
|
||||
sql = geroupMonthSql(params, groupFieldList);
|
||||
}else {
|
||||
StringBuilder executePluginSql = new StringBuilder();
|
||||
executePluginSql.append(" SELECT \n");
|
||||
executePluginSql.append(" current_year_data.use_year as useYear, \n");
|
||||
executePluginSql.append(" current_year_data.use_year as useyear, \n");
|
||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
|
||||
executePluginSql.append(" current_year_data.custom_id as customid, \n");
|
||||
executePluginSql.append(" current_year_data.custom_name as customName, \n");
|
||||
executePluginSql.append(" current_year_data.custom_name as customname, \n");
|
||||
}
|
||||
if(groupFieldList.contains("useYear") || params.containsKey("useYear")){
|
||||
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
|
||||
executePluginSql.append(" current_year_data.use_year as ny, \n"); //年月
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
||||
executePluginSql.append(" current_year_data.zone_id, \n");
|
||||
executePluginSql.append(" current_year_data.zone_name as zoneName, \n");
|
||||
executePluginSql.append(" current_year_data.zone_name as zonename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
||||
executePluginSql.append(" current_year_data.sale_type_id, \n");
|
||||
executePluginSql.append(" current_year_data.sale_type_name as saleTypeName, \n");
|
||||
executePluginSql.append(" current_year_data.sale_type_name as saletypename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
||||
executePluginSql.append(" current_year_data.saler_id, \n");
|
||||
executePluginSql.append(" current_year_data.saler_name as salerName, \n");
|
||||
executePluginSql.append(" current_year_data.saler_name as salername, \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
||||
executePluginSql.append(" current_year_data.dosage_id, \n");
|
||||
executePluginSql.append(" current_year_data.dosage_name as dosageName, \n");
|
||||
executePluginSql.append(" current_year_data.dosage_name as dosagename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_year_data.std_goods_name as stdGoodsName, \n");
|
||||
}
|
||||
executePluginSql.append(" current_year_data.province_id as province_id, \n"); //行政区域ID
|
||||
executePluginSql.append(" current_year_data.province_name as province_name, \n"); //行政区域名称
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year_data.province_id ORDER BY current_year_data.province_id SEPARATOR ',') as province_id, \n"); //行政区域ID
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_year_data.province_name ORDER BY current_year_data.province_name SEPARATOR ',') as province_name, \n"); //行政区域名称
|
||||
|
||||
executePluginSql.append(" current_year_data.this_year_sa_qty AS thissaqty, \n"); //本年销量
|
||||
executePluginSql.append(" ROUND(current_year_data.this_year_sa_money / 10000, 2) AS thissamoney, \n"); //本年销售金额(元)
|
||||
executePluginSql.append(" ROUND(current_year_data.this_year_profit / 10000, 2) AS thisprofit, \n"); //本年毛利额(元)
|
||||
executePluginSql.append(" ROUND(current_year_data.this_year_cost / 10000, 2) AS thiscost, \n");//本年销售成本(元)
|
||||
executePluginSql.append(" last_year_data.last_year_sa_qty AS lastYearSaQty, \n"); //上年销量
|
||||
executePluginSql.append(" ROUND(last_year_data.last_year_sa_money / 10000, 2) AS lastYearSaMoney, \n"); //上年销售金额(元)
|
||||
executePluginSql.append(" ROUND(last_year_data.last_year_profit / 10000, 2) AS lastYearProfit, \n");//上年毛利额(元)
|
||||
executePluginSql.append(" ROUND(last_year_data.last_year_cost / 10000, 2) AS lastYearCost, \n"); //上年销售成本(元)
|
||||
executePluginSql.append(" SUM(current_year_data.this_year_sa_qty) AS thissaqty, \n"); //本年销量
|
||||
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_sa_money) / 10000, 2) AS thissamoney, \n"); //本年销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_profit) / 10000, 2) AS thisprofit, \n"); //本年毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_year_data.this_year_cost) / 10000, 2) AS thiscost, \n");//本年销售成本(元)
|
||||
executePluginSql.append(" SUM(last_year_data.last_year_sa_qty) AS lastYearSaQty, \n"); //上年销量
|
||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_sa_money) / 10000, 2) AS lastYearSaMoney, \n"); //上年销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_profit) / 10000, 2) AS lastYearProfit, \n");//上年毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_year_data.last_year_cost) / 10000, 2) AS lastYearCost, \n"); //上年销售成本(元)
|
||||
|
||||
// executePluginSql.append(" CONCAT(ROUND((max(total_year_data.this_year_sa_money_sum))/100000000 ,2), '亿') AS thissamoney_s, \n");
|
||||
// executePluginSql.append(" CONCAT(ROUND((max(total_year_data.this_year_profit_sum))/100000000 ,2), '亿') AS thisprofit_s, \n");
|
||||
executePluginSql.append(" COALESCE(ROUND(current_year_data.this_year_sa_money / total_year_data.this_year_sa_money_sum * 100, 2), 0) AS this_year_sa_money_share, \n");//上年销售金额占比
|
||||
executePluginSql.append(" COALESCE (ROUND(current_year_data.this_year_profit/total_year_data.this_year_profit_sum * 100, 2), 0 ) as thisprofitshare, \n"); //本年毛利额占比
|
||||
// executePluginSql.append(" ROUND(avg(current_year_data.profit_change), 2) as profitchange, \n"); //毛利变动(元)
|
||||
// executePluginSql.append(" ROUND(avg(current_year_data.profit_growth), 2) as profitgrowth, \n"); //毛利额增长率
|
||||
// executePluginSql.append(" ROUND(avg(current_year_data.this_profit_rate), 2) as thisprofitrate, \n"); //本年毛利率
|
||||
executePluginSql.append(" COALESCE(ROUND(sum(current_year_data.this_year_sa_money) / SUM(total_year_data.this_year_sa_money_sum) * 100, 2), 0) AS this_year_sa_money_share, \n");//上年销售金额占比
|
||||
executePluginSql.append(" COALESCE (ROUND( sum(current_year_data.this_year_profit)/SUM(total_year_data.this_year_profit_sum) * 100, 2), 0 ) as thisprofitshare, \n"); //本年毛利额占比
|
||||
executePluginSql.append(" -- 数量同比(原有) \n");
|
||||
executePluginSql.append(" CASE \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END) > 0 THEN \n");;
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END) < 0 THEN \n");;
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(current_year_data.last_year_sa_qty) = 0 THEN IF(sum(current_year_data.this_year_sa_qty) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_qty) - sum(current_year_data.last_year_sa_qty)) / sum(current_year_data.last_year_sa_qty) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS saqty_yoy, \n"); //数量同比
|
||||
executePluginSql.append(" -- 销售金额同比(原有新增) \n");
|
||||
executePluginSql.append(" CASE \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS samoney_yoy, \n"); //销售收入同比
|
||||
executePluginSql.append(" -- 新增:毛利同比 \n");
|
||||
executePluginSql.append(" CASE \n");
|
||||
executePluginSql.append(" CASE \n");
|
||||
executePluginSql.append(" -- 正数:红色圆点emoji + 数值 + % \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END), 2)) \n");
|
||||
executePluginSql.append("WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" -- 负数:绿色圆点emoji + 数值 + % \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(sum(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_profit) = 0 THEN IF(MAX(current_year_data.this_year_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (MAX(current_year_data.this_year_profit) - sum(last_year_data.last_year_profit)) / sum(last_year_data.last_year_profit) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" -- 0值:直接显示 \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS profit_yoy, \n"); //本年毛利同比
|
||||
executePluginSql.append(" CASE \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) > 0 THEN \n");;
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) < 0 THEN \n");;
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_year_data.last_year_sa_money) = 0 THEN IF(sum(current_year_data.this_year_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_year_data.this_year_sa_money) - sum(last_year_data.last_year_sa_money)) / sum(last_year_data.last_year_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS samoneygrowth \n"); //本年销售金额增长率
|
||||
executePluginSql.append(" FROM \n");
|
||||
executePluginSql.append(" (SELECT use_year , \n");
|
||||
executePluginSql.append(" use_year AS ny, \n");
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" custom_name , \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" zone_name, \n");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" sale_type_name, \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" dosage_name, \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" saler_name, \n");
|
||||
}
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT province_id ORDER BY province_id SEPARATOR ',') AS province_id, \n");
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT province_name ORDER BY province_name SEPARATOR ',') AS province_name, \n");
|
||||
executePluginSql.append(" sum(this_year_sa_qty) AS this_year_sa_qty, \n");
|
||||
executePluginSql.append(" sum(this_year_sa_money) AS this_year_sa_money, \n");
|
||||
executePluginSql.append(" sum(this_year_cost) AS this_year_cost, \n");
|
||||
executePluginSql.append(" sum(this_year_profit) AS this_year_profit \n");
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||
appendWhere(params,executePluginSql);
|
||||
executePluginSql.append(" GROUP BY use_year,");
|
||||
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id,");
|
||||
executePluginSql.append(" custom_name,");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" std_goods_name,");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" zone_id,");
|
||||
executePluginSql.append(" zone_name,");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id,");
|
||||
executePluginSql.append(" sale_type_name,");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id,");
|
||||
executePluginSql.append(" dosage_name,");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id,");
|
||||
executePluginSql.append(" saler_name,");
|
||||
}
|
||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
executePluginSql.append(" ) as current_year_data \n");
|
||||
executePluginSql.append(" new_gr_bi_sa_agg_year_count as current_year_data \n");
|
||||
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
||||
appendSelectField(params, groupFieldList,executePluginSql);
|
||||
// executePluginSql.append(" custom_id, \n");
|
||||
// executePluginSql.append(" zone_id, \n");
|
||||
// executePluginSql.append(" std_goods_name, \n");
|
||||
// // executePluginSql.append(" province_id, \n");
|
||||
// executePluginSql.append(" sale_type_id, \n");
|
||||
// executePluginSql.append(" dosage_id, \n");
|
||||
// executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" SUM(this_year_sa_qty) AS last_year_sa_qty, \n");
|
||||
executePluginSql.append(" SUM(this_year_sa_money) AS last_year_sa_money, \n");
|
||||
executePluginSql.append(" SUM(this_year_cost) AS last_year_cost, \n");
|
||||
executePluginSql.append(" SUM(this_year_profit) AS last_year_profit \n");
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||
if(params.containsKey("useYear")){
|
||||
params.put("useYear", Integer.parseInt(params.get("useYear").toString()) - 1);
|
||||
}
|
||||
appendWhere(params, executePluginSql);
|
||||
if(params.containsKey("useYear")){
|
||||
params.put("useYear", Integer.parseInt(params.get("useYear").toString() ) + 1);
|
||||
}
|
||||
executePluginSql.append(" GROUP BY use_year,");
|
||||
// executePluginSql.append(" custom_id, \n");
|
||||
// executePluginSql.append(" zone_id, \n");
|
||||
// executePluginSql.append(" std_goods_name, \n");
|
||||
//// executePluginSql.append(" province_id, \n");
|
||||
// executePluginSql.append(" sale_type_id, \n");
|
||||
// executePluginSql.append(" dosage_id,saler_id \n");
|
||||
appendGroupByField(params, groupFieldList,executePluginSql);
|
||||
executePluginSql.append(" ) AS last_year_data \n");
|
||||
executePluginSql.append(" ON last_year_data.use_year = current_year_data.use_year - 1 \n");
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" AND current_year_data.custom_id = last_year_data.custom_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" AND current_year_data.std_goods_name = last_year_data.std_goods_name \n");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" AND current_year_data.zone_id = last_year_data.zone_id \n");
|
||||
}
|
||||
// executePluginSql.append(" AND current_month.province_id = last_year_data.province_id \n");
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" AND current_year_data.sale_type_id = last_year_data.sale_type_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" AND current_year_data.dosage_id = last_year_data.dosage_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" AND current_year_data.saler_id = last_year_data.saler_id \n");
|
||||
}
|
||||
// executePluginSql.append(" ON current_year_data.std_goods_name = last_year_data.std_goods_name \n");
|
||||
// executePluginSql.append(" AND current_year_data.zone_id = last_year_data.zone_id \n");
|
||||
//// executePluginSql.append(" AND current_year_data.province_id = last_year_data.province_id \n");
|
||||
// executePluginSql.append(" AND current_year_data.sale_type_id = last_year_data.sale_type_id \n");
|
||||
// executePluginSql.append(" AND current_year_data.dosage_id = last_year_data.dosage_id \n");
|
||||
// executePluginSql.append(" AND current_year_data.custom_id = last_year_data.custom_id \n");
|
||||
// executePluginSql.append(" AND current_year_data.saler_id = last_year_data.saler_id \n");
|
||||
executePluginSql.append(" GROUP BY use_year, \n");
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id) AS last_year_data \n");
|
||||
executePluginSql.append(" ON current_year_data.std_goods_name = last_year_data.std_goods_name \n");
|
||||
executePluginSql.append(" AND current_year_data.zone_id = last_year_data.zone_id \n");
|
||||
executePluginSql.append(" AND current_year_data.province_id = last_year_data.province_id \n");
|
||||
executePluginSql.append(" AND current_year_data.sale_type_id = last_year_data.sale_type_id \n");
|
||||
executePluginSql.append(" AND current_year_data.dosage_id = last_year_data.dosage_id \n");
|
||||
executePluginSql.append(" AND current_year_data.custom_id = last_year_data.custom_id \n");
|
||||
executePluginSql.append(" AND current_year_data.saler_id = last_year_data.saler_id \n");
|
||||
executePluginSql.append(" AND last_year_data.use_year = current_year_data.use_year - 1 \n");
|
||||
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
||||
executePluginSql.append(" SUM(this_year_sa_money) AS this_year_sa_money_sum, \n");
|
||||
executePluginSql.append(" SUM(this_year_profit) AS this_year_profit_sum \n");
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_year_count \n");
|
||||
executePluginSql.append(" WHERE use_year = 2026 \n");
|
||||
executePluginSql.append(" GROUP BY use_year) as total_year_data \n");
|
||||
executePluginSql.append(" ON total_year_data.use_year = current_year_data.use_year \n");
|
||||
|
||||
// executePluginSql.append(" GROUP BY \n");
|
||||
// if (groupFieldList.contains("customName") || params.containsKey("customName")) {
|
||||
// executePluginSql.append(" current_year_data.custom_id,");
|
||||
// executePluginSql.append(" current_year_data.custom_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("useYear") || params.containsKey("useYear")) {
|
||||
// executePluginSql.append(" current_year_data.use_year,");
|
||||
// }
|
||||
// if (groupFieldList.contains("useMonth") || params.containsKey("useMonth")) {
|
||||
// executePluginSql.append(" current_year_data.use_month,");
|
||||
// }
|
||||
// if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) {
|
||||
// executePluginSql.append(" current_year_data.zone_id,");
|
||||
// executePluginSql.append(" current_year_data.zone_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) {
|
||||
// executePluginSql.append(" current_year_data.sale_type_id,");
|
||||
// executePluginSql.append(" current_year_data.sale_type_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("salerName") || params.containsKey("salerName")) {
|
||||
// executePluginSql.append(" current_year_data.saler_id,");
|
||||
// executePluginSql.append(" current_year_data.saler_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) {
|
||||
// executePluginSql.append(" current_year_data.dosage_id,");
|
||||
// executePluginSql.append(" current_year_data.dosage_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
// executePluginSql.append(" current_year_data.std_goods_name,");
|
||||
// }
|
||||
//
|
||||
// executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
executePluginSql.append(" GROUP BY \n");
|
||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) {
|
||||
executePluginSql.append(" current_year_data.custom_id,");
|
||||
executePluginSql.append(" current_year_data.custom_name,");
|
||||
}
|
||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
||||
executePluginSql.append(" current_year_data.use_year,");
|
||||
}
|
||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
||||
executePluginSql.append(" current_year_data.use_month,");
|
||||
}
|
||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
||||
executePluginSql.append(" current_year_data.zone_id,");
|
||||
executePluginSql.append(" current_year_data.zone_name,");
|
||||
}
|
||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
||||
executePluginSql.append(" current_year_data.sale_type_id,");
|
||||
executePluginSql.append(" current_year_data.sale_type_name,");
|
||||
}
|
||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
||||
executePluginSql.append(" current_year_data.saler_id,");
|
||||
executePluginSql.append(" current_year_data.saler_name,");
|
||||
}
|
||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
||||
executePluginSql.append(" current_year_data.dosage_id,");
|
||||
executePluginSql.append(" current_year_data.dosage_name,");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_year_data.std_goods_name,");
|
||||
}
|
||||
|
||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
sql = executePluginSql.toString();
|
||||
}
|
||||
params.put("executePluginSql", sql);
|
||||
@@ -303,381 +204,232 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
||||
private String geroupMonthSql(Map<String, Object> params, List<String> groupFieldList) {
|
||||
StringBuilder executePluginSql = new StringBuilder();
|
||||
executePluginSql.append("select");
|
||||
if (groupFieldList.contains("useMonth") || params.containsKey("useMonth")) { //月
|
||||
executePluginSql.append(" current_month.use_year as useYear,");
|
||||
executePluginSql.append(" current_month.use_month as useMonth, \n");
|
||||
if(groupFieldList.contains("useYear") || params.containsKey("useYear")){
|
||||
executePluginSql.append(" current_month.ny, \n"); //年月
|
||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) { //客户名称
|
||||
executePluginSql.append(" current_month.custom_id as customid, \n");
|
||||
executePluginSql.append(" current_month.custom_name as customname, \n");
|
||||
}
|
||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) { //月
|
||||
executePluginSql.append(" current_month.use_year as useyear,");
|
||||
executePluginSql.append(" current_month.use_month as usemonth, \n");
|
||||
if(groupFieldList.contains("useyear") || params.containsKey("useyear")){
|
||||
executePluginSql.append(" MAX(CONCAT(current_month.use_year, LPAD(current_month.use_month, 2, '0'))) as ny, \n"); //年月
|
||||
}else{
|
||||
executePluginSql.append(" LPAD(current_month.use_month, 2, '0') as ny, \n");
|
||||
executePluginSql.append(" MAX(LPAD(current_month.use_month, 2, '0')) as ny, \n");
|
||||
}
|
||||
}
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" current_month.custom_id as customid, \n");
|
||||
executePluginSql.append(" current_month.custom_name as customName, \n");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) { //业务区域
|
||||
executePluginSql.append(" current_month.zone_id, \n");
|
||||
executePluginSql.append(" current_month.zone_name as zoneName, \n");
|
||||
executePluginSql.append(" current_month.zone_name as zonename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) { //销售类型
|
||||
executePluginSql.append(" current_month.sale_type_id, \n");
|
||||
executePluginSql.append(" current_month.sale_type_name as saleTypeName, \n");
|
||||
executePluginSql.append(" current_month.sale_type_name as saletypename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) { //业务员
|
||||
executePluginSql.append(" current_month.saler_id, \n");
|
||||
executePluginSql.append(" current_month.saler_name as salerName, \n");
|
||||
executePluginSql.append(" current_month.saler_name as salername, \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) { //剂型
|
||||
executePluginSql.append(" current_month.dosage_id, \n");
|
||||
executePluginSql.append(" current_month.dosage_name as dosageName, \n");
|
||||
executePluginSql.append(" current_month.dosage_name as dosagename, \n");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_month.std_goods_name as stdGoodsName, \n");
|
||||
}
|
||||
executePluginSql.append(" current_month.this_month_sa_qty AS thisMonthSaQty, \n"); //本月销售数量(件)
|
||||
executePluginSql.append(" ROUND(current_month.this_month_sa_money / 10000, 2) AS thisMonthSaMoney, \n"); //本月销售金额(元)
|
||||
executePluginSql.append(" ROUND(current_month.this_month_profit / 10000, 2) AS thisMonthProfit, \n"); //本月毛利额(元)
|
||||
executePluginSql.append(" ROUND(current_month.this_month_cost / 10000, 2) AS thisMonthCost, \n"); //本月成本(元)
|
||||
executePluginSql.append(" last_month_data.last_month_sa_qty AS lastMonthSaQty, \n"); //上月销售数量(件)
|
||||
executePluginSql.append(" ROUND(last_month_data.last_month_sa_money / 10000, 2) AS lastMonthSaMoney, \n"); //上月销售金额(元)
|
||||
executePluginSql.append(" ROUND(last_month_data.last_month_profit / 10000, 2) AS lastMonthProfit, \n"); //上月毛利额(元)
|
||||
executePluginSql.append(" ROUND(last_month_data.last_month_cost / 10000, 2) AS lastMonthCost, \n"); //上月成本(元)
|
||||
executePluginSql.append(" ROUND(yoy_month.yoy_month_sa_qty / 10000, 2) AS yoyMonthSaQty, \n"); //同比月销售数量(件)
|
||||
executePluginSql.append(" ROUND(yoy_month.yoy_month_sa_money / 10000, 2) AS yoyMonthSaMoney, \n"); //同比月销售金额(元)
|
||||
executePluginSql.append(" ROUND(yoy_month.yoy_month_profit / 10000, 2) AS yoyMonthProfit, \n"); //同比月毛利额(元)
|
||||
executePluginSql.append(" ROUND(yoy_month.yoy_month_cost / 10000, 2) AS yoyMonthCost, \n"); //同比月成本(元)
|
||||
executePluginSql.append(" current_month.province_id AS province_id, \n"); //行政区域ID
|
||||
executePluginSql.append(" current_month.province_name AS province_name, \n"); //行政区域名称
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END), 2)) \n");
|
||||
executePluginSql.append(" SUM(current_month.this_month_sa_qty) as thisMonthSaQty, "); //本月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_sa_money) / 10000, 2) as thisMonthSaMoney, "); //本月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_profit) / 10000, 2) as thisMonthProfit, "); //本月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_cost) / 10000, 2) as thisMonthCost, "); //本月成本(元)
|
||||
|
||||
executePluginSql.append(" SUM(last_month_data.last_month_sa_qty) as lastMonthSaQty, "); //上月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_sa_money) / 10000, 2) as lastMonthSaMoney, "); //上月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_profit) / 10000, 2) as lastMonthProfit, "); //上月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_cost) / 10000, 2) as lastMonthCost, "); //上月成本(元)
|
||||
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_sa_qty)/ 10000, 2) as yoyMonthSaQty, "); //同比月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_sa_money) / 10000, 2) as yoyMonthSaMoney, "); //同比月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_profit) / 10000, 2) as yoyMonthProfit, "); //同比月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_cost) / 10000, 2) as yoyMonthCost, "); //同比月成本(元)
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_month.province_id ORDER BY current_month.province_id SEPARATOR ',') as province_id, \n"); //行政区域ID
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT current_month.province_name ORDER BY current_month.province_name SEPARATOR ',') as province_name, \n"); //行政区域名称
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(yoy_month.yoy_month_sa_qty) = 0 THEN IF(sum(current_month.this_month_sa_qty) > 0, 100, 0)\n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_qty) - sum(yoy_month.yoy_month_sa_qty)) / sum(yoy_month.yoy_month_sa_qty) * 100 END) > 0 THEN\n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_sa_qty) = 0 THEN IF(sum(current_month.this_month_sa_qty) > 0, 100, 0)\n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_qty) - sum(yoy_month.yoy_month_sa_qty)) / sum(yoy_month.yoy_month_sa_qty) * 100 END), 2))\n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(yoy_month.yoy_month_sa_qty) = 0 THEN IF(sum(current_month.this_month_sa_qty) > 0, 100, 0)\n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_qty) - sum(yoy_month.yoy_month_sa_qty)) / sum(yoy_month.yoy_month_sa_qty) * 100 END) < 0 THEN\n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_sa_qty) = 0 THEN IF(sum(current_month.this_month_sa_qty) > 0, 100, 0)\n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_qty) - sum(yoy_month.yoy_month_sa_qty)) / sum(yoy_month.yoy_month_sa_qty) * 100 END), 2))\n");
|
||||
executePluginSql.append(" ELSE '0.00'\n");
|
||||
executePluginSql.append(" END AS monthsaqty_yoy,\n"); //本月销量同比
|
||||
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(yoy_month.yoy_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(yoy_month.yoy_month_sa_money)) / sum(yoy_month.yoy_month_sa_money) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(yoy_month.yoy_month_sa_money)) / sum(yoy_month.yoy_month_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(yoy_month.yoy_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(yoy_month.yoy_month_sa_money)) / sum(yoy_month.yoy_month_sa_money) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(yoy_month.yoy_month_sa_money)) / sum(yoy_month.yoy_month_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS monthsamoney_yoy, \n"); //本月销售金额同比
|
||||
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(last_month_data.last_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(last_month_data.last_month_sa_money)) / sum(last_month_data.last_month_sa_money) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(last_month_data.last_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(last_month_data.last_month_sa_money)) / sum(last_month_data.last_month_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(last_month_data.last_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(last_month_data.last_month_sa_money)) / sum(last_month_data.last_month_sa_money) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(last_month_data.last_month_sa_money) = 0 THEN IF(sum(current_month.this_month_sa_money) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_sa_money) - sum(last_month_data.last_month_sa_money)) / sum(last_month_data.last_month_sa_money) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS lastMonthSaMoney_yoy, \n"); //本月销售金额增长率
|
||||
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(yoy_month.yoy_month_cost) = 0 THEN IF(sum(current_month.this_month_cost) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_cost) - sum(yoy_month.yoy_month_cost)) / sum(yoy_month.yoy_month_cost) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_cost) = 0 THEN IF(sum(current_month.this_month_cost) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_cost) - sum(yoy_month.yoy_month_cost)) / sum(yoy_month.yoy_month_cost) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(yoy_month.yoy_month_cost) = 0 THEN IF(sum(current_month.this_month_cost) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_cost) - sum(yoy_month.yoy_month_cost)) / sum(yoy_month.yoy_month_cost) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_cost) = 0 THEN IF(sum(current_month.this_month_cost) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(current_month.this_month_cost) - sum(yoy_month.yoy_month_cost)) / sum(yoy_month.yoy_month_cost) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS this_month_cost_yoy, \n"); //本月销售成本同比
|
||||
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" CASE WHEN (CASE WHEN sum(yoy_month.yoy_month_profit) = 0 THEN IF(sum(yoy_month.yoy_month_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(yoy_month.yoy_month_profit) - sum(yoy_month.yoy_month_profit)) / sum(yoy_month.yoy_month_profit) * 100 END) > 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🟢 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_profit) = 0 THEN IF(sum(yoy_month.yoy_month_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(yoy_month.yoy_month_profit) - sum(yoy_month.yoy_month_profit)) / sum(yoy_month.yoy_month_profit) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" WHEN (CASE WHEN sum(yoy_month.yoy_month_profit) = 0 THEN IF(sum(yoy_month.yoy_month_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(yoy_month.yoy_month_profit) - sum(yoy_month.yoy_month_profit)) / sum(yoy_month.yoy_month_profit) * 100 END) < 0 THEN \n");
|
||||
executePluginSql.append(" CONCAT('🔴 ', ROUND((CASE WHEN sum(yoy_month.yoy_month_profit) = 0 THEN IF(sum(yoy_month.yoy_month_profit) > 0, 100, 0) \n");
|
||||
executePluginSql.append(" ELSE (sum(yoy_month.yoy_month_profit) - sum(yoy_month.yoy_month_profit)) / sum(yoy_month.yoy_month_profit) * 100 END), 2)) \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS monthprofit_yoy, \n"); //本月毛利同比
|
||||
|
||||
executePluginSql.append(" COALESCE (ROUND( current_month.this_month_sa_money/total_month_data.this_month_sa_money_sum * 100, 2), 0 ) as this_month_sa_money_share,\n"); //本月销售金额占比
|
||||
executePluginSql.append(" COALESCE (ROUND( current_month.this_month_profit/total_month_data.this_month_profit_sum * 100, 2), 0 ) as this_month_profit_share \n"); //本月毛利额占比
|
||||
executePluginSql.append(" FROM (SELECT \n");
|
||||
executePluginSql.append(" use_year AS use_year, \n");
|
||||
executePluginSql.append(" use_month AS use_month, \n");
|
||||
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" custom_name , \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName") ) { //标准品名
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName") ) { //业务区域
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" zone_name, \n");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" sale_type_name, \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" dosage_name, \n");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" saler_name, \n");
|
||||
}
|
||||
executePluginSql.append(" MAX(CONCAT(use_year, LPAD(use_month, 2, '0'))) AS ny, \n");
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT province_id ORDER BY province_id SEPARATOR ',') AS province_id, \n");
|
||||
executePluginSql.append(" GROUP_CONCAT(DISTINCT province_name ORDER BY province_name SEPARATOR ',') AS province_name, \n");
|
||||
executePluginSql.append(" sum(this_month_sa_qty) AS this_month_sa_qty, \n");
|
||||
executePluginSql.append(" sum(this_month_sa_money) AS this_month_sa_money, \n");
|
||||
executePluginSql.append(" sum(this_month_cost) AS this_month_cost, \n");
|
||||
executePluginSql.append(" sum(this_month_profit) AS this_month_profit \n");
|
||||
executePluginSql.append(" FROM \n");
|
||||
executePluginSql.append(" new_gr_bi_sa_agg_month_count \n");
|
||||
appendWhere(params, executePluginSql);
|
||||
executePluginSql.append(" GROUP BY use_year,use_month,");
|
||||
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id,");
|
||||
executePluginSql.append(" custom_name,");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" std_goods_name,");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" zone_id,");
|
||||
executePluginSql.append(" zone_name,");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id,");
|
||||
executePluginSql.append(" sale_type_name,");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id,");
|
||||
executePluginSql.append(" dosage_name,");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id,");
|
||||
executePluginSql.append(" saler_name,");
|
||||
}
|
||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
executePluginSql.append(" ) AS current_month \n"); //current_month 本月数据
|
||||
executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_sa_money)/SUM(total_month_data.this_month_sa_money_sum) * 100, 2), 0 ) as this_month_sa_money_share,\n"); //本月销售金额占比
|
||||
executePluginSql.append(" COALESCE (ROUND( sum(current_month.this_month_profit)/SUM(total_month_data.this_month_profit_sum) * 100, 2), 0 ) as this_month_profit_share \n"); //本月毛利额占比
|
||||
executePluginSql.append(" from new_gr_bi_sa_agg_month_count as current_month \n");
|
||||
executePluginSql.append(" LEFT JOIN (SELECT \n");
|
||||
executePluginSql.append(" use_year, \n");
|
||||
executePluginSql.append(" use_month, \n");
|
||||
appendSelectField(params, groupFieldList, executePluginSql);
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" SUM(this_month_sa_qty) AS last_month_sa_qty, \n");
|
||||
executePluginSql.append(" SUM(this_month_sa_money) AS last_month_sa_money, \n");
|
||||
executePluginSql.append(" SUM(this_month_cost) AS last_month_cost, \n");
|
||||
executePluginSql.append(" SUM(this_month_profit) AS last_month_profit \n");
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count \n");
|
||||
// appendWhere(params, executePluginSql);
|
||||
executePluginSql.append(" GROUP BY use_year,use_month,");
|
||||
appendGroupByField(params, groupFieldList, executePluginSql);
|
||||
executePluginSql.append(" ) AS last_month_data \n"); // last_month_data 上月数据
|
||||
executePluginSql.append(" ON last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)\n");
|
||||
executePluginSql.append(" GROUP BY use_year, \n");
|
||||
executePluginSql.append(" use_month, \n");
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id) AS last_month_data \n");
|
||||
executePluginSql.append(" ON current_month.std_goods_name = last_month_data.std_goods_name \n");
|
||||
executePluginSql.append(" AND current_month.zone_id = last_month_data.zone_id \n");
|
||||
executePluginSql.append(" AND current_month.province_id = last_month_data.province_id \n");
|
||||
executePluginSql.append(" AND current_month.sale_type_id = last_month_data.sale_type_id \n");
|
||||
executePluginSql.append(" AND current_month.dosage_id = last_month_data.dosage_id \n");
|
||||
executePluginSql.append(" AND current_month.custom_id = last_month_data.custom_id \n");
|
||||
executePluginSql.append(" AND current_month.saler_id = last_month_data.saler_id \n");
|
||||
executePluginSql.append(" AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)\n");
|
||||
executePluginSql.append(" AND last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1)\n");
|
||||
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName") ) { //客户名称
|
||||
executePluginSql.append(" AND current_month.custom_id = last_month_data.custom_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" AND current_month.std_goods_name = last_month_data.std_goods_name \n");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" AND current_month.zone_id = last_month_data.zone_id \n");
|
||||
}
|
||||
// executePluginSql.append(" AND current_month.province_id = last_month_data.province_id \n");
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" AND current_month.sale_type_id = last_month_data.sale_type_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" AND current_month.dosage_id = last_month_data.dosage_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" AND current_month.saler_id = last_month_data.saler_id \n");
|
||||
}
|
||||
executePluginSql.append(" LEFT JOIN (SELECT use_year, \n");
|
||||
executePluginSql.append(" use_month, \n");
|
||||
// executePluginSql.append(" custom_id, \n");
|
||||
// executePluginSql.append(" zone_id, \n");
|
||||
// executePluginSql.append(" std_goods_name, \n");
|
||||
//// executePluginSql.append(" province_id, \n");
|
||||
// executePluginSql.append(" sale_type_id, \n");
|
||||
// executePluginSql.append(" dosage_id, \n");
|
||||
// executePluginSql.append(" saler_id, \n");
|
||||
|
||||
appendSelectField(params, groupFieldList, executePluginSql);
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
executePluginSql.append(" SUM(this_month_sa_qty) AS yoy_month_sa_qty, \n"); // 同比月销量
|
||||
executePluginSql.append(" SUM(this_month_sa_money) AS yoy_month_sa_money, \n"); // 同比月销售金额
|
||||
executePluginSql.append(" SUM(this_month_cost) as yoy_month_cost, \n"); // 同比月销售成本
|
||||
executePluginSql.append(" SUM(this_month_profit) AS yoy_month_profit \n"); // 同比月毛利额
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg_month_count ");
|
||||
if(params.containsKey("useYear")){
|
||||
params.put("useYear", Integer.parseInt(params.get("useYear").toString()) - 1);
|
||||
}
|
||||
appendWhere(params, executePluginSql);
|
||||
if(params.containsKey("useYear")){
|
||||
params.put("useYear", Integer.parseInt(params.get("useYear").toString() ) + 1);
|
||||
}
|
||||
executePluginSql.append(" GROUP BY use_year,use_month,");
|
||||
appendGroupByField(params, groupFieldList, executePluginSql);
|
||||
executePluginSql.append(" ) yoy_month ON yoy_month.use_year = current_month.use_year - 1 \n"); // 同比月数据
|
||||
// if(params.containsKey("useyear")){
|
||||
// executePluginSql.append(" where use_year = " + (Integer.parseInt(params.get("useyear").toString())-1));
|
||||
// }
|
||||
executePluginSql.append(" GROUP BY use_year, \n");
|
||||
executePluginSql.append(" use_month, \n");
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
executePluginSql.append(" province_id, \n");
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
executePluginSql.append(" saler_id) yoy_month ON yoy_month.use_year = current_month.use_year - 1 \n");
|
||||
executePluginSql.append(" AND yoy_month.use_month = current_month.use_month \n");
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" AND yoy_month.std_goods_name = current_month.std_goods_name \n");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" AND yoy_month.zone_id = current_month.zone_id \n");
|
||||
}
|
||||
// executePluginSql.append(" AND yoy_month.province_id = current_month.province_id \n");
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" AND yoy_month.sale_type_id = current_month.sale_type_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" AND yoy_month.dosage_id = current_month.dosage_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" AND yoy_month.custom_id = current_month.custom_id \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" AND yoy_month.saler_id = current_month.saler_id \n");
|
||||
}
|
||||
executePluginSql.append(" AND yoy_month.std_goods_name = current_month.std_goods_name \n");
|
||||
executePluginSql.append(" AND yoy_month.zone_id = current_month.zone_id \n");
|
||||
executePluginSql.append(" AND yoy_month.province_id = current_month.province_id \n");
|
||||
executePluginSql.append(" AND yoy_month.sale_type_id = current_month.sale_type_id \n");
|
||||
executePluginSql.append(" AND yoy_month.dosage_id = current_month.dosage_id \n");
|
||||
executePluginSql.append(" AND yoy_month.custom_id = current_month.custom_id \n");
|
||||
executePluginSql.append(" AND yoy_month.saler_id = current_month.saler_id \n");
|
||||
executePluginSql.append(" LEFT JOIN (\n");
|
||||
executePluginSql.append(" SELECT \n");
|
||||
executePluginSql.append(" use_year, \n");
|
||||
executePluginSql.append(" use_month, \n");
|
||||
executePluginSql.append(" SUM( this_month_sa_money ) AS this_month_sa_money_sum, \n");
|
||||
executePluginSql.append(" SUM(this_month_profit) AS this_month_profit_sum \n");
|
||||
executePluginSql.append(" FROM new_gr_bi_sa_agg \n");
|
||||
// if(params.containsKey("useyear")){
|
||||
// executePluginSql.append(" where use_year = " + params.get("useyear"));
|
||||
// }
|
||||
executePluginSql.append(" GROUP BY \n");
|
||||
executePluginSql.append(" use_year\n");
|
||||
executePluginSql.append(" use_year, use_month\n");
|
||||
executePluginSql.append(" ) total_month_data ON total_month_data.use_year = current_month.use_year \n");
|
||||
// executePluginSql.append(" AND total_month_data.use_month = current_month.use_month \n");
|
||||
if(params.containsKey("useYear")){
|
||||
executePluginSql.append(" where current_month.use_year = " + params.get("useYear"));
|
||||
if(params.containsKey("useMonth")){
|
||||
executePluginSql.append(" and current_month.use_month = " + params.get("useMonth"));
|
||||
executePluginSql.append(" AND total_month_data.use_month = current_month.use_month \n");
|
||||
if(params.containsKey("useyear")){
|
||||
executePluginSql.append(" where current_month.use_year = " + params.get("useyear"));
|
||||
if(params.containsKey("usemonth")){
|
||||
executePluginSql.append(" and current_month.use_month = " + params.get("usemonth"));
|
||||
}
|
||||
}
|
||||
// executePluginSql.append(" GROUP BY \n");
|
||||
// if (groupFieldList.contains("customName") || params.containsKey("customName")) {
|
||||
// executePluginSql.append(" current_month.custom_id,");
|
||||
// executePluginSql.append(" current_month.custom_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("useYear") || params.containsKey("useYear")) {
|
||||
// executePluginSql.append(" current_month.use_year,");
|
||||
// }
|
||||
// if (groupFieldList.contains("useMonth") || params.containsKey("useMonth")) {
|
||||
// executePluginSql.append(" current_month.use_month,");
|
||||
// }
|
||||
// if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) {
|
||||
// executePluginSql.append(" current_month.zone_id,");
|
||||
// executePluginSql.append(" current_month.zone_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) {
|
||||
// executePluginSql.append(" current_month.sale_type_id,");
|
||||
// executePluginSql.append(" current_month.sale_type_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("salerName") || params.containsKey("salerName")) {
|
||||
// executePluginSql.append(" current_month.saler_id,");
|
||||
// executePluginSql.append(" current_month.saler_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) {
|
||||
// executePluginSql.append(" current_month.dosage_id,");
|
||||
// executePluginSql.append(" current_month.dosage_name,");
|
||||
// }
|
||||
// if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
// executePluginSql.append(" current_month.std_goods_name,");
|
||||
// }
|
||||
//
|
||||
// executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
executePluginSql.append(" GROUP BY \n");
|
||||
if (groupFieldList.contains("customname") || params.containsKey("customname")) {
|
||||
executePluginSql.append(" current_month.custom_id,");
|
||||
executePluginSql.append(" current_month.custom_name,");
|
||||
}
|
||||
if (groupFieldList.contains("useyear") || params.containsKey("useyear")) {
|
||||
executePluginSql.append(" current_month.use_year,");
|
||||
}
|
||||
if (groupFieldList.contains("usemonth") || params.containsKey("usemonth")) {
|
||||
executePluginSql.append(" current_month.use_month,");
|
||||
}
|
||||
if (groupFieldList.contains("zonename") || params.containsKey("zonename")) {
|
||||
executePluginSql.append(" current_month.zone_id,");
|
||||
executePluginSql.append(" current_month.zone_name,");
|
||||
}
|
||||
if (groupFieldList.contains("saletypename") || params.containsKey("saletypename")) {
|
||||
executePluginSql.append(" current_month.sale_type_id,");
|
||||
executePluginSql.append(" current_month.sale_type_name,");
|
||||
}
|
||||
if (groupFieldList.contains("salername") || params.containsKey("salername")) {
|
||||
executePluginSql.append(" current_month.saler_id,");
|
||||
executePluginSql.append(" current_month.saler_name,");
|
||||
}
|
||||
if (groupFieldList.contains("dosagename") || params.containsKey("dosagename")) {
|
||||
executePluginSql.append(" current_month.dosage_id,");
|
||||
executePluginSql.append(" current_month.dosage_name,");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_month.std_goods_name,");
|
||||
}
|
||||
|
||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
return executePluginSql.toString();
|
||||
|
||||
}
|
||||
|
||||
private void appendGroupByField(Map<String, Object> params, List<String> groupFieldList, StringBuilder executePluginSql) {
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id,");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" std_goods_name,");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" zone_id,");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id,");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id,");
|
||||
}
|
||||
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id,");
|
||||
}
|
||||
executePluginSql.deleteCharAt(executePluginSql.length() - 1);
|
||||
}
|
||||
|
||||
private void appendSelectField(Map<String, Object> params, List<String> groupFieldList, StringBuilder executePluginSql) {
|
||||
if (groupFieldList.contains("customName") || params.containsKey("customName")) { //客户名称
|
||||
executePluginSql.append(" custom_id, \n");
|
||||
}
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" std_goods_name, \n");
|
||||
}
|
||||
if (groupFieldList.contains("zoneName") || params.containsKey("zoneName")) { //业务区域
|
||||
executePluginSql.append(" zone_id, \n");
|
||||
}
|
||||
if (groupFieldList.contains("saleTypeName") || params.containsKey("saleTypeName")) { //销售类型
|
||||
executePluginSql.append(" sale_type_id, \n");
|
||||
}
|
||||
if (groupFieldList.contains("dosageName") || params.containsKey("dosageName")) { //剂型
|
||||
executePluginSql.append(" dosage_id, \n");
|
||||
}
|
||||
if (groupFieldList.contains("salerName") || params.containsKey("salerName")) { //业务员
|
||||
executePluginSql.append(" saler_id, \n");
|
||||
}
|
||||
}
|
||||
|
||||
private void appendWhere(Map<String, Object> params, StringBuilder executePluginSql) {
|
||||
executePluginSql.append(" where");
|
||||
if (params.containsKey("useYear")) {
|
||||
executePluginSql.append(" use_year = '").append(Integer.parseInt(params.get("useYear").toString())).append("'");
|
||||
}
|
||||
if (params.containsKey("useMonth")) {
|
||||
executePluginSql.append(" AND use_month = '").append(Integer.parseInt(params.get("useMonth").toString())).append("'");
|
||||
}
|
||||
if (params.containsKey("customName")) {
|
||||
executePluginSql.append(" AND custom_name IN ('").append(params.get("customName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
if (params.containsKey("stdGoodsName")) {
|
||||
executePluginSql.append(" AND std_goods_name IN ('").append(params.get("stdGoodsName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
if (params.containsKey("zoneName")) {
|
||||
executePluginSql.append(" AND zone_name IN ('").append(params.get("zoneName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
if (params.containsKey("saleTypeName")) {
|
||||
executePluginSql.append(" AND sale_type_name IN ('").append(params.get("saleTypeName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
if (params.containsKey("dosageName")) {
|
||||
executePluginSql.append(" AND dosage_name IN ('").append(params.get("dosageName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
if (params.containsKey("salerName")) {
|
||||
executePluginSql.append(" AND saler_name IN ('").append(params.get("salerName").toString().replaceAll(",", "','")).append("')");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,76 +1,21 @@
|
||||
|
||||
package com.lideeyunji.core.framework.enhance.example.report.xtsy;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.model.EnhanceReportContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportAroundAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhancereport.plugin.ReportBeforeAdvicePlugin;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggService;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService;
|
||||
import com.lideeyunji.tool.framework.exception.lideeYunJiException;
|
||||
import com.lideeyunji.tool.framework.yunji.model.ResultDataModel;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseWebResult;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 报表-系统首页-单表
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("zhxsqkPlugin")
|
||||
public class zhxsqkPlugin implements ReportAroundAdvicePlugin {
|
||||
public class zhxsqkPlugin implements ReportBeforeAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
INewGrBiSaAggService newGrBiSaAggService;
|
||||
|
||||
@Resource
|
||||
INewGrBiSaAggMonthCountService newGrBiSaAggMonthCountService;
|
||||
|
||||
@Resource
|
||||
INewGrBiSaAggYearCountService newGrBiSaAggYearCountService;
|
||||
|
||||
@Override
|
||||
public ResultDataModel executeAround(EnhanceReportContext enhanceContext) {
|
||||
log.info("进入=======>zhxsqkLineReportEnhance=======>execute");
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
public void execute(EnhanceReportContext enhanceContext) {
|
||||
|
||||
if (params.containsKey("Group by")) {
|
||||
if (params.containsKey("goodsname")) {
|
||||
throw new lideeYunJiException("在选择维度时,“货品名称”不能有值!");
|
||||
}
|
||||
List<String> groupFieldList = Arrays.asList(params.get("Group by").toString().split(","));
|
||||
PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()));
|
||||
if((groupFieldList.contains("useMonth") || params.containsKey("useMonth"))){
|
||||
List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggMonthCountService.selectNewGrBiSaAggGroupMonthList(params, groupFieldList);
|
||||
PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
|
||||
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
|
||||
return ResultDataModel.fomat(pageInfo.getTotal(),list);
|
||||
}else{
|
||||
List<NewGrBiSaAggYearCount> newGrBiSaAggList = newGrBiSaAggYearCountService.selectNewGrBiSaAggGroupYearList(params, groupFieldList);
|
||||
PageInfo<NewGrBiSaAggYearCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
|
||||
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
|
||||
return ResultDataModel.fomat(pageInfo.getTotal(),list);
|
||||
}
|
||||
|
||||
}else {
|
||||
PageHelper.startPage(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()));
|
||||
List<NewGrBiSaAggMonthCount> newGrBiSaAggList = newGrBiSaAggService.selectNewGrBiSaAggList(params);
|
||||
PageInfo<NewGrBiSaAggMonthCount> pageInfo = new PageInfo<>(newGrBiSaAggList);
|
||||
List<Map<String, Object>> list = newGrBiSaAggList.stream().map(BeanUtil::beanToMap).collect(Collectors.toList());
|
||||
return ResultDataModel.fomat(pageInfo.getTotal(),list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseTenantEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 保养管理-保养工单
|
||||
*/
|
||||
@TableName("by_management_gd")
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class ByManagementGd extends BaseTenantEntity {
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 工单名称
|
||||
*/
|
||||
private String orderName;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceTypeName;
|
||||
|
||||
/**
|
||||
*设备
|
||||
*/
|
||||
private String equipmentInfo;
|
||||
|
||||
/**
|
||||
*设备编号
|
||||
*/
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
*保养级别
|
||||
*/
|
||||
private String upkeepLevel;
|
||||
|
||||
|
||||
/**
|
||||
*优先级
|
||||
*/
|
||||
private String priority;
|
||||
|
||||
/**
|
||||
*可能更换零件
|
||||
*/
|
||||
private String possibleReplacements;
|
||||
|
||||
/**
|
||||
*计划保养时间
|
||||
*/
|
||||
private String planUpkeepTime;
|
||||
|
||||
/**
|
||||
*是否申请备件
|
||||
*/
|
||||
private String applyForParts;
|
||||
|
||||
/**
|
||||
*是否已停机
|
||||
*/
|
||||
private String isStopped;
|
||||
|
||||
|
||||
/**
|
||||
*执行人
|
||||
*/
|
||||
private String executor;
|
||||
|
||||
/**
|
||||
*状态
|
||||
*/
|
||||
private String orderState;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private String upkeepTime;
|
||||
|
||||
/**
|
||||
* 保养方案
|
||||
*/
|
||||
private String schemeId;
|
||||
|
||||
/**
|
||||
* 处理结果
|
||||
*/
|
||||
private String bygdCljg;
|
||||
|
||||
/**
|
||||
* 计划id
|
||||
*/
|
||||
private String planId;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseTenantEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 保养管理-保养记录
|
||||
*/
|
||||
@TableName("by_management_jl")
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class ByManagementJl extends BaseTenantEntity {
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 工单名称
|
||||
*/
|
||||
private String orderName;
|
||||
|
||||
/**
|
||||
*设备
|
||||
*/
|
||||
private String equipmentInfo;
|
||||
|
||||
/**
|
||||
*优先级
|
||||
*/
|
||||
private String priority;
|
||||
|
||||
/**
|
||||
*保养级别
|
||||
*/
|
||||
private String upkeepLevel;
|
||||
|
||||
/**
|
||||
*完成时间
|
||||
*/
|
||||
private String upkeepTime;
|
||||
|
||||
/**
|
||||
*状态
|
||||
*/
|
||||
private String state;
|
||||
|
||||
/**
|
||||
*执行人
|
||||
*/
|
||||
private String executor;
|
||||
|
||||
/**
|
||||
*验收时间
|
||||
*/
|
||||
private String ysTime;
|
||||
|
||||
/**
|
||||
*评价星级
|
||||
*/
|
||||
private String pjxj;
|
||||
|
||||
/**
|
||||
*验收意见
|
||||
*/
|
||||
private String gdysYj;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.lideeyunji.tool.framework.yunji.model.global.BaseTenantEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 保养管理-保养验收
|
||||
*/
|
||||
@TableName("by_management_ys")
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class ByManagementYs extends BaseTenantEntity {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 工单名称
|
||||
*/
|
||||
private String orderName;
|
||||
|
||||
/**
|
||||
*设备
|
||||
*/
|
||||
private String equipmentInfo;
|
||||
|
||||
/**
|
||||
*优先级
|
||||
*/
|
||||
private String priority;
|
||||
|
||||
/**
|
||||
*保养级别
|
||||
*/
|
||||
private String upkeepLevel;
|
||||
|
||||
/**
|
||||
*完成时间
|
||||
*/
|
||||
private String upkeepTime;
|
||||
|
||||
/**
|
||||
*状态
|
||||
*/
|
||||
private String state;
|
||||
|
||||
/**
|
||||
*执行人
|
||||
*/
|
||||
private String executor;
|
||||
|
||||
/**
|
||||
*验收时间
|
||||
*/
|
||||
private String ysTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ public class NewGrBiSaAgg implements Serializable
|
||||
|
||||
|
||||
@TableField(value = "province_id")
|
||||
private String provinceId;
|
||||
private Long provinceId;
|
||||
|
||||
|
||||
@TableField(value = "province_name")
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.lideeyunji.core.framework.entity;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import jdk.nashorn.internal.ir.annotations.Ignore;
|
||||
import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -27,10 +26,6 @@ public class NewGrBiSaAggMonthCount implements Serializable
|
||||
private String useYear;
|
||||
|
||||
|
||||
@TableField(value = "ny")
|
||||
private String ny;
|
||||
|
||||
|
||||
@TableField(value = "use_month")
|
||||
private Long useMonth;
|
||||
|
||||
@@ -71,7 +66,7 @@ public class NewGrBiSaAggMonthCount implements Serializable
|
||||
|
||||
|
||||
@TableField(value = "province_id")
|
||||
private String provinceId;
|
||||
private Long provinceId;
|
||||
|
||||
|
||||
@TableField(value = "province_name")
|
||||
@@ -154,25 +149,7 @@ public class NewGrBiSaAggMonthCount implements Serializable
|
||||
private BigDecimal thisMonthProfitShare;
|
||||
|
||||
|
||||
@TableField(value = "thissamoney_s")
|
||||
private BigDecimal thisMonthSaMoney_s;
|
||||
|
||||
@TableField(value = "thisprofit_s")
|
||||
private BigDecimal thisMonthProfit_s;
|
||||
|
||||
@TableField(value = "monthsaqty_yoy")
|
||||
private String monthsaqty_yoy;
|
||||
|
||||
@TableField(value = "monthsamoney_yoy")
|
||||
private String monthsamoney_yoy;
|
||||
|
||||
@TableField(value = "lastMonthSaMoney_yoy")
|
||||
private String lastMonthSaMoney_yoy;
|
||||
|
||||
@TableField(value = "this_month_cost_yoy")
|
||||
private String this_month_cost_yoy;
|
||||
|
||||
@TableField(value = "monthprofit_yoy")
|
||||
private String monthprofit_yoy;
|
||||
|
||||
}
|
||||
|
||||
@@ -25,8 +25,6 @@ public class NewGrBiSaAggYearCount implements Serializable
|
||||
@TableField(value = "use_year")
|
||||
private String useYear;
|
||||
|
||||
@TableField(value = "ny")
|
||||
private String ny;
|
||||
|
||||
@TableField(value = "zone_id")
|
||||
private Long zoneId;
|
||||
@@ -137,33 +135,18 @@ public class NewGrBiSaAggYearCount implements Serializable
|
||||
|
||||
|
||||
@TableField(value = "this_year_sa_money_growth")
|
||||
private String thisYearSaMoneyGrowth;
|
||||
private BigDecimal thisYearSaMoneyGrowth;
|
||||
|
||||
|
||||
@TableField(value = "this_year_profit_growth")
|
||||
private String thisYearProfitGrowth;
|
||||
private BigDecimal thisYearProfitGrowth;
|
||||
|
||||
|
||||
@TableField(value = "this_year_profit_change")
|
||||
private String thisYearProfitChange;
|
||||
|
||||
@TableField(value = "this_year_sa_money_s")
|
||||
private BigDecimal thissamoney_s;
|
||||
|
||||
@TableField(value = "this_year_profit_s")
|
||||
private BigDecimal thisprofit_s;
|
||||
private BigDecimal thisYearProfitChange;
|
||||
|
||||
|
||||
@TableField(value = "saqty_yoy")
|
||||
private String saqty_yoy;
|
||||
|
||||
@TableField(value = "samoney_yoy")
|
||||
private String samoney_yoy;
|
||||
|
||||
@TableField(value = "profit_yoy")
|
||||
private String profit_yoy;
|
||||
|
||||
@TableField(value = "thisprofitshare")
|
||||
private String thisprofitshare;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementGd;
|
||||
|
||||
/**
|
||||
* 保养管理-保养工单Mapper接口
|
||||
*
|
||||
* @date 2026-03-20
|
||||
*/
|
||||
public interface ByManagementGdMapper extends BaseMapper<ByManagementGd> {
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementJl;
|
||||
|
||||
/**
|
||||
* 保养管理-保养记录Mapper接口
|
||||
*
|
||||
* @date 2026-03-20
|
||||
*/
|
||||
public interface ByManagementJlMapper extends BaseMapper<ByManagementJl> {
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.entity.ByManagementYs;
|
||||
|
||||
/**
|
||||
* 保养管理-保养验收Mapper接口
|
||||
*
|
||||
* @date 2026-03-20
|
||||
*/
|
||||
public interface ByManagementYsMapper extends BaseMapper<ByManagementYs> {
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.Master;
|
||||
|
||||
/**
|
||||
*保养管理-保养方案
|
||||
*/
|
||||
@Master
|
||||
public interface ByglByfaMapper {
|
||||
|
||||
int changeFaState(String id, String state);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.Master;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Master
|
||||
public interface ByglByjhMapper{
|
||||
|
||||
Map<String,Object> getCountByPlanId(String plan_id);
|
||||
|
||||
Map<String,Object> getPlanByPlanId(String plan_id);
|
||||
|
||||
Map<String, Object> getOrderByPlanId(String order_id);
|
||||
|
||||
Map<String, Object> getSchemeBySchemeId(String scheme_id);
|
||||
|
||||
int updateClBygd(String id, String bygd_cljg, String order_state);
|
||||
}
|
||||
@@ -1,16 +1,10 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
import com.lideeyunji.core.framework.entity.GrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.tool.framework.permission.core.annotation.DataPermission;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
@@ -67,12 +61,10 @@ public interface NewGrBiSaAggMapper extends BaseMapper<NewGrBiSaAgg>
|
||||
/**
|
||||
* 查询综合销售情况明细列表
|
||||
*
|
||||
* @param saAggParam 综合销售情况明细参数
|
||||
* @param newGrBiSaAgg 综合销售情况明细
|
||||
* @return 综合销售情况明细集合
|
||||
*/
|
||||
@DataPermission(enable = false)
|
||||
@DS(value = "#dataSourceType")
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(@Param("dataSourceType") String dataSourceType, @Param("saAggParam")SaAggParam saAggParam);
|
||||
public List<NewGrBiSaAgg> selectNewGrBiSaAggList(NewGrBiSaAgg newGrBiSaAgg);
|
||||
|
||||
/**
|
||||
* 新增综合销售情况明细
|
||||
|
||||
@@ -1,15 +1,8 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.tool.framework.permission.core.annotation.DataPermission;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 综合销售情况月维度Mapper接口
|
||||
@@ -66,18 +59,4 @@ public interface NewGrBiSaAggMonthCountMapper extends BaseMapper<NewGrBiSaAggMon
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNewGrBiSaAggMonthCountByIds(Long[] ids);
|
||||
|
||||
@DS(value = "#dataSourceType")
|
||||
List<NewGrBiSaAggMonthCount> getTotalDetail(@Param("dataSourceType") String dataSourceType, @Param("saAggParam") SaAggParam saAggParam);
|
||||
|
||||
/**
|
||||
* 批量查询综合销售情况明细列表 -月度
|
||||
*
|
||||
* @param saAggParam 综合销售情况明细参数
|
||||
* @return 综合销售情况明细集合
|
||||
*/
|
||||
@DataPermission(enable = false)
|
||||
@DS(value = "#dataSourceType")
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggGroupMonthList(@Param("dataSourceType") String dataSourceType, @Param("saAggParam") SaAggParam saAggParam, @Param("params") Map<String, Object> params, @Param("groupFieldList")List<String> groupFieldList);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,15 +1,8 @@
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.tool.framework.permission.core.annotation.DataPermission;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 综合销售情况年维度Mapper接口
|
||||
@@ -66,19 +59,4 @@ public interface NewGrBiSaAggYearCountMapper extends BaseMapper<NewGrBiSaAggYear
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNewGrBiSaAggYearCountByIds(Long[] ids);
|
||||
|
||||
|
||||
@DS(value = "#dataSourceType")
|
||||
List<NewGrBiSaAggYearCount> getTotalDetail(@Param("dataSourceType") String dataSourceType,@Param("saAggParam") SaAggParam saAggParam);
|
||||
|
||||
/**
|
||||
* 批量查询综合销售情况明细列表 -月度
|
||||
*
|
||||
* @param saAggParam 综合销售情况明细参数
|
||||
* @return 综合销售情况明细集合
|
||||
*/
|
||||
@DataPermission(enable = false)
|
||||
@DS(value = "#dataSourceType")
|
||||
public List<NewGrBiSaAggYearCount> selectNewGrBiSaAggGroupYearList(@Param("dataSourceType") String dataSourceType, @Param("saAggParam") SaAggParam saAggParam, @Param("params") Map<String, Object> params, @Param("groupFieldList")List<String> groupFieldList);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.lideeyunji.core.framework.params;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SaAggParam {
|
||||
private String useYear;
|
||||
private String useMonth;
|
||||
private List<String> customName;
|
||||
private List<String> zoneName;
|
||||
private List<String> saleTypeName;
|
||||
private List<String> salerName;
|
||||
private List<String> dosageName;
|
||||
private List<String> stdGoodsName;
|
||||
private List<String> goodsName;
|
||||
private List<String> provinceName;
|
||||
|
||||
private List<String> groupFieldList;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.service;
|
||||
|
||||
/**
|
||||
* 保养管理-保养方案
|
||||
*/
|
||||
public interface IByglByfaService {
|
||||
|
||||
int changeFaState(String id, String state);
|
||||
}
|
||||
@@ -1,11 +1,7 @@
|
||||
package com.lideeyunji.core.framework.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
|
||||
/**
|
||||
* 综合销售情况月维度Service接口
|
||||
@@ -62,10 +58,4 @@ public interface INewGrBiSaAggMonthCountService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNewGrBiSaAggMonthCountById(Long id);
|
||||
|
||||
List<NewGrBiSaAggMonthCount> getTotalDetail(SaAggParam saAggParam);
|
||||
|
||||
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggGroupMonthList(Map<String, Object> params, List<String> groupFieldList);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.lideeyunji.core.framework.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
@@ -28,10 +25,10 @@ public interface INewGrBiSaAggService
|
||||
/**
|
||||
* 查询综合销售情况明细列表
|
||||
*
|
||||
* @param params 综合销售情况明细
|
||||
* @param newGrBiSaAgg 综合销售情况明细
|
||||
* @return 综合销售情况明细集合
|
||||
*/
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(Map<String, Object> params);
|
||||
public List<NewGrBiSaAgg> selectNewGrBiSaAggList(NewGrBiSaAgg newGrBiSaAgg);
|
||||
|
||||
/**
|
||||
* 新增综合销售情况明细
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
package com.lideeyunji.core.framework.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
|
||||
/**
|
||||
* 综合销售情况年维度Service接口
|
||||
@@ -62,8 +58,4 @@ public interface INewGrBiSaAggYearCountService
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNewGrBiSaAggYearCountById(Long id);
|
||||
|
||||
List<NewGrBiSaAggYearCount> getTotalDetail(SaAggParam saAggParam);
|
||||
|
||||
public List<NewGrBiSaAggYearCount> selectNewGrBiSaAggGroupYearList(Map<String, Object> params, List<String> groupFieldList);
|
||||
}
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
|
||||
package com.lideeyunji.core.framework.service.impl;
|
||||
|
||||
|
||||
import com.lideeyunji.core.framework.mapper.ByglByfaMapper;
|
||||
import com.lideeyunji.core.framework.service.IByglByfaService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
*保养管理-保养方案
|
||||
*/
|
||||
@Service
|
||||
public class ByglByfaServiceImpl implements IByglByfaService {
|
||||
|
||||
@Autowired
|
||||
private ByglByfaMapper byglByfaMapper;
|
||||
|
||||
@Override
|
||||
public int changeFaState(String id, String state) {
|
||||
int result = byglByfaMapper.changeFaState(id, state);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -35,27 +35,27 @@ public class GrNhServiceImpl extends ServiceImpl<GrNhMapper, GrNhEntity> impleme
|
||||
@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());
|
||||
// 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;
|
||||
}
|
||||
@@ -65,27 +65,27 @@ public class GrNhServiceImpl extends ServiceImpl<GrNhMapper, GrNhEntity> impleme
|
||||
@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());
|
||||
// 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;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
package com.lideeyunji.core.framework.service.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.lideeyunji.core.framework.mapper.NewGrBiSaAggMonthCountMapper;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
@@ -93,15 +87,4 @@ public class NewGrBiSaAggMonthCountServiceImpl extends ServiceImpl<NewGrBiSaAggM
|
||||
{
|
||||
return this.baseMapper.deleteNewGrBiSaAggMonthCountById(id);
|
||||
}
|
||||
|
||||
public List<NewGrBiSaAggMonthCount> getTotalDetail(SaAggParam saAggParam) {
|
||||
return this.baseMapper.getTotalDetail(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggGroupMonthList(Map<String, Object> params, List<String> groupFieldList){
|
||||
SaAggParam saAggParam = NewGrBiSaAggServiceImpl.createParam(params);
|
||||
return this.baseMapper.selectNewGrBiSaAggGroupMonthList(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam,params, groupFieldList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,16 @@
|
||||
package com.lideeyunji.core.framework.service.impl;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
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.core.plugins.IgnoreStrategy;
|
||||
import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lideeyunji.core.framework.entity.GrBiSaAgg;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggMonthCountService;
|
||||
import com.lideeyunji.core.framework.service.INewGrBiSaAggYearCountService;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -135,44 +128,14 @@ public class NewGrBiSaAggServiceImpl extends ServiceImpl<NewGrBiSaAggMapper, New
|
||||
/**
|
||||
* 查询综合销售情况明细列表
|
||||
*
|
||||
* @param params 综合销售情况明细
|
||||
* @param newGrBiSaAgg 综合销售情况明细
|
||||
* @return 综合销售情况明细
|
||||
*/
|
||||
@Override
|
||||
public List<NewGrBiSaAggMonthCount> selectNewGrBiSaAggList(Map<String, Object> params)
|
||||
public List<NewGrBiSaAgg> selectNewGrBiSaAggList(NewGrBiSaAgg newGrBiSaAgg)
|
||||
{
|
||||
SaAggParam saAggParam = createParam(params);
|
||||
return this.baseMapper.selectNewGrBiSaAggList(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam);
|
||||
}
|
||||
|
||||
|
||||
public static SaAggParam createParam(Map<String, Object> params) {
|
||||
SaAggParam saAggParam = new SaAggParam();
|
||||
if (params.containsKey("useYear")) {
|
||||
saAggParam.setUseYear(params.get("useYear").toString());
|
||||
}
|
||||
if (params.containsKey("useMonth")) {
|
||||
saAggParam.setUseMonth(params.get("useMonth").toString());
|
||||
}
|
||||
if (params.containsKey("customName")) {
|
||||
saAggParam.setCustomName(Arrays.asList(params.get("customName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("stdGoodsName")) {
|
||||
saAggParam.setStdGoodsName(Arrays.asList(params.get("stdGoodsName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("zoneName")) {
|
||||
saAggParam.setZoneName(Arrays.asList(params.get("zoneName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("saletypeName")) {
|
||||
saAggParam.setSaleTypeName(Arrays.asList(params.get("saletypeName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("dosageName")) {
|
||||
saAggParam.setDosageName(Arrays.asList(params.get("dosageName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("salerName")) {
|
||||
saAggParam.setSalerName(Arrays.asList(params.get("salerName").toString().split( ",")));
|
||||
}
|
||||
return saAggParam;
|
||||
return this.baseMapper.selectNewGrBiSaAggList(newGrBiSaAgg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
package com.lideeyunji.core.framework.service.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount;
|
||||
import com.lideeyunji.core.framework.params.SaAggParam;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.lideeyunji.core.framework.mapper.NewGrBiSaAggYearCountMapper;
|
||||
import com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount;
|
||||
@@ -93,15 +87,4 @@ public class NewGrBiSaAggYearCountServiceImpl extends ServiceImpl<NewGrBiSaAggYe
|
||||
{
|
||||
return this.baseMapper.deleteNewGrBiSaAggYearCountById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NewGrBiSaAggYearCount> getTotalDetail(SaAggParam saAggParam) {
|
||||
return this.baseMapper.getTotalDetail(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NewGrBiSaAggYearCount> selectNewGrBiSaAggGroupYearList(Map<String, Object> params, List<String> groupFieldList){
|
||||
SaAggParam saAggParam = NewGrBiSaAggServiceImpl.createParam(params);
|
||||
return this.baseMapper.selectNewGrBiSaAggGroupYearList(lideeYunJiBaseConstant.DS_ERP_BI_DATA, saAggParam,params, groupFieldList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<?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.ByglByfaMapper">
|
||||
|
||||
<update id="changeFaState">
|
||||
update by_management_fa set state = #{state} where id = #{id}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -1,50 +0,0 @@
|
||||
<?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.ByglByjhMapper">
|
||||
|
||||
<select id="getCountByPlanId" resultType="java.util.Map">
|
||||
SELECT
|
||||
COUNT(*) AS jhs,
|
||||
COUNT(CASE WHEN order_state = '1' THEN 1 ELSE NULL END) AS wcs
|
||||
FROM
|
||||
by_management_gd
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
AND plan_id = #{plan_id}
|
||||
</select>
|
||||
|
||||
<select id="getPlanByPlanId" resultType="java.util.Map">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
by_management_plan
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
AND plan_id = #{plan_id}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="getOrderByPlanId" resultType="java.util.Map">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
by_management_gd
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
AND order_id = #{order_id}
|
||||
</select>
|
||||
|
||||
<select id="getSchemeBySchemeId" resultType="java.util.Map">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
by_management_fa
|
||||
WHERE
|
||||
is_deleted = 0
|
||||
AND scheme_id = #{scheme_id}
|
||||
</select>
|
||||
|
||||
<update id="updateClBygd">
|
||||
update by_management_gd set bygd_cljg = #{bygd_cljg}, order_state = #{order_state}, upkeep_time = DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') where id = #{id}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -77,9 +77,7 @@
|
||||
FROM
|
||||
system_users s_user
|
||||
where s_user.is_deleted =0
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
</if>
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
<if test="params.nickName!=null and params.nickName!=''">
|
||||
and s_user.nickname like #{params.nickName}
|
||||
</if>
|
||||
@@ -107,9 +105,7 @@
|
||||
system_users s_user
|
||||
INNER JOIN (select user_id from system_user_role where is_deleted = 0 AND role_id = #{roleId} group by user_id) sur ON s_user.id = sur.user_id
|
||||
where s_user.is_deleted =0
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
</if>
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
<if test="params.nickName!=null and params.nickName!=''">
|
||||
and s_user.nickname like #{params.nickName}
|
||||
</if>
|
||||
@@ -159,9 +155,7 @@
|
||||
system_user_dept sud
|
||||
INNER JOIN system_dept sd on sud.dept_id =sd.id
|
||||
where sud.is_deleted=0 and sd.is_deleted=0
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and sd.tenant_id =#{tenantId}
|
||||
</if>
|
||||
and sd.tenant_id =#{tenantId}
|
||||
<if test="deptIdList!=null and deptIdList.size()>0">
|
||||
and sud.dept_id in
|
||||
<foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
|
||||
@@ -28,50 +28,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="thisMonthProfit" column="this_month_profit" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount" id="NewGrBiSaAggMonthCountResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="ny" column="ny" />
|
||||
<result property="useYear" column="use_year" />
|
||||
<result property="useMonth" column="use_month" />
|
||||
<result property="zoneId" column="zone_id" />
|
||||
<result property="zoneName" column="zone_name" />
|
||||
<result property="saleTypeId" column="sale_type_id" />
|
||||
<result property="saleTypeName" column="sale_type_name" />
|
||||
<result property="customId" column="custom_id" />
|
||||
<result property="customName" column="custom_name" />
|
||||
<result property="dosageId" column="dosage_id" />
|
||||
<result property="dosageName" column="dosage_name" />
|
||||
<result property="stdGoodsName" column="std_goods_name" />
|
||||
<result property="provinceId" column="province_id" />
|
||||
<result property="provinceName" column="province_name" />
|
||||
<result property="salerId" column="saler_id" />
|
||||
<result property="salerName" column="saler_name" />
|
||||
<result property="thisMonthSaQty" column="this_month_sa_qty" />
|
||||
<result property="lastMonthSaQty" column="last_month_sa_qty" />
|
||||
<result property="yoyMonthSaQty" column="yoy_month_sa_qty" />
|
||||
<result property="thisMonthSaMoney" column="this_month_sa_money" />
|
||||
<result property="lastMonthSaMoney" column="last_month_sa_money" />
|
||||
<result property="yoyMonthSaMoney" column="yoy_month_sa_money" />
|
||||
<result property="thisMonthProfit" column="this_month_profit" />
|
||||
<result property="lastMonthProfit" column="last_month_profit" />
|
||||
<result property="yoyMonthProfit" column="yoy_month_profit" />
|
||||
<result property="thisMonthCost" column="this_month_cost" />
|
||||
<result property="lastMonthCost" column="last_month_cost" />
|
||||
<result property="yoyMonthCost" column="yoy_month_cost" />
|
||||
<result property="thisMonthProfitRate" column="this_month_profit_rate" />
|
||||
<result property="lastMonthProfitRate" column="last_month_profit_rate" />
|
||||
<result property="lastMonthProfitShare" column="last_month_profit_share" />
|
||||
<result property="thisMonthSaMoneyShare" column="this_month_sa_money_share" />
|
||||
<result property="thisMonthProfitShare" column="this_month_profit_share" />
|
||||
<result property="thisMonthSaMoney_s" column="thissamoney_s" />
|
||||
<result property="thisMonthProfit_s" column="thisprofit_s" />
|
||||
<result property="monthsaqty_yoy" column="monthsaqty_yoy" />
|
||||
<result property="monthsamoney_yoy" column="monthsamoney_yoy" />
|
||||
<result property="lastMonthSaMoney_yoy" column="lastMonthSaMoney_yoy" />
|
||||
<result property="this_month_cost_yoy" column="this_month_cost_yoy" />
|
||||
<result property="monthprofit_yoy" column="monthprofit_yoy" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNewGrBiSaAggVo">
|
||||
select id, use_year, use_month, zone_id, zone_name, sale_type_id, sale_type_name, custom_id, custom_name, dosage_id, dosage_name, goods_id, goods_name, province_id, province_name, saler_id, saler_name, this_month_sa_qty, this_month_sa_money, this_month_cost, this_month_profit from new_gr_bi_sa_agg
|
||||
</sql>
|
||||
@@ -555,149 +511,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
END,
|
||||
this_year_profit_change = ( this_year_profit - last_year_profit);
|
||||
</update>
|
||||
<select id="selectNewGrBiSaAggList" resultMap="NewGrBiSaAggMonthCountResult">
|
||||
SELECT
|
||||
ANY_VALUE (tbl_lgbsa.id) id,
|
||||
tbl_lgbsa.use_year,
|
||||
tbl_lgbsa.use_month,
|
||||
CONCAT(tbl_lgbsa.use_year, LPAD(tbl_lgbsa.use_month, 2, '0')) AS ny,
|
||||
tbl_lgbsa.zone_id,
|
||||
tbl_lgbsa.zone_name,
|
||||
tbl_lgbsa.sale_type_id,
|
||||
tbl_lgbsa.sale_type_name,
|
||||
tbl_lgbsa.custom_id,
|
||||
tbl_lgbsa.custom_name,
|
||||
tbl_lgbsa.dosage_id,
|
||||
tbl_lgbsa.dosage_name,
|
||||
tbl_lgbsa.goods_id,
|
||||
tbl_lgbsa.goods_name,
|
||||
tbl_lgbsa.std_goods_name,
|
||||
tbl_lgbsa.province_id,
|
||||
tbl_lgbsa.province_name,
|
||||
tbl_lgbsa.saler_id,
|
||||
tbl_lgbsa.saler_name,
|
||||
tbl_lgbsa.this_month_sa_qty AS this_month_sa_qty,
|
||||
ROUND(tbl_lgbsa.this_month_sa_money / 10000, 2) AS this_month_sa_money, -- 本月销售金额(元)
|
||||
ROUND(tbl_lgbsa.this_month_cost / 10000, 2) AS this_month_cost,
|
||||
ROUND(tbl_lgbsa.this_month_profit / 10000, 2) AS this_month_profit,
|
||||
tbl_lgbsa.last_month_sa_qty as last_month_sa_qty,
|
||||
ROUND(tbl_lgbsa.last_month_sa_money / 10000, 2) as last_month_sa_money,
|
||||
ROUND(tbl_lgbsa.last_month_profit / 10000, 2) as last_month_profit,
|
||||
ROUND(tbl_lgbsa.last_month_cost / 10000, 2) as last_month_cost,
|
||||
ROUND(tbl_lgbsa.yoy_month_sa_qty/ 10000, 2) as yoy_month_sa_qty,
|
||||
ROUND(tbl_lgbsa.yoy_month_sa_money / 10000, 2) as yoy_month_sa_money,
|
||||
ROUND(tbl_lgbsa.yoy_month_profit / 10000, 2) as yoy_month_profit,
|
||||
ROUND(tbl_lgbsa.yoy_month_cost / 10000, 2) as yoy_month_cost,
|
||||
# CONCAT(ROUND((SELECT SUM(MONTHSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsaqty_s,
|
||||
# CONCAT(ROUND((SELECT SUM(THISSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS thissaqty_s,
|
||||
# CONCAT(ROUND((SELECT SUM(LASTSAQTY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS lastsaqty_s,
|
||||
# -- 原本带CAST的字段,简化写法(CONCAT会自动转为字符串)
|
||||
# CONCAT(ROUND((SELECT SUM(MONTHSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000 ,2), '亿') AS monthsamoney_s,
|
||||
# CONCAT(ROUND((SELECT SUM(THISSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS thissamoney_s,
|
||||
# CONCAT(ROUND((SELECT SUM(LASTSAMONEY) FROM yunji_gr_bi_sa_agg)/100000000,2), '亿') AS lastsamoney_s,
|
||||
CASE
|
||||
WHEN (CASE WHEN tbl_lgbsa.yoy_month_sa_qty = 0 THEN IF(tbl_lgbsa.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_qty - tbl_lgbsa.yoy_month_sa_qty) / tbl_lgbsa.yoy_month_sa_qty * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_sa_qty = 0 THEN IF(tbl_lgbsa.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_qty - tbl_lgbsa.yoy_month_sa_qty) / tbl_lgbsa.yoy_month_sa_qty * 100 END), 2))
|
||||
WHEN (CASE WHEN tbl_lgbsa.yoy_month_sa_qty = 0 THEN IF(tbl_lgbsa.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_qty - tbl_lgbsa.yoy_month_sa_qty) / tbl_lgbsa.yoy_month_sa_qty * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_sa_qty = 0 THEN IF(tbl_lgbsa.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_qty - tbl_lgbsa.yoy_month_sa_qty) / tbl_lgbsa.yoy_month_sa_qty * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS monthsaqty_yoy,
|
||||
|
||||
-- 数量同比(原有)
|
||||
CASE
|
||||
WHEN (CASE WHEN tbl_lgbsa.yoy_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.yoy_month_sa_money) / tbl_lgbsa.yoy_month_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.yoy_month_sa_money) / tbl_lgbsa.yoy_month_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN tbl_lgbsa.yoy_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.yoy_month_sa_money) / tbl_lgbsa.yoy_month_sa_money * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.yoy_month_sa_money) / tbl_lgbsa.yoy_month_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS monthsamoney_yoy,
|
||||
CASE WHEN (CASE WHEN tbl_lgbsa.yoy_month_profit = 0 THEN IF(tbl_lgbsa.yoy_month_profit > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.yoy_month_profit - tbl_lgbsa.yoy_month_profit) / tbl_lgbsa.yoy_month_profit * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_profit = 0 THEN IF(tbl_lgbsa.yoy_month_profit > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.yoy_month_profit - tbl_lgbsa.yoy_month_profit) / tbl_lgbsa.yoy_month_profit * 100 END), 2))
|
||||
WHEN (CASE WHEN tbl_lgbsa.yoy_month_profit = 0 THEN IF(tbl_lgbsa.yoy_month_profit > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.yoy_month_profit - tbl_lgbsa.yoy_month_profit) / tbl_lgbsa.yoy_month_profit * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN tbl_lgbsa.yoy_month_profit = 0 THEN IF(tbl_lgbsa.yoy_month_profit > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.yoy_month_profit - tbl_lgbsa.yoy_month_profit) / tbl_lgbsa.yoy_month_profit * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS monthprofit_yoy,
|
||||
CASE
|
||||
WHEN (CASE WHEN tbl_lgbsa.last_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.last_month_sa_money) / tbl_lgbsa.last_month_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN tbl_lgbsa.last_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.last_month_sa_money) / tbl_lgbsa.last_month_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN tbl_lgbsa.last_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.last_month_sa_money) / tbl_lgbsa.last_month_sa_money * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN tbl_lgbsa.last_month_sa_money = 0 THEN IF(tbl_lgbsa.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (tbl_lgbsa.this_month_sa_money - tbl_lgbsa.last_month_sa_money) / tbl_lgbsa.last_month_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS lastMonthSaMoney_yoy, -- 本月销售金额增长率
|
||||
ROUND(tbl_lgbsa.this_month_profit_rate * 100, 2) AS this_month_sa_money_share,
|
||||
ROUND(tbl_lgbsa.this_month_sa_money_share * 100, 2) AS this_month_profit_share
|
||||
FROM
|
||||
new_gr_bi_sa_agg tbl_lgbsa
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.useMonth != null "> and use_month = #{saAggParam.useMonth}</if>
|
||||
<!--<if test="zoneId != null "> and zone_id = #{zoneId}</if>-->
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!-- <if test="saleTypeId != null "> and sale_type_id = #{saleTypeId}</if>-->
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--<if test="customId != null "> and custom_id = #{customId}</if>-->
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--<if test="dosageId != null "> and dosage_id = #{dosageId}</if>-->
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--<if test="goodsId != null "> and goods_id = #{goodsId}</if>-->
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--<if test="provinceId != null "> and province_id = #{provinceId}</if>-->
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--<if test="salerId != null "> and saler_id = #{salerId}</if>-->
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<select id="selectNewGrBiSaAggList" parameterType="com.lideeyunji.core.framework.entity.NewGrBiSaAgg" resultMap="NewGrBiSaAggResult">
|
||||
<include refid="selectNewGrBiSaAggVo"/>
|
||||
<where>
|
||||
<if test="useYear != null and useYear != ''"> and use_year = #{useYear}</if>
|
||||
<if test="useMonth != null "> and use_month = #{useMonth}</if>
|
||||
<if test="zoneId != null "> and zone_id = #{zoneId}</if>
|
||||
<if test="zoneName != null and zoneName != ''"> and zone_name like concat('%', #{zoneName}, '%')</if>
|
||||
<if test="saleTypeId != null "> and sale_type_id = #{saleTypeId}</if>
|
||||
<if test="saleTypeName != null and saleTypeName != ''"> and sale_type_name like concat('%', #{saleTypeName}, '%')</if>
|
||||
<if test="customId != null "> and custom_id = #{customId}</if>
|
||||
<if test="customName != null and customName != ''"> and custom_name like concat('%', #{customName}, '%')</if>
|
||||
<if test="dosageId != null "> and dosage_id = #{dosageId}</if>
|
||||
<if test="dosageName != null and dosageName != ''"> and dosage_name like concat('%', #{dosageName}, '%')</if>
|
||||
<if test="goodsId != null "> and goods_id = #{goodsId}</if>
|
||||
<if test="goodsName != null and goodsName != ''"> and goods_name like concat('%', #{goodsName}, '%')</if>
|
||||
<if test="provinceId != null "> and province_id = #{provinceId}</if>
|
||||
<if test="provinceName != null and provinceName != ''"> and province_name like concat('%', #{provinceName}, '%')</if>
|
||||
<if test="salerId != null "> and saler_id = #{salerId}</if>
|
||||
<if test="salerName != null and salerName != ''"> and saler_name like concat('%', #{salerName}, '%')</if>
|
||||
<if test="thisMonthSaQty != null "> and this_month_sa_qty = #{thisMonthSaQty}</if>
|
||||
<if test="thisMonthSaMoney != null "> and this_month_sa_money = #{thisMonthSaMoney}</if>
|
||||
<if test="thisMonthCost != null "> and this_month_cost = #{thisMonthCost}</if>
|
||||
<if test="thisMonthProfit != null "> and this_month_profit = #{thisMonthProfit}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectNewGrBiSaAggById" parameterType="Long" resultMap="NewGrBiSaAggResult">
|
||||
<include refid="selectNewGrBiSaAggVo"/>
|
||||
where id = #{id}
|
||||
|
||||
@@ -6,7 +6,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<resultMap type="com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount" id="NewGrBiSaAggMonthCountResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="ny" column="ny" />
|
||||
<result property="useYear" column="use_year" />
|
||||
<result property="useMonth" column="use_month" />
|
||||
<result property="zoneId" column="zone_id" />
|
||||
@@ -39,48 +38,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="lastMonthProfitShare" column="last_month_profit_share" />
|
||||
<result property="thisMonthSaMoneyShare" column="this_month_sa_money_share" />
|
||||
<result property="thisMonthProfitShare" column="this_month_profit_share" />
|
||||
<result property="thisMonthSaMoney_s" column="thissamoney_s" />
|
||||
<result property="thisMonthProfit_s" column="thisprofit_s" />
|
||||
<result property="monthsaqty_yoy" column="monthsaqty_yoy" />
|
||||
<result property="monthsamoney_yoy" column="monthsamoney_yoy" />
|
||||
<result property="lastMonthSaMoney_yoy" column="lastMonthSaMoney_yoy" />
|
||||
<result property="this_month_cost_yoy" column="this_month_cost_yoy" />
|
||||
<result property="monthprofit_yoy" column="monthprofit_yoy" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNewGrBiSaAggMonthCountVo">
|
||||
select id, use_year, use_month, zone_id, zone_name, sale_type_id, sale_type_name, custom_id, custom_name, dosage_id, dosage_name, goods_id, std_goods_name, province_id, province_name, saler_id, saler_name, this_month_sa_qty, last_month_sa_qty, yoy_month_sa_qty, this_month_sa_money, last_month_sa_money, yoy_month_sa_money, this_month_profit, last_month_profit, yoy_month_profit, this_month_cost, last_month_cost, yoy_month_cost, this_month_profit_rate, last_month_profit_rate, last_month_profit_share, this_month_sa_money_share, this_month_profit_share from new_gr_bi_sa_agg_month_count
|
||||
</sql>
|
||||
|
||||
<select id="getTotalDetail" parameterType="com.lideeyunji.core.framework.params.SaAggParam" resultMap="NewGrBiSaAggMonthCountResult">
|
||||
SELECT
|
||||
ROUND(SUM(this_month_sa_money) / 10000, 2) AS thissamoney_s,
|
||||
ROUND(SUM(this_month_profit) / 10000, 2) AS thisprofit_s
|
||||
FROM new_gr_bi_sa_agg_month_count
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.useMonth != null and saAggParam.useMonth != ''"> and use_month = #{saAggParam.useMonth}</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != '' "> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != '' "> and std_goods_name in
|
||||
<foreach item="field" collection="saAggParam.stdGoodsName" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectNewGrBiSaAggMonthCountList" parameterType="com.lideeyunji.core.framework.entity.NewGrBiSaAggMonthCount" resultMap="NewGrBiSaAggMonthCountResult">
|
||||
<include refid="selectNewGrBiSaAggMonthCountVo"/>
|
||||
<where>
|
||||
@@ -245,483 +208,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectNewGrBiSaAggGroupMonthList" resultMap="NewGrBiSaAggMonthCountResult">
|
||||
select
|
||||
<if test="groupFieldList.contains('useMonth') || params.containsKey('useMonth')">
|
||||
current_month.use_month ,
|
||||
<choose>
|
||||
<when test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
current_month.use_year,
|
||||
current_month.ny as ny,
|
||||
</when>
|
||||
<otherwise>
|
||||
LPAD(current_month.use_month, 2, '0') as ny,
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
current_month.custom_id,
|
||||
current_month.custom_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
current_month.zone_id,
|
||||
current_month.zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
current_month.sale_type_id,
|
||||
current_month.sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
current_month.saler_id,
|
||||
current_month.saler_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
current_month.dosage_id,
|
||||
current_month.dosage_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
current_month.std_goods_name,
|
||||
</if>
|
||||
current_month.this_month_sa_qty AS this_month_sa_qty,
|
||||
ROUND(current_month.this_month_sa_money / 10000, 2) AS this_month_sa_money,
|
||||
ROUND(current_month.this_month_profit / 10000, 2) AS this_month_profit,
|
||||
ROUND(current_month.this_month_cost / 10000, 2) AS this_month_cost,
|
||||
last_month_data.last_month_sa_qty AS last_month_sa_qty,
|
||||
ROUND(last_month_data.last_month_sa_money / 10000, 2) AS last_month_sa_money,
|
||||
ROUND(last_month_data.last_month_profit / 10000, 2) AS last_month_profit,
|
||||
ROUND(last_month_data.last_month_cost / 10000, 2) AS last_month_cost,
|
||||
ROUND(yoy_month.yoy_month_sa_qty / 10000, 2) AS yoy_month_sa_qty,
|
||||
ROUND(yoy_month.yoy_month_sa_money / 10000, 2) AS yoy_month_sa_money,
|
||||
ROUND(yoy_month.yoy_month_profit / 10000, 2) AS yoy_month_profit,
|
||||
ROUND(yoy_month.yoy_month_cost / 10000, 2) AS yoy_month_cost,
|
||||
CASE WHEN (CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END), 2))
|
||||
WHEN (CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_qty = 0 THEN IF(current_month.this_month_sa_qty > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_qty - yoy_month.yoy_month_sa_qty) / yoy_month.yoy_month_sa_qty * 100 END), 2))
|
||||
END AS monthsaqty_yoy,
|
||||
|
||||
CASE WHEN (CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - yoy_month.yoy_month_sa_money) / yoy_month.yoy_month_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS monthsamoney_yoy,
|
||||
|
||||
CASE WHEN (CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN last_month_data.last_month_sa_money = 0 THEN IF(current_month.this_month_sa_money > 0, 100, 0)
|
||||
ELSE (current_month.this_month_sa_money - last_month_data.last_month_sa_money) / last_month_data.last_month_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS lastMonthSaMoney_yoy,
|
||||
|
||||
CASE WHEN (CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0)
|
||||
ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0)
|
||||
ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END), 2))
|
||||
WHEN (CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0)
|
||||
ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_cost = 0 THEN IF(current_month.this_month_cost > 0, 100, 0)
|
||||
ELSE (current_month.this_month_cost - yoy_month.yoy_month_cost) / yoy_month.yoy_month_cost * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS this_month_cost_yoy,
|
||||
|
||||
CASE WHEN (CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0)
|
||||
ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0)
|
||||
ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END), 2))
|
||||
WHEN (CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0)
|
||||
ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END)<0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN yoy_month.yoy_month_profit = 0 THEN IF(current_month.this_month_profit > 0, 100, 0)
|
||||
ELSE (current_month.this_month_profit - yoy_month.yoy_month_profit) / yoy_month.yoy_month_profit * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS monthprofit_yoy,
|
||||
|
||||
COALESCE (ROUND( current_month.this_month_sa_money/total_month_data.this_month_sa_money_sum * 100, 2), 0 ) as this_month_sa_money_share,
|
||||
COALESCE (ROUND( current_month.this_month_profit/total_month_data.this_month_profit_sum * 100, 2), 0 ) as this_month_profit_share
|
||||
FROM ( SELECT
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
custom_name ,
|
||||
</if>
|
||||
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
dosage_name,
|
||||
</if>
|
||||
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
saler_name,
|
||||
</if>
|
||||
CONCAT(MAX(use_year), LPAD(MAX(use_month), 2, '0')) AS ny,
|
||||
sum(this_month_sa_qty) AS this_month_sa_qty,
|
||||
sum(this_month_sa_money) AS this_month_sa_money,
|
||||
sum(this_month_cost) AS this_month_cost,
|
||||
sum(this_month_profit) AS this_month_profit
|
||||
FROM
|
||||
new_gr_bi_sa_agg_month_count
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.useMonth != null "> and use_month = #{saAggParam.useMonth}</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
<trim suffixOverrides=",">
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
custom_name ,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
dosage_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
saler_name,
|
||||
</if>
|
||||
</trim>
|
||||
) AS current_month
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
SUM(this_month_sa_qty) AS last_month_sa_qty,
|
||||
SUM(this_month_sa_money) AS last_month_sa_money,
|
||||
SUM(this_month_cost) AS last_month_cost,
|
||||
SUM(this_month_profit) AS last_month_profit
|
||||
FROM new_gr_bi_sa_agg_month_count
|
||||
GROUP BY
|
||||
<trim suffixOverrides=",">
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
</trim>
|
||||
) AS last_month_data
|
||||
ON last_month_data.use_month = IF(current_month.use_month = 1, 12, current_month.use_month - 1)
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
AND last_month_data.use_year = current_month.use_year - (current_month.use_month = 1)
|
||||
</if>
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
AND current_month.custom_id = last_month_data.custom_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
AND current_month.std_goods_name = last_month_data.std_goods_name
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
AND current_month.zone_id = last_month_data.zone_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
AND current_month.sale_type_id = last_month_data.sale_type_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
AND current_month.dosage_id = last_month_data.dosage_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
AND current_month.saler_id = last_month_data.saler_id
|
||||
</if>
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
SUM(this_month_sa_qty) AS yoy_month_sa_qty,
|
||||
SUM(this_month_sa_money) AS yoy_month_sa_money,
|
||||
SUM(this_month_cost) as yoy_month_cost,
|
||||
SUM(this_month_profit) AS yoy_month_profit
|
||||
FROM new_gr_bi_sa_agg_month_count
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear }- 1</if>
|
||||
<if test="saAggParam.useMonth != null "> and use_month = #{saAggParam.useMonth}</if>
|
||||
<if test="saAggParam.zoneName != null and zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
<trim suffixOverrides=",">
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
use_year,
|
||||
</if>
|
||||
use_month,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
</trim>
|
||||
) yoy_month ON
|
||||
<trim prefixOverrides="and">
|
||||
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
and yoy_month.use_year = current_month.use_year - 1
|
||||
</if>
|
||||
and yoy_month.use_month = current_month.use_month
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
AND yoy_month.custom_id = current_month.custom_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
AND yoy_month.std_goods_name = current_month.std_goods_name
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
AND yoy_month.zone_id = current_month.zone_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
AND yoy_month.sale_type_id = current_month.sale_type_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
AND yoy_month.dosage_id = current_month.dosage_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
AND yoy_month.saler_id = current_month.saler_id
|
||||
</if>
|
||||
</trim>
|
||||
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
use_year,
|
||||
SUM( this_month_sa_money ) AS this_month_sa_money_sum,
|
||||
SUM(this_month_profit) AS this_month_profit_sum
|
||||
FROM new_gr_bi_sa_agg
|
||||
GROUP BY
|
||||
use_year
|
||||
) total_month_data ON total_month_data.use_year = current_month.use_year
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and current_month.use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.useMonth != null "> and current_month.use_month = #{saAggParam.useMonth}</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and current_month.zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and current_month.sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and current_month.custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and current_month.dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and current_month.goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and current_month.province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and current_month.saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and current_month.std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -7,7 +7,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<resultMap type="com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount" id="NewGrBiSaAggYearCountResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="useYear" column="use_year" />
|
||||
<result property="ny" column="ny" />
|
||||
<result property="zoneId" column="zone_id" />
|
||||
<result property="zoneName" column="zone_name" />
|
||||
<result property="saleTypeId" column="sale_type_id" />
|
||||
@@ -38,46 +37,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="thisYearSaMoneyGrowth" column="this_year_sa_money_growth" />
|
||||
<result property="thisYearProfitGrowth" column="this_year_profit_growth" />
|
||||
<result property="thisYearProfitChange" column="this_year_profit_change" />
|
||||
<result property="thissamoney_s" column="this_year_sa_money_s" />
|
||||
<result property="thisprofit_s" column="this_year_profit_s" />
|
||||
<result property="saqty_yoy" column="saqty_yoy" />
|
||||
<result property="samoney_yoy" column="samoney_yoy" />
|
||||
<result property="profit_yoy" column="profit_yoy" />
|
||||
<result property="thisprofitshare" column="thisprofitshare" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNewGrBiSaAggYearCountVo">
|
||||
select id, use_year, zone_id, zone_name, sale_type_id, sale_type_name, custom_id, custom_name, dosage_id, dosage_name, std_goods_name, province_id, province_name, saler_id, saler_name, this_year_sa_qty, last_year_sa_qty, this_year_sa_money, last_year_sa_money, this_year_profit, last_year_profit, this_year_cost, last_year_cost, this_year_profit_rate, last_year_profit_rate, this_year_profit_share, last_year_profit_share, this_year_sa_money_share, last_year_sa_money_share, this_year_sa_money_growth, this_year_profit_growth, this_year_profit_change from new_gr_bi_sa_agg_year_count
|
||||
</sql>
|
||||
|
||||
<select id="getTotalDetail" parameterType="com.lideeyunji.core.framework.params.SaAggParam" resultMap="NewGrBiSaAggYearCountResult">
|
||||
SELECT
|
||||
ROUND(SUM(this_year_sa_money) / 10000, 2) AS this_year_sa_money_s,
|
||||
ROUND(SUM(this_year_profit) / 10000, 2) AS this_year_profit_s
|
||||
FROM new_gr_bi_sa_agg_year_count
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != '' "> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != '' "> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="field" separator="," open="(" close=")">#{field}</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectNewGrBiSaAggYearCountList" parameterType="com.lideeyunji.core.framework.entity.NewGrBiSaAggYearCount" resultMap="NewGrBiSaAggYearCountResult">
|
||||
<include refid="selectNewGrBiSaAggYearCountVo"/>
|
||||
<where>
|
||||
@@ -239,315 +204,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectNewGrBiSaAggGroupYearList" resultMap="NewGrBiSaAggYearCountResult">
|
||||
SELECT
|
||||
current_year_data.use_year,
|
||||
<if test="groupFieldList.contains('useYear') || params.containsKey('useYear')">
|
||||
current_year_data.ny as ny,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
current_year_data.custom_id,
|
||||
current_year_data.custom_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
current_year_data.zone_id,
|
||||
current_year_data.zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
current_year_data.sale_type_id,
|
||||
current_year_data.sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
current_year_data.saler_id,
|
||||
current_year_data.saler_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
current_year_data.dosage_id,
|
||||
current_year_data.dosage_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
current_year_data.std_goods_name,
|
||||
</if>
|
||||
|
||||
current_year_data.this_year_sa_qty AS this_year_sa_qty,
|
||||
ROUND(current_year_data.this_year_sa_money / 10000, 2) AS this_year_sa_money,
|
||||
ROUND(current_year_data.this_year_profit / 10000, 2) AS this_year_profit,
|
||||
ROUND(current_year_data.this_year_cost / 10000, 2) AS this_year_cost,
|
||||
last_year_data.last_year_sa_qty AS last_year_sa_qty,
|
||||
ROUND(last_year_data.last_year_sa_money / 10000, 2) AS last_year_sa_money,
|
||||
ROUND(last_year_data.last_year_profit / 10000, 2) AS last_year_profit,
|
||||
ROUND(last_year_data.last_year_cost / 10000, 2) AS last_year_cost,
|
||||
|
||||
COALESCE(ROUND(current_year_data.this_year_sa_money / total_year_data.this_year_sa_money_sum * 100, 2), 0) AS this_year_sa_money_share,
|
||||
COALESCE (ROUND(current_year_data.this_year_profit/total_year_data.this_year_profit_sum * 100, 2), 0 ) as thisprofitshare,
|
||||
CASE
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END), 2))
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END) < 0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_qty = 0 THEN IF(current_year_data.this_year_sa_qty > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_qty - last_year_data.last_year_sa_qty) / last_year_data.last_year_sa_qty * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS saqty_yoy,
|
||||
CASE
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) < 0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS samoney_yoy,
|
||||
CASE
|
||||
WHEN (CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END), 2))
|
||||
WHEN (CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END) < 0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_profit = 0 THEN IF(current_year_data.this_year_profit > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_profit - last_year_data.last_year_profit) / last_year_data.last_year_profit * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS profit_yoy,
|
||||
CASE
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) > 0 THEN
|
||||
CONCAT('🟢 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2))
|
||||
WHEN (CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END) < 0 THEN
|
||||
CONCAT('🔴 ', ROUND((CASE WHEN last_year_data.last_year_sa_money = 0 THEN IF(current_year_data.this_year_sa_money > 0, 100, 0)
|
||||
ELSE (current_year_data.this_year_sa_money - last_year_data.last_year_sa_money) / last_year_data.last_year_sa_money * 100 END), 2))
|
||||
ELSE '0.00'
|
||||
END AS this_year_sa_money_growth
|
||||
FROM
|
||||
(SELECT use_year ,
|
||||
use_year AS ny,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
custom_name ,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
dosage_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
saler_name,
|
||||
</if>
|
||||
GROUP_CONCAT(DISTINCT province_id ORDER BY province_id SEPARATOR ',') AS province_id,
|
||||
GROUP_CONCAT(DISTINCT province_name ORDER BY province_name SEPARATOR ',') AS province_name,
|
||||
sum(this_year_sa_qty) AS this_year_sa_qty,
|
||||
sum(this_year_sa_money) AS this_year_sa_money,
|
||||
sum(this_year_cost) AS this_year_cost,
|
||||
sum(this_year_profit) AS this_year_profit
|
||||
FROM new_gr_bi_sa_agg_year_count
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear}</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
<trim suffixOverrides=",">
|
||||
use_year,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
custom_name ,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
zone_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
sale_type_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
dosage_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
saler_name,
|
||||
</if>
|
||||
</trim>
|
||||
|
||||
) as current_year_data
|
||||
LEFT JOIN (SELECT use_year,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
SUM(this_year_sa_qty) AS last_year_sa_qty,
|
||||
SUM(this_year_sa_money) AS last_year_sa_money,
|
||||
SUM(this_year_cost) AS last_year_cost,
|
||||
SUM(this_year_profit) AS last_year_profit
|
||||
FROM new_gr_bi_sa_agg_year_count
|
||||
|
||||
<where>
|
||||
<if test="saAggParam.useYear != null and saAggParam.useYear != ''"> and use_year = #{saAggParam.useYear} -1</if>
|
||||
<if test="saAggParam.zoneName != null and saAggParam.zoneName != ''"> and zone_name in
|
||||
<foreach collection="saAggParam.zoneName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.saleTypeName != null and saAggParam.saleTypeName != ''"> and sale_type_name in
|
||||
<foreach collection="saAggParam.saleTypeName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.customName != null and saAggParam.customName != ''"> and custom_name in
|
||||
<foreach collection="saAggParam.customName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.dosageName != null and saAggParam.dosageName != ''"> and dosage_name in
|
||||
<foreach collection="saAggParam.dosageName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.goodsName != null and saAggParam.goodsName != ''"> and goods_name in
|
||||
<foreach collection="saAggParam.goodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.provinceName != null and saAggParam.provinceName != ''"> and province_name in
|
||||
<foreach collection="saAggParam.provinceName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="saAggParam.salerName != null and saAggParam.salerName != ''"> and saler_name in
|
||||
<foreach collection="saAggParam.salerName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="saAggParam.stdGoodsName != null and saAggParam.stdGoodsName != ''"> and std_goods_name in
|
||||
<foreach collection="saAggParam.stdGoodsName" item="name" open="(" separator="," close=")">
|
||||
#{name}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY
|
||||
<trim suffixOverrides=",">
|
||||
use_year,
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
custom_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
std_goods_name,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
zone_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
sale_type_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
dosage_id,
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
saler_id,
|
||||
</if>
|
||||
</trim>
|
||||
|
||||
) AS last_year_data
|
||||
ON last_year_data.use_year = current_year_data.use_year - 1
|
||||
<if test="groupFieldList.contains('customName') || params.containsKey('customName')">
|
||||
AND current_year_data.custom_id = last_year_data.custom_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('stdGoodsName') || params.containsKey('stdGoodsName')">
|
||||
AND current_year_data.std_goods_name = last_year_data.std_goods_name
|
||||
</if>
|
||||
<if test="groupFieldList.contains('zoneName') || params.containsKey('zoneName')">
|
||||
AND current_year_data.zone_id = last_year_data.zone_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('saleTypeName') || params.containsKey('saleTypeName')">
|
||||
AND current_year_data.sale_type_id = last_year_data.sale_type_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('dosageName') || params.containsKey('dosageName')">
|
||||
AND current_year_data.dosage_id = last_year_data.dosage_id
|
||||
</if>
|
||||
<if test="groupFieldList.contains('salerName') || params.containsKey('salerName')">
|
||||
AND current_year_data.saler_id = last_year_data.saler_id
|
||||
</if>
|
||||
LEFT JOIN (SELECT use_year,
|
||||
SUM(this_year_sa_money) AS this_year_sa_money_sum,
|
||||
SUM(this_year_profit) AS this_year_profit_sum
|
||||
FROM new_gr_bi_sa_agg_year_count
|
||||
GROUP BY use_year) as total_year_data
|
||||
ON total_year_data.use_year = current_year_data.use_year
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -1,30 +0,0 @@
|
||||
|
||||
package com.lideeyunji.tool.framework.common.constant;
|
||||
|
||||
/**
|
||||
* 保养管理
|
||||
*/
|
||||
public interface ByglConstant {
|
||||
|
||||
/**进行中*/
|
||||
String JH_STATE_JXZ = "0";
|
||||
/**已完成*/
|
||||
String JH_STATE_YWC = "1";
|
||||
|
||||
/**待开始*/
|
||||
String GD_STATE_DKS = "0";
|
||||
/**已完成*/
|
||||
String BY_STATE_YWC = "1";
|
||||
|
||||
/**方案停用*/
|
||||
String FA_STATE_TY = "0";
|
||||
/**方案启用*/
|
||||
String FA_STATE_QY = "1";
|
||||
|
||||
/**待验收*/
|
||||
String YSZT_STATE_DYS = "0";
|
||||
/**已验收*/
|
||||
String YSZT_STATE_YYS = "1";
|
||||
|
||||
|
||||
}
|
||||
1232
sql/gzgl.sql
1232
sql/gzgl.sql
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user