提交 7866e345 authored 作者: 000516's avatar 000516

陈列执行分页查询、按ID个性;档期执行分页查询

上级 8c6e8bb7
package com.sfa.operation.controller.sales.core;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApDisplayCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author : liqiulin
* @date : 2025-09-16 15
* @describe :
*/
@RestController
@RequestMapping("/sales/ap_display/core")
public class ApDisplayCoreController {
@Autowired
private IApDisplayCoreService apDisplayCoreService;
/**
* 根据id更新
*/
@PutMapping("/{id}")
public void putDetail(@PathVariable("id") Long sadId, @RequestBody SalesApRequest request){
request.setSadId(sadId);
apDisplayCoreService.updateDetail(request);
}
}
package com.sfa.operation.controller.sales.core;
import com.sfa.operation.service.sales.IApPromotionCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@RestController
@RequestMapping("/sales/ap_promotion/core")
public class ApPromotionCoreController {
@Autowired
private IApPromotionCoreService apPromotionCoreService;
}
package com.sfa.operation.controller.sales.query;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApDisplayQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : liqiulin
* @date : 2025-09-08 13
* @describe :营销中心-活动计划-陈列查询
*/
@RestController
@RequestMapping("/sales/ap_display/query")
public class ApDisplayQueryController {
@Autowired
private IApDisplayQueryService apDisplayQueryService;
/**
* 查询条件:经销商dealer_code、计划月份sales_month、城市经理city_manager、
* @return
*/
@GetMapping("/page")
public PageInfo page(SalesApRequest salesApRequest){
return apDisplayQueryService.page(salesApRequest);
}
}
package com.sfa.operation.controller.sales.query;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApPromotionQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@RestController
@RequestMapping("/sales/ap_promotion/query")
public class ApPromotionQueryController {
@Autowired
private IApPromotionQueryService apPromotionQueryService;
@GetMapping("/page")
public PageInfo page(SalesApRequest salesApRequest){
return apPromotionQueryService.page(salesApRequest);
}
}
......@@ -91,8 +91,6 @@ public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
taskDetailDtos.forEach(detailDto -> rDetail(detailDto));
Map<String, List<RiskStoreTaskDto.RiskStoreTaskDetailDto>> detailMap = taskDetailDtos.stream().collect(Collectors.groupingBy(RiskStoreTaskDto.RiskStoreTaskDetailDto::getDetailName));
tDto.setDetailMap(detailMap);
return tDto;
}
......
package com.sfa.operation.domain.sales.dao;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.response.SalesApDisplayDto;
/**
* @author : liqiulin
* @date : 2025-09-08 14
* @describe :
*/
public interface ISalesApDisplayDao {
PageInfo page(SalesApWq salesApWq);
void updateDetail(SalesApDisplayDto salesApDisplayDto);
}
package com.sfa.operation.domain.sales.dao;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.sales.wq.SalesApWq;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
public interface ISalesApPromotionDao {
PageInfo page(SalesApWq salesApWq);
}
package com.sfa.operation.domain.sales.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.core.web.page.TableSupport;
import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao;
import com.sfa.operation.domain.sales.entity.SalesApDisplay;
import com.sfa.operation.domain.sales.mapper.SalesApDisplayMapper;
import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.response.SalesApDisplayDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2025-09-08 14
* @describe :
*/
@DS("bi")
@Service
public class SalesApDisplayDaoImpl implements ISalesApDisplayDao {
@Autowired
private SalesApDisplayMapper salesapdisMapper;
@Override
public PageInfo page(SalesApWq salesApWq) {
LambdaQueryWrapper<SalesApDisplay> qw = buildWq(salesApWq);
Page<SalesApDisplay> salesApDisplayPage = salesapdisMapper.selectPage(TableSupport.pageI(), qw);
PageInfo pageInfo = new PageInfo(salesApDisplayPage);
return pageInfo;
}
@Override
public void updateDetail(SalesApDisplayDto salesApDisplayDto) {
SalesApDisplay updateDo = new SalesApDisplay();
BeanUtils.copyProperties(salesApDisplayDto,updateDo);
salesapdisMapper.updateById(updateDo);
}
private LambdaQueryWrapper<SalesApDisplay> buildWq(SalesApWq salesApWq) {
LambdaQueryWrapper<SalesApDisplay> qw = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(salesApWq.getDealerCode())) {
qw.eq(SalesApDisplay::getDealerCode, salesApWq.getDealerCode());
}
if (StringUtils.isNotBlank(salesApWq.getCityManager())) {
qw.eq(SalesApDisplay::getCityManager, salesApWq.getCityManager());
}
if (Objects.nonNull(salesApWq.getSalesMonth())){
qw.eq(SalesApDisplay::getSalesMonth, salesApWq.getSalesMonth());
}
return qw;
}
}
package com.sfa.operation.domain.sales.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.core.web.page.TableSupport;
import com.sfa.operation.domain.sales.dao.ISalesApPromotionDao;
import com.sfa.operation.domain.sales.entity.SalesApPromotion;
import com.sfa.operation.domain.sales.mapper.SalesApPromotionMapper;
import com.sfa.operation.domain.sales.wq.SalesApWq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@DS("bi")
@Service
public class SalesApPromotionImplDao implements ISalesApPromotionDao {
@Autowired
private SalesApPromotionMapper salesApPromotionMapper;
@Override
public PageInfo page(SalesApWq salesApWq) {
LambdaQueryWrapper<SalesApPromotion> qw = buildWq(salesApWq);
Page<SalesApPromotion> salesApDisplayPage = salesApPromotionMapper.selectPage(TableSupport.pageI(), qw);
PageInfo pageInfo = new PageInfo(salesApDisplayPage);
return pageInfo;
}
private LambdaQueryWrapper<SalesApPromotion> buildWq(SalesApWq salesApWq) {
LambdaQueryWrapper<SalesApPromotion> qw = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(salesApWq.getDealerCode())) {
qw.eq(SalesApPromotion::getDealerCode, salesApWq.getDealerCode());
}
if (StringUtils.isNotBlank(salesApWq.getCityManager())) {
qw.eq(SalesApPromotion::getCityManager, salesApWq.getCityManager());
}
if (Objects.nonNull(salesApWq.getSalesMonth())){
qw.eq(SalesApPromotion::getSalesMonth, salesApWq.getSalesMonth());
}
return qw;
}
}
package com.sfa.operation.domain.sales.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 营销中心-活动计划-陈列(计划+执行)
* @TableName sales_ap_display
*/
@TableName(value ="sales_ap_display")
@Data
public class SalesApDisplay implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long sadId;
private Date salesMonth;
/**
* 销售大区
*/
private String regionName;
/**
* 销售战区
*/
private String districtName;
/**
* 经销商-省份
*/
private String dealerProvince;
/**
* 经销商-城市
*/
private String dealerCity;
/**
* 经销商-代码
*/
private String dealerCode;
/**
* 经销商名称
*/
private String dealerName;
/**
* 经销商-类型
*/
private String dealerType;
/**
* 开户日期
*/
private Date openingDate;
/**
* 闭户日期
*/
private Date closingDate;
/**
* 大区总监
*/
private String regionManager;
/**
* 战区经理
*/
private String districtManager;
/**
* 城市经理
*/
private String cityManager;
/**
* 门店编码
*/
private String storeCode;
/**
* 门店名称
*/
private String storeName;
/**
* 门店-省份
*/
private String storeProvince;
/**
* 门店-城市
*/
private String storeCity;
/**
* 系统名称
*/
private String lineName;
/**
* 系统类型
*/
private String lineType;
/**
* 渠道大类
*/
private String channelDl;
/**
* 渠道小类
*/
private String channelXl;
/**
* 门店类型
*/
private String storeType;
/**
* 系统业态
*/
private String systemFormat;
/**
* 门店面积
*/
private String storeArea;
/**
* 门店分级(销量坎级)
*/
private String storeLevel;
/**
* 门店地址
*/
private String storeAddress;
/**
* 品项数
*/
private String productCount;
/**
* 大业态测试-动销模型
*/
private String lfSalesModel;
/**
* 大业态测试-月均POS
*/
private String lfMonthlyPos;
/**
* 计划主货架-形式
*/
private String plannedMainShelfType;
/**
* 计划主货架-数量
*/
private Integer plannedMainShelfQty;
/**
* 计划主货架-单个费用
*/
private BigDecimal plannedMainShelfUnitCost;
/**
* 计划主货架-总费用
*/
private BigDecimal plannedMainShelfTotalCost;
/**
* 实际主货架-形式
*/
private String actualMainShelfType;
/**
* 实际主货架-数量
*/
private Integer actualMainShelfQty;
/**
* 实际主货架-是否执行
*/
private String actualMainShelfExecuted;
/**
* 计划端架-数量
*/
private Double plannedEndCapQty;
/**
* 计划端架-总费用
*/
private BigDecimal plannedEndCapTotalCost;
/**
* 计划端架-单个费用
*/
private BigDecimal plannedEndCapUnitCost;
/**
* 实际端架-数量
*/
private Double actualEndCapQty;
/**
* 实际端架-是否执行
*/
private String actualEndCapExecuted;
/**
* 计划地堆-平米数(㎡)
*/
private Double plannedFloorStackArea;
/**
* 计划地堆-数量
*/
private Integer plannedFloorStackQty;
/**
* 计划主题地堆-是否
*/
private String plannedThemedFloorStack;
/**
* 计划地堆-总费用
*/
private BigDecimal plannedFloorStackTotalCost;
/**
* 计划折算1㎡-单个费用
*/
private BigDecimal plannedFloorStackUnitCostPerSqm;
/**
* 实际地堆-平米数(㎡)
*/
private Double actualFloorStackArea;
/**
* 实际地堆-数量
*/
private Integer actualFloorStackQty;
/**
* 实际主题地堆-是否
*/
private String actualThemedFloorStack;
/**
* 实际地堆是否执行
*/
private String actualFloorStackExecuted;
/**
* 计划多点陈列-数量+形式
*/
private String plannedMultiDisplay;
/**
* 计划多点陈列-总费用
*/
private BigDecimal plannedMultiDisplayTotalCost;
/**
* 实际多点陈列-数量+形式
*/
private String actualMultiDisplay;
/**
* 实际多点陈列-是否执行
*/
private String actualMultiDisplayExecuted;
/**
* 合计费用-费用
*/
private BigDecimal totalCost;
/**
* 合计费用-费率(%)
*/
private Double totalCostRate;
/**
* 常规陈列是否执行
*/
private String regularDisplayExecuted;
/**
* 综合标签-拜访辅助列
*/
private String visitAssistTag;
/**
* 付费陈列- 是否
*/
private String paidDisplay;
/**
* 当月拜访目标
*/
private String monthlyVisitTarget;
/**
* 当月是否拜访
*/
private String monthlyVisited;
private Date createTime;
private String updateBy;
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.operation.domain.sales.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 营销中心-活动计划-档期(计划+执行)
* @TableName sales_ap_promotion
*/
@TableName(value ="sales_ap_promotion")
@Data
public class SalesApPromotion implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long sapId;
private Date salesMonth;
/**
* 销售大区
*/
private String regionName;
/**
* 销售战区
*/
private String districtName;
/**
* 经销商-省份
*/
private String dealerProvince;
/**
* 经销商-城市
*/
private String dealerCity;
/**
* 经销商-代码
*/
private String dealerCode;
/**
* 经销商名称
*/
private String dealerName;
/**
* 经销商类型
*/
private String dealerType;
/**
* 开户日期
*/
private Date openingDate;
/**
* 闭户日期
*/
private Date closingDate;
/**
* 大区总监
*/
private String regionManager;
/**
* 战区经理
*/
private String districtManager;
/**
* 城市经理
*/
private String cityManager;
/**
* 系统名称
*/
private String lineName;
/**
* 系统类型
*/
private String lineType;
/**
* 渠道大类
*/
private String channelDl;
/**
* 渠道小类
*/
private String channelXl;
/**
* 系统业态
*/
private String lineLf;
/**
* 门店数
*/
private String storeCount;
/**
* 档期执行月份
*/
private String promotionExecutionMonth;
/**
* 档期计划-促销规格
*/
private String plannedPromotionSpec;
/**
* 档期计划-促销口味
*/
private String plannedPromotionFlavor;
/**
* 档期执行-促销规格
*/
private String actualPromotionSpec;
/**
* 档期执行-促销口味
*/
private String actualPromotionFlavor;
/**
* 档期规格是否执行
*/
private String specExecutionStatus;
/**
* 合计费用
*/
private BigDecimal totalCost;
/**
* 合计费率(%)
*/
private Double totalCostRate;
/**
* 计划-档期形式
*/
private String plannedPromotionFormat;
/**
* 计划-核销方式
*/
private String plannedVerificationMethod;
/**
* 计划-档期规则
*/
private String plannedPromotionRules;
/**
* 计划-档期前补差天数
*/
private Integer plannedPrePromotionAdjustDays;
/**
* 计划-档期后补差天数
*/
private Integer plannedPostPromotionAdjustDays;
/**
* 计划-档期开始时间
*/
private Date plannedPromotionStartDate;
/**
* 实际-档期开始时间
*/
private Date actualPromotionStartDate;
/**
* 计划-档期结束时间
*/
private Date plannedPromotionEndDate;
/**
* 实际-档期结束时间
*/
private Date actualPromotionEndDate;
/**
* 档期是否开展
*/
private String promotionImplementationStatus;
/**
* 时间是否执行
*/
private String timeExecutionStatus;
/**
* 计划-补差开始时间
*/
private Date plannedAdjustmentStartDate;
/**
* 计划-补差结束时间
*/
private Date plannedAdjustmentEndDate;
/**
* 计划促销机制
*/
private String plannedPromotionMechanism;
/**
* 实际促销机制
*/
private String actualPromotionMechanism;
/**
* 促销机制是否执行
*/
private String promotionMechanismExecutionStatus;
/**
* 预估袋数
*/
private Integer estimatedBagCount;
/**
* 档期备货量(袋)
*/
private Integer promotionStockQuantity;
/**
* 单包厂价(单包)
*/
private BigDecimal unitFactoryPrice;
/**
* 正常供价(单包)
*/
private BigDecimal normalSupplyPrice;
/**
* 日常零售价(单包)
*/
private BigDecimal regularRetailPrice;
/**
* 计划促销售价(单包)
*/
private BigDecimal plannedPromotionPrice;
/**
* 实际促销售价(单包)
*/
private BigDecimal actualPromotionPrice;
/**
* 促销价是否执行
*/
private String promotionPriceExecutionStatus;
/**
* 正常经销商毛利现状
*/
private String normalDealerMarginStatus;
/**
* 系统前台毛利保证
*/
private String systemFrontendMarginGuarantee;
/**
* 系统后台毛利保证
*/
private String systemBackendMarginGuarantee;
/**
* 系统促销毛利保证
*/
private String systemPromotionMarginGuarantee;
/**
* 经销商毛利保证
*/
private String dealerMarginGuarantee;
/**
* 单袋补差金额(费用)
*/
private BigDecimal unitBagAdjustmentAmount;
/**
* 补差费比(%)
*/
private Double adjustmentCostRatio;
/**
* 整体补差(费用)
*/
private BigDecimal totalAdjustmentCost;
/**
* 档期是否执行
*/
private String promotionExecutionStatus;
/**
* 计划-海报形式
*/
private String plannedPosterFormat;
/**
* 计划-海报费用
*/
private String plannedPosterCost;
/**
* 实际-海报形式
*/
private String actualPosterFormat;
/**
* 海报是否执行
*/
private String posterExecutionStatus;
/**
* 门店数
*/
private Integer storeCountInt;
/**
* 店均费用
*/
private BigDecimal averageStoreCost;
/**
* 费用
*/
private BigDecimal cost;
private Date createTime;
private String updateBy;
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.operation.domain.sales.mapper;
import com.sfa.operation.domain.sales.entity.SalesApDisplay;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【sales_ap_display(营销中心-活动计划-陈列(计划+执行))】的数据库操作Mapper
* @createDate 2025-09-05 15:19:34
* @Entity com.sfa.operation.domain.sales.entity.mapper.SalesApDisplay
*/
@Repository
public interface SalesApDisplayMapper extends BaseMapper<SalesApDisplay> {
}
package com.sfa.operation.domain.sales.mapper;
import com.sfa.operation.domain.sales.entity.SalesApPromotion;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【sales_ap_promotion(营销中心-活动计划-档期(计划+执行))】的数据库操作Mapper
* @createDate 2025-09-17 15:09:31
* @Entity com.sfa.operation.domain.sales.entity.SalesApPromotion
*/
@Repository
public interface SalesApPromotionMapper extends BaseMapper<SalesApPromotion> {
}
package com.sfa.operation.domain.sales.wq;
import lombok.Data;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2025-09-16 14
* @describe :
*/
@Data
public class SalesApWq {
private String dealerCode;
private Date salesMonth;
private String cityManager;
}
package com.sfa.operation.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author : liqiulin
* @date : 2024-11-08 11
* @describe :
*/
@AllArgsConstructor
@Getter
public enum KqEnum {
FIR_CLOCK(1,"上班卡"),
SEC_CLOCK(2,"午班卡"),
THI_CLOCK(3,"下班卡")
;
private Integer kqType;
private String kqTypeMsg;
}
package com.sfa.operation.pojo.sales.request;
import lombok.Data;
/**
* @author : liqiulin
* @date : 2025-09-16 14
* @describe :
*/
@Data
public class SalesApRequest {
private String dealerCode;
private String salesMonth;
private String cityManager;
private Long sadId;
private Display display;
@Data
public static class Display{
/**
* 实际主货架-形式
*/
private String actualMainShelfType;
/**
* 实际主货架-数量
*/
private Integer actualMainShelfQty;
/**
* 实际主货架-是否执行
*/
private String actualMainShelfExecuted;
/**
* 实际端架-数量
*/
private Double actualEndCapQty;
/**
* 实际端架-是否执行
*/
private String actualEndCapExecuted;
/**
* 实际地堆-平米数(㎡)
*/
private Double actualFloorStackArea;
/**
* 实际地堆-数量
*/
private Integer actualFloorStackQty;
/**
* 实际主题地堆-是否
*/
private String actualThemedFloorStack;
/**
* 实际地堆是否执行
*/
private String actualFloorStackExecuted;
/**
* 实际多点陈列-数量+形式
*/
private String actualMultiDisplay;
/**
* 实际多点陈列-是否执行
*/
private String actualMultiDisplayExecuted;
/**
* 常规陈列是否执行
*/
private String regularDisplayExecuted;
}
}
package com.sfa.operation.pojo.sales.response;
import lombok.Data;
/**
* @author : liqiulin
* @date : 2025-09-16 18
* @describe :
*/
@Data
public class SalesApDisplayDto {
private Long sadId;
/**
* 实际主货架-形式
*/
private String actualMainShelfType;
/**
* 实际主货架-数量
*/
private Integer actualMainShelfQty;
/**
* 实际主货架-是否执行
*/
private String actualMainShelfExecuted;
/**
* 实际端架-数量
*/
private Double actualEndCapQty;
/**
* 实际端架-是否执行
*/
private String actualEndCapExecuted;
/**
* 实际地堆-平米数(㎡)
*/
private Double actualFloorStackArea;
/**
* 实际地堆-数量
*/
private Integer actualFloorStackQty;
/**
* 实际主题地堆-是否
*/
private String actualThemedFloorStack;
/**
* 实际地堆是否执行
*/
private String actualFloorStackExecuted;
/**
* 实际多点陈列-数量+形式
*/
private String actualMultiDisplay;
/**
* 实际多点陈列-是否执行
*/
private String actualMultiDisplayExecuted;
/**
* 常规陈列是否执行
*/
private String regularDisplayExecuted;
}
package com.sfa.operation.service.sales;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
/**
* @author : liqiulin
* @date : 2025-09-16 16
* @describe :
*/
public interface IApDisplayCoreService {
void updateDetail(SalesApRequest request);
}
package com.sfa.operation.service.sales;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
/**
* @author : liqiulin
* @date : 2025-09-08 14
* @describe :
*/
public interface IApDisplayQueryService {
PageInfo page(SalesApRequest salesApRequest);
}
package com.sfa.operation.service.sales;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
public interface IApPromotionCoreService {
}
package com.sfa.operation.service.sales;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
public interface IApPromotionQueryService {
PageInfo page(SalesApRequest salesApRequest);
}
package com.sfa.operation.service.sales.impl;
import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.pojo.sales.response.SalesApDisplayDto;
import com.sfa.operation.service.sales.IApDisplayCoreService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-09-16 16
* @describe :
*/
@Service
public class ApDisplayCoreServiceImpl implements IApDisplayCoreService {
@Autowired
ISalesApDisplayDao salesApDisplayDao;
@Override
public void updateDetail(SalesApRequest request) {
SalesApDisplayDto salesApDisplayDto = new SalesApDisplayDto();
BeanUtils.copyProperties(request.getDisplay(), salesApDisplayDto);
salesApDisplayDto.setSadId(request.getSadId());
salesApDisplayDao.updateDetail(salesApDisplayDto);
}
}
package com.sfa.operation.service.sales.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.sales.dao.ISalesApDisplayDao;
import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApDisplayQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-09-08 14
* @describe :
*/
@Service
public class ApDisplayQueryServiceImpl implements IApDisplayQueryService {
@Autowired
private ISalesApDisplayDao salesApDisplayDao;
@Override
public PageInfo page(SalesApRequest salesApRequest) {
SalesApWq salesApWq = new SalesApWq();
BeanUtils.copyProperties(salesApRequest,salesApWq);
salesApWq.setSalesMonth(salesApRequest.getSalesMonth() != null ? DateUtil.parse(salesApRequest.getSalesMonth() + "-01", DatePattern.NORM_DATE_PATTERN) : null);
return salesApDisplayDao.page(salesApWq);
}
}
package com.sfa.operation.service.sales.impl;
import com.sfa.operation.service.sales.IApPromotionCoreService;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@Service
public class ApPromotionCoreServiceImpl implements IApPromotionCoreService {
}
package com.sfa.operation.service.sales.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.sales.dao.ISalesApPromotionDao;
import com.sfa.operation.domain.sales.wq.SalesApWq;
import com.sfa.operation.pojo.sales.request.SalesApRequest;
import com.sfa.operation.service.sales.IApPromotionQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-09-17 15
* @describe :
*/
@Service
public class ApPromotionQueryServiceImpl implements IApPromotionQueryService {
@Autowired
private ISalesApPromotionDao salesApPromotionDao;
@Override
public PageInfo page(SalesApRequest salesApRequest) {
SalesApWq salesApWq = new SalesApWq();
BeanUtils.copyProperties(salesApRequest,salesApWq);
salesApWq.setSalesMonth(salesApRequest.getSalesMonth() != null ? DateUtil.parse(salesApRequest.getSalesMonth() + "-01", DatePattern.NORM_DATE_PATTERN) : null);
return salesApPromotionDao.page(salesApWq);
}
}
<?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.sfa.operation.domain.sales.mapper.SalesApDisplayMapper">
<resultMap id="SalesApDisplayBash" type="com.sfa.operation.domain.sales.entity.SalesApDisplay">
<id property="sadId" column="sad_id" jdbcType="BIGINT"/>
<result property="regionName" column="region_name" jdbcType="VARCHAR"/>
<result property="districtName" column="district_name" jdbcType="VARCHAR"/>
<result property="dealerProvince" column="dealer_province" jdbcType="VARCHAR"/>
<result property="dealerCity" column="dealer_city" jdbcType="VARCHAR"/>
<result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="dealerType" column="dealer_type" jdbcType="VARCHAR"/>
<result property="openingDate" column="opening_date" jdbcType="DATE"/>
<result property="closingDate" column="closing_date" jdbcType="DATE"/>
<result property="regionManager" column="region_manager" jdbcType="VARCHAR"/>
<result property="districtManager" column="district_manager" jdbcType="VARCHAR"/>
<result property="cityManager" column="city_manager" jdbcType="VARCHAR"/>
<result property="storeCode" column="store_code" jdbcType="VARCHAR"/>
<result property="storeName" column="store_name" jdbcType="VARCHAR"/>
<result property="storeProvince" column="store_province" jdbcType="VARCHAR"/>
<result property="storeCity" column="store_city" jdbcType="VARCHAR"/>
<result property="lineName" column="line_name" jdbcType="VARCHAR"/>
<result property="lineType" column="line_type" jdbcType="VARCHAR"/>
<result property="channelDl" column="channel_dl" jdbcType="VARCHAR"/>
<result property="channelXl" column="channel_xl" jdbcType="VARCHAR"/>
<result property="storeType" column="store_type" jdbcType="VARCHAR"/>
<result property="systemFormat" column="system_format" jdbcType="VARCHAR"/>
<result property="storeArea" column="store_area" jdbcType="VARCHAR"/>
<result property="storeLevel" column="store_level" jdbcType="VARCHAR"/>
<result property="storeAddress" column="store_address" jdbcType="VARCHAR"/>
<result property="productCount" column="product_count" jdbcType="VARCHAR"/>
<result property="lfSalesModel" column="lf_sales_model" jdbcType="VARCHAR"/>
<result property="lfMonthlyPos" column="lf_monthly_pos" jdbcType="VARCHAR"/>
<result property="plannedMainShelfType" column="planned_main_shelf_type" jdbcType="VARCHAR"/>
<result property="plannedMainShelfQty" column="planned_main_shelf_qty" jdbcType="INTEGER"/>
<result property="plannedMainShelfUnitCost" column="planned_main_shelf_unit_cost" jdbcType="DECIMAL"/>
<result property="plannedMainShelfTotalCost" column="planned_main_shelf_total_cost" jdbcType="DECIMAL"/>
<result property="actualMainShelfType" column="actual_main_shelf_type" jdbcType="VARCHAR"/>
<result property="actualMainShelfQty" column="actual_main_shelf_qty" jdbcType="INTEGER"/>
<result property="actualMainShelfExecuted" column="actual_main_shelf_executed" jdbcType="VARCHAR"/>
<result property="plannedEndCapQty" column="planned_end_cap_qty" jdbcType="FLOAT"/>
<result property="plannedEndCapTotalCost" column="planned_end_cap_total_cost" jdbcType="DECIMAL"/>
<result property="plannedEndCapUnitCost" column="planned_end_cap_unit_cost" jdbcType="DECIMAL"/>
<result property="actualEndCapQty" column="actual_end_cap_qty" jdbcType="FLOAT"/>
<result property="actualEndCapExecuted" column="actual_end_cap_executed" jdbcType="VARCHAR"/>
<result property="plannedFloorStackArea" column="planned_floor_stack_area" jdbcType="FLOAT"/>
<result property="plannedFloorStackQty" column="planned_floor_stack_qty" jdbcType="INTEGER"/>
<result property="plannedThemedFloorStack" column="planned_themed_floor_stack" jdbcType="VARCHAR"/>
<result property="plannedFloorStackTotalCost" column="planned_floor_stack_total_cost" jdbcType="DECIMAL"/>
<result property="plannedFloorStackUnitCostPerSqm" column="planned_floor_stack_unit_cost_per_sqm" jdbcType="DECIMAL"/>
<result property="actualFloorStackArea" column="actual_floor_stack_area" jdbcType="FLOAT"/>
<result property="actualFloorStackQty" column="actual_floor_stack_qty" jdbcType="INTEGER"/>
<result property="actualThemedFloorStack" column="actual_themed_floor_stack" jdbcType="VARCHAR"/>
<result property="actualFloorStackExecuted" column="actual_floor_stack_executed" jdbcType="VARCHAR"/>
<result property="plannedMultiDisplay" column="planned_multi_display" jdbcType="VARCHAR"/>
<result property="plannedMultiDisplayTotalCost" column="planned_multi_display_total_cost" jdbcType="DECIMAL"/>
<result property="actualMultiDisplay" column="actual_multi_display" jdbcType="VARCHAR"/>
<result property="actualMultiDisplayExecuted" column="actual_multi_display_executed" jdbcType="VARCHAR"/>
<result property="totalCost" column="total_cost" jdbcType="DECIMAL"/>
<result property="totalCostRate" column="total_cost_rate" jdbcType="FLOAT"/>
<result property="regularDisplayExecuted" column="regular_display_executed" jdbcType="VARCHAR"/>
<result property="visitAssistTag" column="visit_assist_tag" jdbcType="VARCHAR"/>
<result property="paidDisplay" column="paid_display" jdbcType="VARCHAR"/>
<result property="monthlyVisitTarget" column="monthly_visit_target" jdbcType="VARCHAR"/>
<result property="monthlyVisited" column="monthly_visited" jdbcType="VARCHAR"/>
</resultMap>
</mapper>
<?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.sfa.operation.domain.sales.mapper.SalesApPromotionMapper">
<resultMap id="SalesApPromotionBaseMap" type="com.sfa.operation.domain.sales.entity.SalesApPromotion">
<id property="sapId" column="sap_id" jdbcType="BIGINT"/>
<result property="regionName" column="region_name" jdbcType="VARCHAR"/>
<result property="districtName" column="district_name" jdbcType="VARCHAR"/>
<result property="dealerProvince" column="dealer_province" jdbcType="VARCHAR"/>
<result property="dealerCity" column="dealer_city" jdbcType="VARCHAR"/>
<result property="dealerCode" column="dealer_code" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="dealerType" column="dealer_type" jdbcType="VARCHAR"/>
<result property="openingDate" column="opening_date" jdbcType="DATE"/>
<result property="closingDate" column="closing_date" jdbcType="DATE"/>
<result property="regionManager" column="region_manager" jdbcType="VARCHAR"/>
<result property="districtManager" column="district_manager" jdbcType="VARCHAR"/>
<result property="cityManager" column="city_manager" jdbcType="VARCHAR"/>
<result property="lineName" column="line_name" jdbcType="VARCHAR"/>
<result property="lineType" column="line_type" jdbcType="VARCHAR"/>
<result property="channelDl" column="channel_dl" jdbcType="VARCHAR"/>
<result property="channelXl" column="channel_xl" jdbcType="VARCHAR"/>
<result property="lineLf" column="line_lf" jdbcType="VARCHAR"/>
<result property="storeCount" column="store_count" jdbcType="VARCHAR"/>
<result property="promotionExecutionMonth" column="promotion_execution_month" jdbcType="VARCHAR"/>
<result property="plannedPromotionSpec" column="planned_promotion_spec" jdbcType="VARCHAR"/>
<result property="plannedPromotionFlavor" column="planned_promotion_flavor" jdbcType="VARCHAR"/>
<result property="actualPromotionSpec" column="actual_promotion_spec" jdbcType="VARCHAR"/>
<result property="actualPromotionFlavor" column="actual_promotion_flavor" jdbcType="VARCHAR"/>
<result property="specExecutionStatus" column="spec_execution_status" jdbcType="VARCHAR"/>
<result property="totalCost" column="total_cost" jdbcType="DECIMAL"/>
<result property="totalCostRate" column="total_cost_rate" jdbcType="FLOAT"/>
<result property="plannedPromotionFormat" column="planned_promotion_format" jdbcType="VARCHAR"/>
<result property="plannedVerificationMethod" column="planned_verification_method" jdbcType="VARCHAR"/>
<result property="plannedPromotionRules" column="planned_promotion_rules" jdbcType="VARCHAR"/>
<result property="plannedPrePromotionAdjustDays" column="planned_pre_promotion_adjust_days" jdbcType="INTEGER"/>
<result property="plannedPostPromotionAdjustDays" column="planned_post_promotion_adjust_days" jdbcType="INTEGER"/>
<result property="plannedPromotionStartDate" column="planned_promotion_start_date" jdbcType="DATE"/>
<result property="actualPromotionStartDate" column="actual_promotion_start_date" jdbcType="DATE"/>
<result property="plannedPromotionEndDate" column="planned_promotion_end_date" jdbcType="DATE"/>
<result property="actualPromotionEndDate" column="actual_promotion_end_date" jdbcType="DATE"/>
<result property="promotionImplementationStatus" column="promotion_implementation_status" jdbcType="VARCHAR"/>
<result property="timeExecutionStatus" column="time_execution_status" jdbcType="VARCHAR"/>
<result property="plannedAdjustmentStartDate" column="planned_adjustment_start_date" jdbcType="DATE"/>
<result property="plannedAdjustmentEndDate" column="planned_adjustment_end_date" jdbcType="DATE"/>
<result property="plannedPromotionMechanism" column="planned_promotion_mechanism" jdbcType="VARCHAR"/>
<result property="actualPromotionMechanism" column="actual_promotion_mechanism" jdbcType="VARCHAR"/>
<result property="promotionMechanismExecutionStatus" column="promotion_mechanism_execution_status" jdbcType="VARCHAR"/>
<result property="estimatedBagCount" column="estimated_bag_count" jdbcType="INTEGER"/>
<result property="promotionStockQuantity" column="promotion_stock_quantity" jdbcType="INTEGER"/>
<result property="unitFactoryPrice" column="unit_factory_price" jdbcType="DECIMAL"/>
<result property="normalSupplyPrice" column="normal_supply_price" jdbcType="DECIMAL"/>
<result property="regularRetailPrice" column="regular_retail_price" jdbcType="DECIMAL"/>
<result property="plannedPromotionPrice" column="planned_promotion_price" jdbcType="DECIMAL"/>
<result property="actualPromotionPrice" column="actual_promotion_price" jdbcType="DECIMAL"/>
<result property="promotionPriceExecutionStatus" column="promotion_price_execution_status" jdbcType="VARCHAR"/>
<result property="normalDealerMarginStatus" column="normal_dealer_margin_status" jdbcType="VARCHAR"/>
<result property="systemFrontendMarginGuarantee" column="system_frontend_margin_guarantee" jdbcType="VARCHAR"/>
<result property="systemBackendMarginGuarantee" column="system_backend_margin_guarantee" jdbcType="VARCHAR"/>
<result property="systemPromotionMarginGuarantee" column="system_promotion_margin_guarantee" jdbcType="VARCHAR"/>
<result property="dealerMarginGuarantee" column="dealer_margin_guarantee" jdbcType="VARCHAR"/>
<result property="unitBagAdjustmentAmount" column="unit_bag_adjustment_amount" jdbcType="DECIMAL"/>
<result property="adjustmentCostRatio" column="adjustment_cost_ratio" jdbcType="FLOAT"/>
<result property="totalAdjustmentCost" column="total_adjustment_cost" jdbcType="DECIMAL"/>
<result property="promotionExecutionStatus" column="promotion_execution_status" jdbcType="VARCHAR"/>
<result property="plannedPosterFormat" column="planned_poster_format" jdbcType="VARCHAR"/>
<result property="plannedPosterCost" column="planned_poster_cost" jdbcType="VARCHAR"/>
<result property="actualPosterFormat" column="actual_poster_format" jdbcType="VARCHAR"/>
<result property="posterExecutionStatus" column="poster_execution_status" jdbcType="VARCHAR"/>
<result property="storeCountInt" column="store_count_int" jdbcType="INTEGER"/>
<result property="averageStoreCost" column="average_store_cost" jdbcType="DECIMAL"/>
<result property="cost" column="cost" jdbcType="DECIMAL"/>
</resultMap>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论