提交 f6a714d4 authored 作者: douxy's avatar douxy

增加店内执行计划导出/入功能:补充零食陈列导出策略实现代码

上级 5ecbd267
...@@ -53,6 +53,10 @@ public class ExportColumnConfig { ...@@ -53,6 +53,10 @@ public class ExportColumnConfig {
// 标记:是否启用条件样式 // 标记:是否启用条件样式
private boolean conditionalStyling = false; private boolean conditionalStyling = false;
// 标记:是否需要判断前一列是否包含某值
private boolean isContent = false;
public ExportColumnConfig(String fieldName, String headerName, String format, ExcelStyleUtils.ExcelStyle style) { public ExportColumnConfig(String fieldName, String headerName, String format, ExcelStyleUtils.ExcelStyle style) {
this.fieldName = fieldName; this.fieldName = fieldName;
this.headerName = headerName; this.headerName = headerName;
......
package com.sfa.operation.domain.sales.dao; package com.sfa.operation.domain.sales.dao;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay;
import com.sfa.operation.domain.sales.wq.SalesApWq; import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto; import com.sfa.operation.pojo.sales.response.SalesApSnacksDisplayDto;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-09-26 13 * @date : 2025-09-26 13
...@@ -13,4 +16,11 @@ public interface ISalesApSnacksDisplayDao { ...@@ -13,4 +16,11 @@ public interface ISalesApSnacksDisplayDao {
PageInfo page(SalesApWq salesApWq); PageInfo page(SalesApWq salesApWq);
void updateDetail(SalesApSnacksDisplayDto sdDto); void updateDetail(SalesApSnacksDisplayDto sdDto);
/**
* 导出 -根据条件查询导出数据
* @param build 查询条件
* @return 查询结果
*/
List<SalesApSnacksDisplay> querySnackByCondition(SalesApWq build);
} }
...@@ -19,7 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,7 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Objects; import java.util.Objects;
/** /**
...@@ -50,6 +52,17 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao { ...@@ -50,6 +52,17 @@ public class SalesApSnacksDisplayDaoImpl implements ISalesApSnacksDisplayDao {
salesapsnackdsDisplayMapper.updateById(entity); salesapsnackdsDisplayMapper.updateById(entity);
} }
/**
* 导出-根据条件查询
* @param build 查询条件
* @return 查询结果
*/
@Override
public List<SalesApSnacksDisplay> querySnackByCondition(SalesApWq build) {
LambdaQueryWrapper<SalesApSnacksDisplay> wq = buildWq(build);
return salesapsnackdsDisplayMapper.selectList(wq);
}
private LambdaQueryWrapper<SalesApSnacksDisplay> buildWq(SalesApWq salesApWq) { private LambdaQueryWrapper<SalesApSnacksDisplay> buildWq(SalesApWq salesApWq) {
LambdaQueryWrapper<SalesApSnacksDisplay> qw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SalesApSnacksDisplay> qw = new LambdaQueryWrapper<>();
if (Objects.nonNull(salesApWq.getSalesMonth())){ if (Objects.nonNull(salesApWq.getSalesMonth())){
......
package com.sfa.operation.strategy.impl.exports;
import com.alibaba.nacos.plugin.auth.spi.client.ClientAuthPluginManager;
import com.sfa.operation.config.ExportColumnConfig;
import com.sfa.operation.domain.sales.entity.SalesApSnacksDisplay;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApDisplayQueryService;
import com.sfa.operation.strategy.IExportApExcelStrategy;
import com.sfa.operation.util.excel.ExcelStyleUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @Author: DouXinYu
* @Date: 2025-12-16 15:49
* @Description: 零食陈列导出策略实现类
*/
@Component("snackDisplayExportStrategy")
public class SnackDisplayExportStrategyImpl implements IExportApExcelStrategy {
private static final String SNACK_FILE_NAME_PREFIX = "零食陈列";
private static final String SNACK_SHEET_NAME = "零食陈列";
@Autowired
private IApDisplayQueryService apDisplayQueryService;
@Override
public List<ExportColumnConfig> getExportColumnConfig() {
List<ExportColumnConfig> column = new ArrayList<>();
//特殊限制列处理
//实际陈列形式
ExportColumnConfig actualDisplay = new ExportColumnConfig("actualDisplay", "陈列形式(实际)", "", ExcelStyleUtils.ExcelStyle.LIGHT_BLUE_BG);
actualDisplay.setValidationValidOptions(Arrays.asList("执行与计划一致","执行与计划不一致"));
actualDisplay.setValidationErrorTitle("输入错误");
actualDisplay.setValidationPromptMsg("陈列形式(实际)必须输入“执行与计划一致”或“执行与计划不一致”!");
actualDisplay.setConditionalStyling(true);
//实际端架数量
ExportColumnConfig actualEndCapQty = new ExportColumnConfig("actualEndCapQty", "端架数量(计划)", "", ExcelStyleUtils.ExcelStyle.LIGHT_BLUE_BG);
actualDisplay.setValidationValidOptions(Arrays.asList("0","0.5","1","2"));
actualDisplay.setValidationErrorTitle("输入错误");
actualDisplay.setValidationErrorMsg("端架数量(实际)必须是“0、0.5、1、2”之一!");
actualDisplay.setConditionalStyling(true);
column.add(new ExportColumnConfig("sasdId", "程序编号-请忽略", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("salesMonth", "计划月份", "YYYY-MM", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("regionName", "销售大区", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("districtName", "销售战区", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("dealerCode", "经销商代码", "@", ExcelStyleUtils.ExcelStyle.CHANGE_TEXT_STYLE));
column.add(new ExportColumnConfig("dealerName", "经销商名称", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("storeCode", "门店编码", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("storeName", "门店名称", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("lineName", "系统名称", "", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(new ExportColumnConfig("plannedDisplay","陈列形式(计划)","", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(actualDisplay);
column.add(new ExportColumnConfig("plannedEndCapQty","端架数量(计划)","", ExcelStyleUtils.ExcelStyle.UNMODIFIABLE));
column.add(actualEndCapQty);
column.add(new ExportColumnConfig("remark","备注","",ExcelStyleUtils.ExcelStyle.DEFAULT_STYLE));
return column;
}
@Override
public List<SalesApSnacksDisplay> queryData(SalesApRequest salesApRequest) {
return apDisplayQueryService.querySnackByCondition(salesApRequest);
}
@Override
public String getExportSheetName() {
return SNACK_SHEET_NAME;
}
@Override
public String getExportFileNamePrefix() {
return SNACK_FILE_NAME_PREFIX;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论