Compare commits
11 Commits
8d59bd9dd9
...
dev_js_202
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94bef88b74 | ||
|
|
68717ae34f | ||
|
|
27b8892c06 | ||
|
|
2731903d46 | ||
|
|
cadd79f47d | ||
|
|
495c1bdfa4 | ||
|
|
4d91edae40 | ||
|
|
43c0959060 | ||
|
|
77f434ddaa | ||
|
|
1116444f09 | ||
|
|
aa4e6ad673 |
@@ -0,0 +1,39 @@
|
||||
|
||||
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("成功");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -80,6 +80,18 @@ public class DbFormEnhanceController extends BaseController {
|
||||
return BaseWebResult.success("成功");
|
||||
}
|
||||
|
||||
//处理增强
|
||||
@PreAuthorize("@ss.hasPermission('lideeyunji:java')")
|
||||
@PutMapping("/java/handle")
|
||||
@ApiOperationSupport(order = 3)
|
||||
@Operation(tags = "JAVA增强",summary = "处理操作")
|
||||
public BaseWebResult javaHandle(@RequestBody EnhanceJavaEntity model) {
|
||||
javaService.handleEnhanceJava(model);
|
||||
return BaseWebResult.success("成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasPermission('lideeyunji:java')")
|
||||
@DeleteMapping("/java/delete")
|
||||
@ApiOperationSupport(order = 4)
|
||||
|
||||
@@ -16,6 +16,7 @@ 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.*;
|
||||
|
||||
/**
|
||||
@@ -44,13 +45,15 @@ public class NewGrBiSaAggMonthCountController extends BaseController
|
||||
public BaseWebResult getTotalDetail(HttpServletRequest req)
|
||||
{
|
||||
Map<String, Object> params = FuncWeb.getParameterBodyMap(req);
|
||||
String groupField = params.containsKey("Group by") ? "usemonth" :params.get("Group by").toString();
|
||||
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(",")));
|
||||
@@ -71,7 +74,7 @@ public class NewGrBiSaAggMonthCountController extends BaseController
|
||||
if (params.containsKey("stdGoodsName")){
|
||||
saAggParam.setStdGoodsName(Arrays.asList(params.get("stdGoodsName").toString().split( ",")));
|
||||
}
|
||||
if (params.containsKey("usemonth")){
|
||||
if (params.containsKey("usemonth") || groupField.contains("usemonth")){
|
||||
List<NewGrBiSaAggMonthCount> list = newGrBiSaAggMonthCountService.getTotalDetail(saAggParam);
|
||||
return BaseWebResult.success(list);
|
||||
}else{
|
||||
|
||||
@@ -3,10 +3,13 @@ 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;
|
||||
|
||||
@@ -22,8 +25,14 @@ 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"))){
|
||||
sql = geroupMonthSql(params, groupFieldList);
|
||||
}else {
|
||||
@@ -56,102 +65,194 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_year_data.std_goods_name as stdGoodsName, \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.province_id as province_id, \n"); //行政区域ID
|
||||
executePluginSql.append(" current_year_data.province_name as province_name, \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(" 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(" 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(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(" 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(" -- 数量同比(原有) \n");
|
||||
executePluginSql.append(" CASE \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(" 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(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS saqty_yoy, \n"); //数量同比
|
||||
executePluginSql.append(" -- 销售金额同比(原有新增) \n");
|
||||
executePluginSql.append(" CASE \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(" 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(" 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 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(" 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(" -- 负数:绿色圆点emoji + 数值 + % \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(" 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(" -- 0值:直接显示 \n");
|
||||
executePluginSql.append(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS profit_yoy, \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(" 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(" ELSE '0.00' \n");
|
||||
executePluginSql.append(" END AS samoneygrowth \n"); //本年销售金额增长率
|
||||
executePluginSql.append(" FROM \n");
|
||||
executePluginSql.append(" new_gr_bi_sa_agg_year_count as current_year_data \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(" LEFT JOIN (SELECT 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, \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_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");
|
||||
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");
|
||||
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(" 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");
|
||||
@@ -159,38 +260,38 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
||||
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);
|
||||
@@ -202,19 +303,19 @@ 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("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"); //年月
|
||||
executePluginSql.append(" current_month.ny, \n"); //年月
|
||||
}else{
|
||||
executePluginSql.append(" MAX(LPAD(current_month.use_month, 2, '0')) as ny, \n");
|
||||
executePluginSql.append(" 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")) { //业务区域
|
||||
executePluginSql.append(" current_month.zone_id, \n");
|
||||
executePluginSql.append(" current_month.zone_name as zonename, \n");
|
||||
@@ -234,201 +335,349 @@ public class zhxsqkLineReportEnhance implements ReportBeforeAdvicePlugin {
|
||||
if (groupFieldList.contains("stdGoodsName") || params.containsKey("stdGoodsName")) { //标准品名
|
||||
executePluginSql.append(" current_month.std_goods_name as stdGoodsName, \n");
|
||||
}
|
||||
executePluginSql.append(" SUM(current_month.this_month_sa_qty) as thisMonthSaQty, \n"); //本月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_sa_money) / 10000, 2) as thisMonthSaMoney, \n"); //本月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_profit) / 10000, 2) as thisMonthProfit, \n"); //本月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(current_month.this_month_cost) / 10000, 2) as thisMonthCost, \n"); //本月成本(元)
|
||||
|
||||
executePluginSql.append(" SUM(last_month_data.last_month_sa_qty) as lastMonthSaQty, \n"); //上月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_sa_money) / 10000, 2) as lastMonthSaMoney, \n"); //上月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_profit) / 10000, 2) as lastMonthProfit, \n"); //上月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(last_month_data.last_month_cost) / 10000, 2) as lastMonthCost, \n"); //上月成本(元)
|
||||
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_sa_qty)/ 10000, 2) as yoyMonthSaQty, \n"); //同比月销售数量(件)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_sa_money) / 10000, 2) as yoyMonthSaMoney, \n"); //同比月销售金额(元)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_profit) / 10000, 2) as yoyMonthProfit, \n"); //同比月毛利额(元)
|
||||
executePluginSql.append(" ROUND(SUM(yoy_month.yoy_month_cost) / 10000, 2) as yoyMonthCost, \n"); //同比月成本(元)
|
||||
|
||||
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(" 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(" END AS monthsaqty_yoy,\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(" 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(" END AS monthsamoney_yoy, \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(" 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(" END AS lastMonthSaMoney_yoy, \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(" 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(" END AS this_month_cost_yoy, \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(" 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(" END AS monthprofit_yoy, \n"); //本月毛利同比
|
||||
|
||||
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(" 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(" LEFT JOIN (SELECT \n");
|
||||
executePluginSql.append(" 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(" 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");
|
||||
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");
|
||||
// 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(" 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");
|
||||
// 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(" 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")){
|
||||
// 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");
|
||||
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"); // 同比月数据
|
||||
executePluginSql.append(" AND yoy_month.use_month = current_month.use_month \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");
|
||||
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(" 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, use_month\n");
|
||||
executePluginSql.append(" use_year\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");
|
||||
// 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("')");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
package com.lideeyunji.core.framework.mapper;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.Master;
|
||||
|
||||
/**
|
||||
*保养管理-保养方案
|
||||
*/
|
||||
@Master
|
||||
public interface ByglByfaMapper {
|
||||
|
||||
int changeFaState(String id, String state);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
package com.lideeyunji.core.framework.service;
|
||||
|
||||
/**
|
||||
* 保养管理-保养方案
|
||||
*/
|
||||
public interface IByglByfaService {
|
||||
|
||||
int changeFaState(String id, String state);
|
||||
}
|
||||
@@ -27,4 +27,6 @@ public interface IEnhanceJavaService extends IService<EnhanceJavaEntity> {
|
||||
|
||||
//批量删除
|
||||
void removeByIds(List<Long> ids);
|
||||
//处理操作
|
||||
void handleEnhanceJava(EnhanceJavaEntity model);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,12 @@ public class EnhanceJavaServiceImpl extends ServiceImpl<EnhanceJavaMapper, Enhan
|
||||
|
||||
this.saveHistoryLog(enhanceJavaEntity.getId(),enhanceJavaEntity);
|
||||
}
|
||||
|
||||
@DSTransactional(rollbackFor = Exception.class)
|
||||
@lideeYunjiCache(cacheNames = lideeRedisConstants.REDIS_DBFORM +":*",delCache = true)
|
||||
@Override
|
||||
public void handleEnhanceJava(EnhanceJavaEntity enhanceJavaEntity) {
|
||||
this.updateById(enhanceJavaEntity);
|
||||
}
|
||||
|
||||
@DS(lideeYunJiBaseConstant.DS_lideeyunji)
|
||||
@Override
|
||||
@@ -159,4 +164,6 @@ public class EnhanceJavaServiceImpl extends ServiceImpl<EnhanceJavaMapper, Enhan
|
||||
baseMapper.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?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>
|
||||
@@ -77,7 +77,9 @@
|
||||
FROM
|
||||
system_users s_user
|
||||
where s_user.is_deleted =0
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
</if>
|
||||
<if test="params.nickName!=null and params.nickName!=''">
|
||||
and s_user.nickname like #{params.nickName}
|
||||
</if>
|
||||
@@ -105,7 +107,9 @@
|
||||
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
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and s_user.tenant_id =#{tenantId}
|
||||
</if>
|
||||
<if test="params.nickName!=null and params.nickName!=''">
|
||||
and s_user.nickname like #{params.nickName}
|
||||
</if>
|
||||
@@ -155,7 +159,9 @@
|
||||
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
|
||||
and sd.tenant_id =#{tenantId}
|
||||
<if test="tenantId!=null and tenantId!=''">
|
||||
and sd.tenant_id =#{tenantId}
|
||||
</if>
|
||||
<if test="deptIdList!=null and deptIdList.size()>0">
|
||||
and sud.dept_id in
|
||||
<foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
|
||||
|
||||
@@ -48,8 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="getTotalDetail" parameterType="com.lideeyunji.core.framework.params.SaAggParam" resultMap="NewGrBiSaAggMonthCountResult">
|
||||
SELECT
|
||||
SUM( this_month_sa_money ) AS thissamoney_s,
|
||||
SUM( this_month_profit ) AS thisprofit_s
|
||||
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>
|
||||
|
||||
@@ -47,8 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="getTotalDetail" parameterType="com.lideeyunji.core.framework.params.SaAggParam" resultMap="NewGrBiSaAggYearCountResult">
|
||||
SELECT
|
||||
SUM( this_year_sa_money ) AS this_year_sa_money_s,
|
||||
SUM( this_year_profit ) AS this_year_profit_s
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.service.DevGzbxService;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import com.lideeyunji.tool.framework.common.pojo.CommonResult;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import static com.lideeyunji.tool.framework.common.pojo.CommonResult.success;
|
||||
|
||||
/**
|
||||
* @author DX
|
||||
* @create 2026-03-3 11:59
|
||||
* @dedescription:
|
||||
*/
|
||||
@Tag(name = "设备故障维修")
|
||||
@RestController
|
||||
@Validated
|
||||
@RequestMapping(lideeYunJiBaseConstant.REQUEST_URL_START +"/gzbx")
|
||||
public class DevGzbxController {
|
||||
|
||||
@Resource
|
||||
private DevGzbxService devGzbxService;
|
||||
|
||||
@PutMapping("/updateStatus")
|
||||
@Operation(tags = "故障报修",summary = "故障报修状态修改")
|
||||
public CommonResult<Boolean> updateConfig(@Valid @RequestBody DevGzbxDO devGzbxDO) {
|
||||
devGzbxService.updateDevgGzbx(devGzbxDO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevArchivesEntity;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.service.EquipmentArchivesService;
|
||||
import com.lideeyunji.module.biz.vo.DevArchivesVo;
|
||||
import com.lideeyunji.tool.framework.common.constant.lideeYunJiBaseConstant;
|
||||
import com.lideeyunji.tool.framework.common.pojo.CommonResult;
|
||||
import com.lideeyunji.tool.framework.sql.core.toolkit.CollectionUtils;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.mapstruct.ap.internal.util.Collections;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static com.lideeyunji.tool.framework.common.pojo.CommonResult.success;
|
||||
|
||||
/**
|
||||
* @author DX
|
||||
* @create 2026-03-3 11:59
|
||||
* @dedescription:
|
||||
*/
|
||||
@Tag(name = "设备档案控制器")
|
||||
@RestController
|
||||
@Validated
|
||||
@RequestMapping(lideeYunJiBaseConstant.REQUEST_URL_START +"/dev")
|
||||
public class EquipmentArchivesController {
|
||||
|
||||
@Resource
|
||||
private EquipmentArchivesService equipmentArchivesService;
|
||||
|
||||
|
||||
@GetMapping("/selectByType/{devType}")
|
||||
@Operation(summary = "根据设备类型获取设备档案")
|
||||
public CommonResult<List<DevArchivesEntity>> getByDeviceType(@Valid @PathVariable("devType") String devType) {
|
||||
List<DevArchivesEntity> devArchives = equipmentArchivesService.selectByType(devType);
|
||||
if (CollectionUtils.isEmpty(devArchives)) {
|
||||
return CommonResult.error(400,"未找到对应设备类型的档案");
|
||||
}
|
||||
return success(devArchives);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.module.biz.entity.*;
|
||||
import com.lideeyunji.module.biz.mapper.*;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.AcceptanceStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.ProcessingStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 设备报修-环绕
|
||||
*/
|
||||
@Component("EquipmentMalfunctionCheck")
|
||||
public class EquipmentMalfunctionCheck implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxWxgdMapper devGzbxWxgdMapper;
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
DevGzbxWxgdDO yorn = devGzbxWxgdMapper.selectOne("id",id);
|
||||
yorn.setProcessingStatus(ProcessingStatusEnum.ACCEPTED.getType());
|
||||
yorn.setDevStatus(AcceptanceStatusEnum.COMPLETED.getType());
|
||||
yorn.setCompletionTime(new Date());
|
||||
yorn.setAcceptanceTime(new Date());
|
||||
DevGzbxDO devGzbxDO = devGzbxMapper.selectOne("id", yorn.getGzbxId());
|
||||
devGzbxDO.setProcessingStatus(AcceptanceStatusEnum.COMPLETED.getType());
|
||||
devGzbxWxgdMapper.updateById(yorn);
|
||||
devGzbxMapper.updateById(devGzbxDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxfaDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxfaMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxgdMapper;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 设备报修方案-环绕
|
||||
*/
|
||||
@Component("equipmentMalfunctionOrder")
|
||||
public class EquipmentMalfunctionOrder implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxWxfaMapper devGzbxWxfaMapper;
|
||||
@Resource
|
||||
private DevGzbxWxgdMapper devGzbxWxgdMapper;
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
Long status = lideeYunJiUtils.getMap2Long(params, "dev_status");
|
||||
Long gzbx_id = lideeYunJiUtils.getMap2Long(params, "gzbx_id");
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "gzbx_id");
|
||||
DevGzbxWxfaDO yorn = devGzbxWxfaMapper.selectById(id);
|
||||
if (status == 2) {
|
||||
if (yorn == null) {
|
||||
DevGzbxWxfaDO devGzbxWxfaDO = new DevGzbxWxfaDO();
|
||||
devGzbxWxfaDO.setDevStatus(2);
|
||||
devGzbxWxfaDO.setGzbxId(gzbx_id);
|
||||
devGzbxWxfaMapper.insertOrUpdate(devGzbxWxfaDO);
|
||||
} else {
|
||||
yorn.setDevStatus(2);
|
||||
devGzbxWxfaMapper.insertOrUpdate(yorn);
|
||||
DevGzbxWxgdDO devGzbxWxgdDO = devGzbxWxgdMapper.selectOne("gzbx_id", gzbx_id);
|
||||
devGzbxWxgdDO.setDevStatus(2);
|
||||
devGzbxWxgdMapper.updateBatch(devGzbxWxgdDO);
|
||||
DevGzbxDO devGzbxDO = devGzbxMapper.selectById(gzbx_id);
|
||||
devGzbxDO.setDevStatus(2);
|
||||
devGzbxMapper.insertOrUpdate(devGzbxDO);
|
||||
}
|
||||
} else if (status == 0) {
|
||||
if (!(yorn == null)) {
|
||||
DevGzbxWxfaDO devGzbxWxfaDO = devGzbxWxfaMapper.selectOne("gzbx_id", gzbx_id);
|
||||
devGzbxWxfaDO.setDevStatus(0);
|
||||
devGzbxWxfaMapper.updateBatch(devGzbxWxfaDO);
|
||||
DevGzbxDO devGzbxDO = devGzbxMapper.selectById(gzbx_id);
|
||||
devGzbxDO.setDevStatus(0);
|
||||
devGzbxMapper.insertOrUpdate(devGzbxDO);
|
||||
} else {
|
||||
DevGzbxDO devGzbxDO = devGzbxMapper.selectById(gzbx_id);
|
||||
devGzbxDO.setDevStatus(0);
|
||||
devGzbxMapper.insertOrUpdate(devGzbxDO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxfaDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxfaMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxgdMapper;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 维修方案-java增强
|
||||
*/
|
||||
@Component("equipmentMalfunctionRecord")
|
||||
public class EquipmentMalfunctionRecord implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxWxfaMapper devGzbxWxfaMapper;
|
||||
@Resource
|
||||
private DevGzbxWxgdMapper devGzbxWxgdMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
|
||||
String submitType = lideeYunJiUtils.getMap2Str(params, "submitType");
|
||||
if (!"ys".equals(submitType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
if (id == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxfaDO devGzbxWxfaDO = devGzbxWxfaMapper.selectOne("id", id);
|
||||
if (devGzbxWxfaDO == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
devGzbxWxfaDO.setDevStatus(1);
|
||||
devGzbxWxfaMapper.updateById(devGzbxWxfaDO);
|
||||
|
||||
Long gzbxId = devGzbxWxfaDO.getGzbxId();
|
||||
if (gzbxId == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxgdDO devGzbxWxgdDO = devGzbxWxgdMapper.selectOne("id", gzbxId);
|
||||
if (devGzbxWxgdDO != null) {
|
||||
devGzbxWxgdDO.setDevStatus(2);
|
||||
devGzbxWxgdMapper.updateById(devGzbxWxgdDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
|
||||
package com.lideeyunji.module.biz.controller;
|
||||
|
||||
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.AdapterMapper;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxgdMapper;
|
||||
import com.lideeyunji.tool.framework.security.core.LoginUser;
|
||||
import com.lideeyunji.tool.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.AcceptanceStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.ProcessingStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import jodd.util.StringUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 设备报修工单-环绕
|
||||
*/
|
||||
@Component("equipmentMalfunctionRepair")
|
||||
public class EquipmentMalfunctionRepair implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxWxgdMapper devGzbxWxgdMapper;
|
||||
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
@Resource
|
||||
private AdapterMapper adapterMapper;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
|
||||
String submitType = lideeYunJiUtils.getMap2Str(params, "submitType");
|
||||
if (!"ys".equals(submitType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
if (id == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxgdDO existingRecord = devGzbxWxgdMapper.selectOne("gzbx_id", id);
|
||||
if (existingRecord != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxDO gzbxDO = devGzbxMapper.selectOne("id", id);
|
||||
if (gzbxDO == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxgdDO newRecord = new DevGzbxWxgdDO();
|
||||
BeanUtils.copyProperties(gzbxDO, newRecord);
|
||||
newRecord.setId(null);
|
||||
newRecord.setGzbxId(id);
|
||||
newRecord.setFaultType(gzbxDO.getType());
|
||||
newRecord.setFaultRemark(gzbxDO.getRemark());
|
||||
newRecord.setNumber(generateFaultNumber(params));
|
||||
newRecord.setCreateUserName(gzbxDO.getCreateUserName());
|
||||
devGzbxWxgdMapper.insert(newRecord);
|
||||
gzbxDO.setProcessingStatus(AcceptanceStatusEnum.TREATED.getType());
|
||||
devGzbxMapper.updateById(gzbxDO);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
}
|
||||
|
||||
private String generateFaultNumber(Map<String, Object> params) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
return "GD" + LocalDateTime.now().format(formatter);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.lideeyunji.module.biz.controller.maintenance;
|
||||
|
||||
|
||||
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.AdapterMapper;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxMapper;
|
||||
import com.lideeyunji.tool.framework.security.core.LoginUser;
|
||||
import com.lideeyunji.tool.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import jodd.util.StringUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 故障报修-新增-java增强
|
||||
*/
|
||||
@Component("AddFMaintenanceOrderFunctionRecord")
|
||||
public class AddFMaintenanceOrderFunctionRecord implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private AdapterMapper adapterMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
String faultNumber = generateFaultNumber(params);
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
if (loginUser == null) {
|
||||
return;
|
||||
}
|
||||
Long userId = loginUser.getId();
|
||||
|
||||
DevGzbxDO devGzbxDO = new DevGzbxDO();
|
||||
devGzbxDO.setId(id);
|
||||
devGzbxDO.setFaultNumber(faultNumber);
|
||||
devGzbxDO.setReporter(userId);
|
||||
devGzbxDO.setCreateUserName(adapterMapper.getNickname(userId));
|
||||
devGzbxMapper.updateById(devGzbxDO);
|
||||
}
|
||||
|
||||
private String generateFaultNumber(Map<String, Object> params) {
|
||||
String faultNumber = lideeYunJiUtils.getMap2Str(params, "fault_number");
|
||||
if (StringUtil.isBlank(faultNumber)) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
return "GZ" + LocalDateTime.now().format(formatter);
|
||||
}
|
||||
return faultNumber;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.lideeyunji.module.biz.controller.maintenance;
|
||||
|
||||
|
||||
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.AdapterMapper;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxgdMapper;
|
||||
import com.lideeyunji.tool.framework.security.core.LoginUser;
|
||||
import com.lideeyunji.tool.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.ProcessingStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import jodd.util.StringUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 故障报修-新增-java增强
|
||||
*/
|
||||
@Component("AddFaultFeportingFunctionRecord")
|
||||
public class AddFaultReportingFunctionRecord implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private AdapterMapper adapterMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
String faultNumber = generateFaultNumber(params);
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
if (loginUser == null) {
|
||||
return;
|
||||
}
|
||||
Long userId = loginUser.getId();
|
||||
|
||||
DevGzbxDO devGzbxDO = new DevGzbxDO();
|
||||
devGzbxDO.setId(id);
|
||||
devGzbxDO.setFaultNumber(faultNumber);
|
||||
devGzbxDO.setReporter(userId);
|
||||
devGzbxDO.setCreateUserName(adapterMapper.getNickname(userId));
|
||||
devGzbxMapper.updateById(devGzbxDO);
|
||||
}
|
||||
|
||||
private String generateFaultNumber(Map<String, Object> params) {
|
||||
String faultNumber = lideeYunJiUtils.getMap2Str(params, "number");
|
||||
if (StringUtil.isBlank(faultNumber)) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
return "GZ" + LocalDateTime.now().format(formatter);
|
||||
}
|
||||
return faultNumber;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.lideeyunji.module.biz.controller.maintenance;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.module.biz.mapper.EquipmentArchivesMapper;
|
||||
import com.lideeyunji.tool.framework.sql.core.toolkit.StringUtils;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 设备档案-java增强
|
||||
*/
|
||||
@Component("EquipmentArchivesFunctionRecord")
|
||||
public class EquipmentArchivesFunctionRecord implements AroundAdvicePlugin {
|
||||
|
||||
@Resource
|
||||
private EquipmentArchivesMapper equipmentArchivesMapper;
|
||||
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
String decCode = lideeYunJiUtils.getMap2Str(params, "dev_code");
|
||||
if (StringUtils.isBlank(decCode)) {
|
||||
String newDevCode = generateFaultNumber();
|
||||
params.put("dev_code", newDevCode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
}
|
||||
|
||||
private String generateFaultNumber() {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
return "SB" + LocalDateTime.now().format(formatter);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.lideeyunji.module.biz.controller.maintenance;
|
||||
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.model.EnhanceContext;
|
||||
import com.lideeyunji.core.framework.config.aspect.enhance.plugin.AroundAdvicePlugin;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxfaDO;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxfaMapper;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxWxgdMapper;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.AcceptanceStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.enums.ProcessingStatusEnum;
|
||||
import com.lideeyunji.tool.framework.yunji.utils.lideeYunJiUtils;
|
||||
import jodd.util.StringUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 设备报修工单-环绕
|
||||
*/
|
||||
@Component("FaultRepairFunctionRecord")
|
||||
public class FaultRepairFunctionRecord implements AroundAdvicePlugin {
|
||||
@Resource
|
||||
private DevGzbxWxfaMapper devGzbxWxfaMapper;
|
||||
|
||||
@Resource
|
||||
private DevGzbxWxgdMapper devGzbxWxgdMapper;
|
||||
|
||||
// @Resource
|
||||
@Override
|
||||
public void beforeExecute(EnhanceContext enhanceContext) {
|
||||
Map<String, Object> params = enhanceContext.getParam().getParams();
|
||||
|
||||
String submitType = lideeYunJiUtils.getMap2Str(params, "submitType");
|
||||
if (!"ys".equals(submitType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Long id = lideeYunJiUtils.getMap2Long(params, "id");
|
||||
if (id == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxfaDO existingRecord = devGzbxWxfaMapper.selectOne("gzbx_id", id);
|
||||
if (existingRecord != null) {
|
||||
return;
|
||||
}
|
||||
DevGzbxWxgdDO wxgdDO = devGzbxWxgdMapper.selectOne("id", id);
|
||||
if (wxgdDO == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DevGzbxWxfaDO newRecord = new DevGzbxWxfaDO();
|
||||
BeanUtils.copyProperties(wxgdDO, newRecord);
|
||||
newRecord.setId(null);
|
||||
newRecord.setGzbxId(id);
|
||||
newRecord.setDevStatus(0);
|
||||
newRecord.setCreateTime(new Date());
|
||||
newRecord.setNumber(generateFaultNumber(params));
|
||||
devGzbxWxfaMapper.insert(newRecord);
|
||||
wxgdDO.setDevStatus(AcceptanceStatusEnum.TREATED.getType());
|
||||
wxgdDO.setProcessingStatus(null);
|
||||
devGzbxWxgdMapper.updateById(wxgdDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterExecute(EnhanceContext enhanceContext) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private String generateFaultNumber(Map<String, Object> params) {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
return "FA" + LocalDateTime.now().format(formatter);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.lideeyunji.module.biz.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 设备档案-实体类
|
||||
*
|
||||
* @author duanxiang
|
||||
*/
|
||||
@TableName(value = "sys_device", autoResultMap = true)
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DevArchivesEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
*/
|
||||
private String devCode;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String devName;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String devType;
|
||||
|
||||
/**
|
||||
* 设备型号
|
||||
*/
|
||||
private String devXh;
|
||||
|
||||
/**
|
||||
* 设备部门
|
||||
*/
|
||||
private String devDept;
|
||||
|
||||
/**
|
||||
* 设备所属单位
|
||||
*/
|
||||
private String devZzdw;
|
||||
|
||||
/**
|
||||
* 设备出厂日期
|
||||
*/
|
||||
private Date devCcrq;
|
||||
|
||||
/**
|
||||
* 设备启用日期
|
||||
*/
|
||||
private Date devQyrq;
|
||||
|
||||
/**
|
||||
* 设备功率/管理
|
||||
*/
|
||||
private String devGl;
|
||||
|
||||
/**
|
||||
* 设备安装位置
|
||||
*/
|
||||
private String devAzwz;
|
||||
|
||||
/**
|
||||
* 设备固定资产编码
|
||||
*/
|
||||
private String devGdzcbm;
|
||||
|
||||
/**
|
||||
* 设备图片
|
||||
*/
|
||||
private String devTp;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long createUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private Long updateUser;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 逻辑删除标志(0-未删除,1-已删除)
|
||||
*/
|
||||
private Integer isDeleted;
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
package com.lideeyunji.module.biz.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.lideeyunji.tool.framework.tenant.core.db.TenantBaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 故障保修 DO
|
||||
*
|
||||
* @author duanxiang
|
||||
*/
|
||||
@TableName(value = "dev_gzbx", autoResultMap = true)
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DevGzbxDO {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
@TableField("tenant_id")
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 故障编号
|
||||
*/
|
||||
@TableField("fault_number")
|
||||
private String faultNumber;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
@TableField("dev_type")
|
||||
private Integer devType;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
@TableField("dev_name")
|
||||
private String devName;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
@TableField("dev_no")
|
||||
private String devNo;
|
||||
|
||||
/**
|
||||
* 故障类型(0-硬件故障 1-软件故障 2-网络故障 3-其他)
|
||||
*/
|
||||
@TableField("type")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 故障备注/描述
|
||||
*/
|
||||
@TableField("remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 故障级别(严重/高/中/低)
|
||||
*/
|
||||
@TableField("level")
|
||||
private Integer level;
|
||||
|
||||
/**
|
||||
* 是否停机(0-否 1-是)
|
||||
*/
|
||||
@TableField("is_stop")
|
||||
private Integer isStop;
|
||||
|
||||
/**
|
||||
* 上报人ID
|
||||
*/
|
||||
@TableField("reporter")
|
||||
private Long reporter;
|
||||
|
||||
/**
|
||||
* 手机号码
|
||||
*/
|
||||
@TableField("phone_number")
|
||||
private String phoneNumber;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField("create_user")
|
||||
private Long createUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField("create_time")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建部门ID
|
||||
*/
|
||||
@TableField("create_dept")
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField("update_user")
|
||||
private Long updateUser;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField("update_time")
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 删除标志(0-未删除 1-已删除)
|
||||
*/
|
||||
@TableField("is_deleted")
|
||||
@TableLogic
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 设备状态(0-正常 1-异常 2-维护中 3-已报废)
|
||||
*/
|
||||
@TableField("dev_status")
|
||||
private Integer devStatus;
|
||||
|
||||
/**
|
||||
* 处理状态(0-待处理 1-处理中 2-已处理 3-已关闭)
|
||||
*/
|
||||
@TableField("processing_status")
|
||||
private Integer processingStatus;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
@TableField("create_user_name")
|
||||
private String createUserName;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
package com.lideeyunji.module.biz.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 维修方案 DO
|
||||
*
|
||||
* @author duanxiang
|
||||
*/
|
||||
@TableName(value = "dev_gzbx_wxfa", autoResultMap = true)
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DevGzbxWxfaDO {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField(fill = FieldFill.UPDATE)
|
||||
private Long updateUser;
|
||||
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createUser;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 逻辑删除标志(0-正常,1-已删除)
|
||||
*/
|
||||
@TableLogic
|
||||
@TableField(select = false)
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 设备类型(0-电脑,1-打印机,2-网络设备,3-其他)
|
||||
*/
|
||||
private Integer devType;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String devName;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
private String devNo;
|
||||
|
||||
/**
|
||||
* 故障类型(0-硬件故障,1-软件故障,2-网络故障,3-其他)
|
||||
*/
|
||||
private Integer faultType;
|
||||
|
||||
/**
|
||||
* 故障描述
|
||||
*/
|
||||
private String faultRemark;
|
||||
|
||||
/**
|
||||
* 设备状态(0-正常,1-故障,2-维修中,3-已报废)
|
||||
*/
|
||||
private Integer devStatus;
|
||||
|
||||
/**
|
||||
* 工单报修ID
|
||||
*/
|
||||
private Long gzbxId;
|
||||
|
||||
/**
|
||||
* 处理状态(0-待处理,1-处理中,2-已完成,3-已关闭)
|
||||
*/
|
||||
private Integer processingStatus;
|
||||
|
||||
/**
|
||||
* 姓名/联系人
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 号码/联系电话
|
||||
*/
|
||||
private String number;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,199 @@
|
||||
package com.lideeyunji.module.biz.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import static com.lideeyunji.tool.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
import static com.lideeyunji.tool.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
|
||||
|
||||
/**
|
||||
* 维修故障 DO
|
||||
*
|
||||
* @author duanxiang
|
||||
*/
|
||||
@TableName(value = "dev_gzbx_wxgd", autoResultMap = true)
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class DevGzbxWxgdDO {
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 故障报修ID
|
||||
*/
|
||||
@TableField("gzbx_id")
|
||||
private Long gzbxId;
|
||||
|
||||
/**
|
||||
* 删除标志(0-未删除 1-已删除)
|
||||
*/
|
||||
@TableField("is_deleted")
|
||||
@TableLogic
|
||||
private Integer isDeleted;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField("update_time")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 更新人
|
||||
*/
|
||||
@TableField("update_user")
|
||||
private Long updateUser;
|
||||
|
||||
/**
|
||||
* 创建部门ID
|
||||
*/
|
||||
@TableField("create_dept")
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField("create_time")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@TableField("create_user")
|
||||
private Long createUser;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
@TableField("tenant_id")
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 处理状态(0-待处理 1-处理中 2-已处理 3-已关闭)
|
||||
*/
|
||||
@TableField("processing_status")
|
||||
private Integer processingStatus;
|
||||
|
||||
/**
|
||||
* 故障名称
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
@TableField("fault_type")
|
||||
private Integer faultType;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
@TableField("dev_no")
|
||||
private String devNo;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
@TableField("dev_name")
|
||||
private String devName;
|
||||
|
||||
/**
|
||||
* 优先级(
|
||||
*/
|
||||
@TableField("priority")
|
||||
private String priority;
|
||||
|
||||
/**
|
||||
* 工单类型
|
||||
*/
|
||||
@TableField("type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
@TableField("number")
|
||||
private String number;
|
||||
|
||||
/**
|
||||
* 故障备注/描述
|
||||
*/
|
||||
@TableField("fault_remark")
|
||||
private String faultRemark;
|
||||
|
||||
/**
|
||||
* 设备类型(
|
||||
*/
|
||||
@TableField("dev_type")
|
||||
private Integer devType;
|
||||
|
||||
/**
|
||||
* 维修人员ID
|
||||
*/
|
||||
@TableField("maintenance_person")
|
||||
private Long maintenancePerson;
|
||||
|
||||
/**
|
||||
* 是否停机(0-否 1-是)
|
||||
*/
|
||||
@TableField("is_top")
|
||||
private Integer isTop;
|
||||
|
||||
/**
|
||||
* 是否备案(0-否 1-是)
|
||||
*/
|
||||
@TableField("is_filing")
|
||||
private Integer isFiling;
|
||||
|
||||
/**
|
||||
* 上报人ID
|
||||
*/
|
||||
@TableField("reporter")
|
||||
private Long reporter;
|
||||
|
||||
/**
|
||||
* 手机号码
|
||||
*/
|
||||
@TableField("phone_number")
|
||||
private String phoneNumber;
|
||||
|
||||
/**
|
||||
* 设备状态
|
||||
*/
|
||||
@TableField("dev_status")
|
||||
private Integer devStatus;
|
||||
/**
|
||||
* 严重级别
|
||||
*/
|
||||
private Integer level;
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
|
||||
private Date completionTime;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
|
||||
private Date acceptanceTime;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
@TableField("create_user_name")
|
||||
private String createUserName;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
package com.lideeyunji.module.biz.mapper;
|
||||
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.tool.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* demo相关
|
||||
*/
|
||||
@Mapper
|
||||
public interface DevGzbxMapper extends BaseMapperX<DevGzbxDO> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
package com.lideeyunji.module.biz.mapper;
|
||||
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxfaDO;
|
||||
import com.lideeyunji.tool.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* demo相关
|
||||
*/
|
||||
@Mapper
|
||||
public interface DevGzbxWxfaMapper extends BaseMapperX<DevGzbxWxfaDO> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
package com.lideeyunji.module.biz.mapper;
|
||||
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxWxgdDO;
|
||||
import com.lideeyunji.tool.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* demo相关
|
||||
*/
|
||||
@Mapper
|
||||
public interface DevGzbxWxgdMapper extends BaseMapperX<DevGzbxWxgdDO> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
package com.lideeyunji.module.biz.mapper;
|
||||
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevArchivesEntity;
|
||||
import com.lideeyunji.tool.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 设备档案
|
||||
*/
|
||||
@Mapper
|
||||
public interface EquipmentArchivesMapper extends BaseMapperX<DevArchivesEntity> {
|
||||
|
||||
DevArchivesEntity selectByType(@Param("devType")String devType);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.lideeyunji.module.biz.service;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 故障报修 Service 接口
|
||||
*
|
||||
* @author dx
|
||||
*/
|
||||
public interface DevGzbxService {
|
||||
|
||||
/**
|
||||
* 创建故障报修
|
||||
*
|
||||
* @param devGzbxDO 修改报修状态
|
||||
* @return 配置编号
|
||||
*/
|
||||
void updateDevgGzbx(@Valid DevGzbxDO devGzbxDO);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.lideeyunji.module.biz.service;
|
||||
|
||||
import com.lideeyunji.module.biz.entity.DevArchivesEntity;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
public interface EquipmentArchivesService
|
||||
{
|
||||
List<DevArchivesEntity> selectByType(@Valid String devType);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.lideeyunji.module.biz.service.impl;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
import com.lideeyunji.module.biz.entity.DevGzbxDO;
|
||||
import com.lideeyunji.module.biz.mapper.DevGzbxMapper;
|
||||
import com.lideeyunji.module.biz.service.DevGzbxService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
/**
|
||||
* 参数配置 Service 实现类
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@Validated
|
||||
public class DevGzbxServiceImpl implements DevGzbxService {
|
||||
|
||||
@Resource
|
||||
private DevGzbxMapper devGzbxMapper;
|
||||
|
||||
@Override
|
||||
public void updateDevgGzbx(DevGzbxDO devGzbxDO) {
|
||||
devGzbxDO.setDevStatus(1);
|
||||
devGzbxMapper.updateById(devGzbxDO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.lideeyunji.module.biz.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.lideeyunji.module.biz.entity.DevArchivesEntity;
|
||||
import com.lideeyunji.module.biz.mapper.EquipmentArchivesMapper;
|
||||
import com.lideeyunji.module.biz.service.EquipmentArchivesService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@Validated
|
||||
public class EquipmentArchivesServiceImpl implements EquipmentArchivesService {
|
||||
|
||||
@Resource
|
||||
private EquipmentArchivesMapper equipmentArchivesMapper;
|
||||
|
||||
@Override
|
||||
public List<DevArchivesEntity> selectByType(String devType) {
|
||||
LambdaQueryWrapper<DevArchivesEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(DevArchivesEntity::getDevType, devType).eq(DevArchivesEntity::getIsDeleted, 0);
|
||||
return equipmentArchivesMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.lideeyunji.module.biz.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class DevArchivesVo {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 设备编码
|
||||
*/
|
||||
private String devCode;
|
||||
|
||||
/**
|
||||
* 设备名称
|
||||
*/
|
||||
private String devName;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String devType;
|
||||
|
||||
/**
|
||||
* 设备型号
|
||||
*/
|
||||
private String devXh;
|
||||
|
||||
/**
|
||||
* 设备部门
|
||||
*/
|
||||
private String devDept;
|
||||
|
||||
/**
|
||||
* 设备所属单位
|
||||
*/
|
||||
private String devZzdw;
|
||||
|
||||
/**
|
||||
* 设备出厂日期
|
||||
*/
|
||||
private Date devCcrq;
|
||||
|
||||
/**
|
||||
* 设备启用日期
|
||||
*/
|
||||
private Date devQyrq;
|
||||
|
||||
/**
|
||||
* 设备功率/管理
|
||||
*/
|
||||
private String devGl;
|
||||
|
||||
/**
|
||||
* 设备安装位置
|
||||
*/
|
||||
private String devAzwz;
|
||||
|
||||
/**
|
||||
* 设备固定资产编码
|
||||
*/
|
||||
private String devGdzcbm;
|
||||
|
||||
/**
|
||||
* 设备图片
|
||||
*/
|
||||
private String devTp;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private Long tenantId;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private Long createUser;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
private Long updateUser;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 逻辑删除标志(0-未删除,1-已删除)
|
||||
*/
|
||||
private Integer isDeleted;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.lideeyunji.tool.framework.yunji.enums;
|
||||
|
||||
|
||||
/**
|
||||
* 处理状态枚举
|
||||
*/
|
||||
public enum AcceptanceStatusEnum {
|
||||
|
||||
|
||||
UNTREATED(0, "未处理"),
|
||||
TREATED(1, "已处理"),
|
||||
PENDING(2, "待验收"),
|
||||
COMPLETED(3, "已完成"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
private final String name;
|
||||
|
||||
public Integer getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
AcceptanceStatusEnum(Integer type, String name) {
|
||||
this.type = type;
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.lideeyunji.tool.framework.yunji.enums;
|
||||
|
||||
|
||||
/**
|
||||
* 验收状态枚举
|
||||
*/
|
||||
public enum ProcessingStatusEnum {
|
||||
UNACCEPTED(0, "未验收"),
|
||||
ACCEPTED(1, "已验收");
|
||||
|
||||
private final Integer type;
|
||||
private final String name;
|
||||
|
||||
public Integer getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
ProcessingStatusEnum(Integer type, String name) {
|
||||
this.type = type;
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
193
sql/gzgl.sql
Normal file
193
sql/gzgl.sql
Normal file
@@ -0,0 +1,193 @@
|
||||
|
||||
/* 给故障报修新增一个java增强 */
|
||||
INSERT INTO `yunji_dbform_enhance_java` (`tenant_id`, `create_user`, `create_time`, `create_dept`, `update_user`, `update_time`, `is_deleted`, `dbform_id`, `button_code`, `java_type`, `java_class_url`, `online_script`, `active_status`, `remark`, `list_result_handle_type`, `sort`) VALUES (NULL, 1, '2026-03-17 16:50:18', 100, NULL, NULL, 0, 2021105111153053697, 'handle', 'spring', 'faultRepairController', '', 'Y', '', '0', 1);
|
||||
|
||||
|
||||
/* 给故障报修新增一个自定义按钮 */
|
||||
INSERT INTO `yunji_dbform_button` (`tenant_id`, `create_user`, `create_time`, `create_dept`, `update_user`, `update_time`, `is_deleted`, `dbform_id`, `button_name`, `button_code`, `button_icon`, `button_location`, `button_type`, `button_sort`, `button_exp`, `button_show`, `button_auth`, `button_i18n`) VALUES (NULL, 1, '2026-03-17 16:18:29', 100, 1, '2026-03-17 16:19:46', 0, 2021105111153053697, '处理', 'chuli', '', 'menu', '', 1, '', 'Y', 'Y', '');
|
||||
|
||||
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修管理-严重级别', 'wxgl_yzjb', 0, '', 1, '2026-03-18 10:11:47', 1, '2026-03-18 10:11:47', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修管理-故障类型', 'wxgl_gzlx', 0, '', 1, '2026-03-18 10:05:47', 1, '2026-03-18 10:05:47', 0, '1970-01-01 00:00:00');
|
||||
|
||||
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已完成', '3', 'fault_repair_status', 0, '', '', '', 1, '2026-03-20 08:10:31', NULL, '2026-03-21 14:41:48', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (17, '其他', '17', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (16, '储运部', '16', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (15, '技术中心', '15', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (14, '化验室', '14', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (13, '动力车间', '13', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (12, '原料车间3号生产线', '12', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (11, '原料车间2号生产线', '11', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (10, '原料车间1号生产线', '10', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (9, '口服固体制剂2号生产线', '9', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (8, '口服固体制剂1号生产线', '8', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (7, '小容量注射剂2号生产线', '7', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (6, '小容量注射剂1号生产线', '6', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (5, '一般粉针生产线', '5', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (4, '头孢粉针生产线', '4', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (3, '冻干粉针3号生产线', '3', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (2, '冻干粉针2号生产线', '2', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (1, '冻干粉针1号生产线', '1', 'device_type', 0, '', '', '', 1, '2026-03-20 15:27:50', 1, '2026-03-20 15:27:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已受理', '2', 'fault_repair_status', 0, '', '', '', 1, '2026-03-20 08:10:31', NULL, '2026-03-21 14:41:48', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已受理', '1', 'fault_repair_status', 0, '', '', '', 1, '2026-03-20 08:10:20', 1, '2026-03-20 08:10:20', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '待处理', '0', 'fault_repair_status', 0, '', '', '', 1, '2026-03-20 08:09:58', 1, '2026-03-20 08:09:58', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已验收', '1', 'maintenance_status', 0, '', '', '', 1, '2026-03-19 15:28:10', 1, '2026-03-19 15:28:10', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '待验收', '0', 'maintenance_status', 0, '', '', '', 1, '2026-03-19 15:28:05', 1, '2026-03-19 15:28:05', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '高', '3', 'fault_priority_type', 0, 'danger', '', '', 1, '2026-03-19 11:11:08', 1, '2026-03-19 11:11:08', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '中', '2', 'fault_priority_type', 0, 'warning', '', '', 1, '2026-03-19 11:10:56', NULL, '2026-03-19 11:11:21', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '低', '1', 'fault_priority_type', 0, 'info', '', '', 1, '2026-03-19 11:10:49', NULL, '2026-03-19 11:11:16', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '委外', '2', 'faul_order_type', 0, '', '', '', 1, '2026-03-19 11:10:10', 1, '2026-03-19 11:10:10', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '自修', '1', 'faul_order_type', 0, '', '', '', 1, '2026-03-19 11:10:06', 1, '2026-03-19 11:10:06', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '未处理', '0', 'fault_handling_status', 0, 'info', '', '', 1, '2026-03-19 11:08:18', 1, '2026-03-19 11:08:18', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已处理', '1', 'fault_handling_status', 0, 'success', '', '', 1, '2026-03-19 11:08:00', NULL, '2026-03-19 11:08:23', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '未停机', '0', 'is_shut_down', 0, '', '', '', 1, '2026-03-18 14:48:46', 1, '2026-03-18 14:48:46', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '已停机', '1', 'is_shut_down', 0, '', '', '', 1, '2026-03-18 14:48:36', 1, '2026-03-18 14:48:36', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '否', '0', 'infra_boolean_integer', 0, '', '', '', 1, '2026-03-18 14:30:19', 1, '2026-03-18 14:30:19', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '是', '1', 'infra_boolean_integer', 0, '', '', '', 1, '2026-03-18 14:30:14', 1, '2026-03-18 14:30:14', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '严重', '3', 'wxgl_yzjb', 0, 'danger', '', '', 1, '2026-03-18 10:12:33', 1, '2026-03-18 10:12:33', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '重要', '2', 'wxgl_yzjb', 0, '', '', '', 1, '2026-03-18 10:12:19', 1, '2026-03-18 10:12:19', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '一般', '1', 'wxgl_yzjb', 0, '', '', '', 1, '2026-03-18 10:12:13', 1, '2026-03-18 10:12:13', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '其他', '4', 'wxgl_gzlx', 0, '', '', '', 1, '2026-03-18 10:06:50', 1, '2026-03-18 10:06:50', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '机械故障', '3', 'wxgl_gzlx', 0, '', '', '', 1, '2026-03-18 10:06:43', 1, '2026-03-18 10:06:43', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '电气故障', '2', 'wxgl_gzlx', 0, '', '', '', 1, '2026-03-18 10:06:32', 1, '2026-03-18 10:06:32', 0);
|
||||
INSERT INTO `system_dict_data` (`sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`) VALUES (0, '系统故障', '1', 'wxgl_gzlx', 0, '', '', '', 1, '2026-03-18 10:06:19', 1, '2026-03-18 10:06:19', 0);
|
||||
|
||||
|
||||
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修管理-设备类型', 'device_type', 0, '', 1, '2026-03-20 15:27:21', 1, '2026-03-20 15:27:21', 0, '2026-03-20 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('故障报修状态', 'fault_repair_status', 0, '', 1, '2026-03-20 08:09:36', 1, '2026-03-20 08:09:36', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修工单-验收状态', 'maintenance_status', 0, '', 1, '2026-03-19 15:27:32', NULL, '2026-03-19 15:28:24', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('故障优先级', 'fault_priority_type', 0, '', 1, '2026-03-19 11:10:41', 1, '2026-03-19 11:10:41', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('故障工单类型', 'faul_order_type', 0, '', 1, '2026-03-19 11:09:45', 1, '2026-03-19 11:09:45', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('故障处理状态', 'fault_handling_status', 0, '', 1, '2026-03-19 11:07:48', 1, '2026-03-19 11:07:48', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('是否已停机', 'is_shut_down', 0, '', 1, '2026-03-18 14:48:16', 1, '2026-03-18 14:48:16', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('Integer是否类型', 'infra_boolean_integer', 0, '', 1, '2026-03-18 14:30:06', 1, '2026-03-18 14:30:06', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修管理-严重级别', 'wxgl_yzjb', 0, '', 1, '2026-03-18 10:11:47', 1, '2026-03-18 10:11:47', 0, '1970-01-01 00:00:00');
|
||||
INSERT INTO `system_dict_type` (`name`, `type`, `status`, `remark`, `create_user`, `create_time`, `update_user`, `update_time`, `is_deleted`, `deleted_time`) VALUES ('维修管理-故障类型', 'wxgl_gzlx', 0, '', 1, '2026-03-18 10:05:47', 1, '2026-03-18 10:05:47', 0, '1970-01-01 00:00:00');
|
||||
|
||||
DROP TABLE IF EXISTS `dev_gzbx`;
|
||||
CREATE TABLE `dev_gzbx` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户id',
|
||||
`fault_number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障编号',
|
||||
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障名称',
|
||||
`dev_type` int NULL DEFAULT NULL COMMENT '设备类型',
|
||||
`dev_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备名称',
|
||||
`dev_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设备编号',
|
||||
`type` tinyint NULL DEFAULT NULL COMMENT '故障类型',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障描述',
|
||||
`level` tinyint NULL DEFAULT NULL COMMENT '严重级别',
|
||||
`is_stop` tinyint NULL DEFAULT NULL COMMENT '是否已停机',
|
||||
`reporter` bigint NULL DEFAULT NULL COMMENT '上报人',
|
||||
`phone_number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号码',
|
||||
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门id',
|
||||
`update_user` bigint NULL DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`is_deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`dev_status` tinyint NULL DEFAULT 0 COMMENT '维修状态',
|
||||
`processing_status` tinyint NULL DEFAULT 0 COMMENT '处理状态',
|
||||
`create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人姓名',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '设备故障报修' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `dev_gzbx_plan_step`;
|
||||
CREATE TABLE `dev_gzbx_plan_step` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`plan_id` bigint NULL DEFAULT NULL COMMENT '方案id',
|
||||
`step` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '步骤',
|
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`update_user` bigint NULL DEFAULT NULL COMMENT '更新人',
|
||||
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门id',
|
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
||||
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号',
|
||||
`is_deleted` int NULL DEFAULT 0 COMMENT '是否删除',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2035958249577574403 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bg_0900_ai_ci COMMENT = '故障报修-方案步骤' ROW_FORMAT = Dynamic;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of dev_gzbx_plan_step
|
||||
-- ----------------------------
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (1, 1, '1', NULL, NULL, NULL, NULL, NULL, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2034177378348560386, 2029201620194643970, 'cs ', NULL, NULL, 100, '2026-03-18 15:57:35', 1, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2034899364632592385, 2034899275189059585, '1', NULL, NULL, 100, '2026-03-20 15:46:30', 1, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2034899364817141761, 2034899275189059585, '2', NULL, NULL, 100, '2026-03-20 15:46:30', 1, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2035958248935845889, 2035958173450956801, '测试', NULL, NULL, 100, '2026-03-23 13:54:08', 1, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2035958249258807297, 2035958173450956801, '333', NULL, NULL, 100, '2026-03-23 13:54:08', 1, NULL, 0);
|
||||
INSERT INTO `dev_gzbx_plan_step` VALUES (2035958249577574402, 2035958173450956801, '444', NULL, NULL, 100, '2026-03-23 13:54:08', 1, NULL, 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `dev_gzbx_wxfa`;
|
||||
CREATE TABLE `dev_gzbx_wxfa` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_user` bigint NULL DEFAULT NULL COMMENT '更新人',
|
||||
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门id',
|
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
||||
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号',
|
||||
`is_deleted` int NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`dev_type` int NULL DEFAULT NULL COMMENT '设备类型',
|
||||
`dev_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '设备名称',
|
||||
`dev_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '设备编号',
|
||||
`fault_type` tinyint NULL DEFAULT NULL COMMENT '故障类型',
|
||||
`fault_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '故障描述',
|
||||
`dev_status` tinyint NULL DEFAULT NULL COMMENT '维修状态',
|
||||
`gzbx_id` bigint NULL DEFAULT NULL COMMENT '关联id',
|
||||
`processing_status` tinyint NULL DEFAULT 0 COMMENT '处理状态',
|
||||
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '方案名称',
|
||||
`number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '方案编号',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2035958173450956802 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bg_0900_ai_ci COMMENT = '维修方案' ROW_FORMAT = Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `dev_gzbx_wxgd`;
|
||||
CREATE TABLE `dev_gzbx_wxgd` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`gzbx_id` bigint NOT NULL COMMENT '故障报修id',
|
||||
`is_deleted` tinyint NULL DEFAULT 0 COMMENT '是否删除',
|
||||
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`update_user` bigint NULL DEFAULT NULL COMMENT '更新人',
|
||||
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门id',
|
||||
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
||||
`tenant_id` bigint NULL DEFAULT NULL COMMENT '租户编号',
|
||||
`processing_status` tinyint NULL DEFAULT NULL COMMENT '验收状态(1,已验收。0:待验收)',
|
||||
`name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '工单名称',
|
||||
`fault_type` tinyint NULL DEFAULT NULL COMMENT '故障类型',
|
||||
`dev_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '设备编号',
|
||||
`dev_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '设备名称',
|
||||
`priority` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT '1' COMMENT '优先级',
|
||||
`type` tinyint NULL DEFAULT 1 COMMENT '类型',
|
||||
`number` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '工单编号',
|
||||
`fault_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '故障描述',
|
||||
`dev_type` int NULL DEFAULT NULL COMMENT '设备类型',
|
||||
`maintenance_person` bigint NULL DEFAULT NULL COMMENT '维修人员',
|
||||
`is_top` tinyint NULL DEFAULT 0 COMMENT '是否停机',
|
||||
`is_filing` tinyint NULL DEFAULT 0 COMMENT '是否备案',
|
||||
`reporter` bigint NULL DEFAULT NULL COMMENT '上报人',
|
||||
`phone_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bg_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号',
|
||||
`dev_status` tinyint NULL DEFAULT 0 COMMENT '处理状态(0未处理,1已生成方案,2:待验收阶段。3已完成))',
|
||||
`level` tinyint NULL DEFAULT NULL COMMENT '严重级别',
|
||||
`completion_time` datetime NULL DEFAULT NULL COMMENT '完成时间',
|
||||
`acceptance_time` datetime NULL DEFAULT NULL COMMENT '验收时间',
|
||||
`create_user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人姓名',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `index_gzbx_id`(`gzbx_id` ASC) USING BTREE COMMENT '故障报修id'
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2034101303270473791 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bg_0900_ai_ci COMMENT = '维修管理-维修工单' ROW_FORMAT = Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Reference in New Issue
Block a user