master:档口客户、档口产品列表数据完善;
parent
dc5d51a40c
commit
19ac11d9e2
|
|
@ -102,8 +102,8 @@ public class StoreCustomerController extends XktBaseController {
|
|||
@PreAuthorize("@ss.hasPermi('system:customer:list')")
|
||||
@ApiOperation(value = "查询档口客户列表", httpMethod = "GET", response = R.class)
|
||||
@PostMapping("/page")
|
||||
public Page<StoreCusPageResDTO> selectPage(@Validated @RequestBody StoreCusPageVO pageVO) {
|
||||
return storeCusService.selectPage(ObjectUtils.isEmpty(pageVO) ? null : BeanUtil.toBean(pageVO, StoreCusPageDTO.class));
|
||||
public Page selectPage(@Validated @RequestBody StoreCusPageVO pageVO) {
|
||||
return storeCusService.selectPage(BeanUtil.toBean(pageVO, StoreCusPageDTO.class));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@ public class StoreProductController extends XktBaseController {
|
|||
@PreAuthorize("@ss.hasPermi('system:product:list')")
|
||||
@ApiOperation(value = "查询档口商品列表", httpMethod = "POST", response = R.class)
|
||||
@PostMapping("/page")
|
||||
public Page<StoreProdPageDTO> page(@Validated @RequestBody StoreProdPageVO pageVO) {
|
||||
return storeProdService.page(ObjectUtils.isEmpty(pageVO) ? null : BeanUtil.toBean(pageVO, StoreProdPageDTO.class));
|
||||
public Page page(@Validated @RequestBody StoreProdPageVO pageVO) {
|
||||
return storeProdService.page(BeanUtil.toBean(pageVO, StoreProdPageDTO.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -4,13 +4,15 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.XktBaseController;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.page.Page;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusGeneralSaleVO;
|
||||
import com.ruoyi.web.controller.xkt.vo.storeSale.StoreSalePageVO;
|
||||
import com.ruoyi.web.controller.xkt.vo.storeSale.StoreSaleVO;
|
||||
import com.ruoyi.xkt.domain.StoreSale;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSaleDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageDTO;
|
||||
import com.ruoyi.xkt.service.IStoreSaleService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -47,6 +49,17 @@ public class StoreSaleController extends XktBaseController {
|
|||
return success(BeanUtil.toBean(storeSaleService.getCusGeneralSale(days, storeId, storeCusId), StoreCusGeneralSaleVO.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询档口销售出库列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:sale:list')")
|
||||
@ApiOperation(value = "查询档口销售出库列表", httpMethod = "POST", response = R.class)
|
||||
@PostMapping("/page")
|
||||
public Page page(@Validated @RequestBody StoreSalePageVO salePageVO) {
|
||||
return storeSaleService.page(BeanUtil.toBean(salePageVO, StoreSalePageDTO.class));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增档口销售出库
|
||||
*/
|
||||
|
|
@ -58,32 +71,35 @@ public class StoreSaleController extends XktBaseController {
|
|||
return success(storeSaleService.insertStoreSale(BeanUtil.toBean(storeSaleVO, StoreSaleDTO.class)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询档口销售出库列表
|
||||
* 修改档口销售出库
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:sale:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(StoreSale storeSale) {
|
||||
startPage();
|
||||
List<StoreSale> list = storeSaleService.selectStoreSaleList(storeSale);
|
||||
return getDataTable(list);
|
||||
@PreAuthorize("@ss.hasPermi('system:sale:edit')")
|
||||
@Log(title = "修改档口销售出库", businessType = BusinessType.UPDATE)
|
||||
@ApiOperation(value = "修改档口销售出库", httpMethod = "PUT", response = R.class)
|
||||
@PutMapping
|
||||
public R edit(@Validated @RequestBody StoreSaleVO storeSaleVO) {
|
||||
return success(storeSaleService.updateStoreSale(BeanUtil.toBean(storeSaleVO, StoreSaleDTO.class)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导出档口销售出库列表
|
||||
*/
|
||||
|
|
@ -106,16 +122,6 @@ public class StoreSaleController extends XktBaseController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改档口销售出库
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:sale:edit')")
|
||||
@Log(title = "档口销售出库", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public R edit(@RequestBody StoreSale storeSale) {
|
||||
return success(storeSaleService.updateStoreSale(storeSale));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除档口销售出库
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
|
|
@ -13,8 +15,10 @@ import lombok.Data;
|
|||
@Data
|
||||
public class BasePageVO {
|
||||
|
||||
@NotNull(message = "pageNum不能为空")
|
||||
@ApiModelProperty(name = "pageNum")
|
||||
private int pageNum;
|
||||
@NotNull(message = "pageSize不能为空")
|
||||
@ApiModelProperty(name = "pageSize")
|
||||
private int pageSize;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package com.ruoyi.web.controller.xkt.vo.storeSale;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.web.controller.xkt.vo.BasePageVO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("档口销售出库单分页查询入参")
|
||||
@Data
|
||||
public class StoreSalePageVO extends BasePageVO {
|
||||
|
||||
@NotNull(message = "档口ID不能为空")
|
||||
@ApiModelProperty(name = "档口ID")
|
||||
private Long storeId;
|
||||
@ApiModelProperty(name = "商品货号")
|
||||
private String prodArtNum;
|
||||
@ApiModelProperty(name = "客户名称")
|
||||
private String cusName;
|
||||
@ApiModelProperty(name = "销售类型", notes = "普通销售、销售退货、普通销售/销售退货 GENERAL_SALE SALE_REFUND SALE_AND_REFUND")
|
||||
private String saleType;
|
||||
@ApiModelProperty(name = "结款状态")
|
||||
private String paymentStatus;
|
||||
@ApiModelProperty(name = "支付方式")
|
||||
private String payWay;
|
||||
@ApiModelProperty(name = "销售开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date createTimeStart;
|
||||
@ApiModelProperty(name = "销售结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date createTimeEnd;
|
||||
|
||||
}
|
||||
|
|
@ -21,6 +21,11 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class StoreSaleVO {
|
||||
|
||||
@NotNull(message = "是否为返单不能为空!")
|
||||
@ApiModelProperty(name = "是否为返单", notes = "true 是返单 false 不是返单")
|
||||
private Boolean refund;
|
||||
@ApiModelProperty(name = "storeSaleId", notes = "新增为空,编辑必传")
|
||||
private Long storeSaleId;
|
||||
@ApiModelProperty(name = "档口ID")
|
||||
@NotNull(message = "档口ID不能为空!")
|
||||
private Long storeId;
|
||||
|
|
@ -53,6 +58,9 @@ public class StoreSaleVO {
|
|||
@NotNull(message = "档口商品颜色尺码ID不能为空!")
|
||||
@ApiModelProperty(name = "档口商品颜色尺码ID")
|
||||
private Long storeProdColorSizeId;
|
||||
@ApiModelProperty(name = "商品货号")
|
||||
@NotBlank(message = "商品货号不能为空!")
|
||||
private String prodArtNum;
|
||||
@ApiModelProperty(name = "销售条码")
|
||||
private String sns;
|
||||
@NotNull(message = "销售单价不能为空!")
|
||||
|
|
|
|||
|
|
@ -58,18 +58,23 @@ public class Page<T> implements Serializable {
|
|||
*/
|
||||
private String msg = "操作成功";
|
||||
|
||||
public static <T> Page<T> convert(PageInfo<?> pageInfo) {
|
||||
return BeanUtil.toBean(pageInfo, Page.class);
|
||||
}
|
||||
|
||||
public static <T> Page<T> convert(PageInfo<?> pageInfo, List<T> list) {
|
||||
Page<T> page = BeanUtil.toBean(pageInfo, Page.class);
|
||||
page.setList(CollectionUtils.isEmpty(list) ? new ArrayList<>() : list);
|
||||
return page;
|
||||
}
|
||||
|
||||
public static <T> Page<T> empty() {
|
||||
|
||||
public static <T> Page<T> empty(int pageSize, int pageNum) {
|
||||
Page<T> page = new Page<>();
|
||||
page.setList(new ArrayList<>());
|
||||
page.setTotal(0);
|
||||
page.setPageNum(1);
|
||||
page.setPageSize(10);
|
||||
page.setPageNum(pageNum);
|
||||
page.setPageSize(pageSize);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,56 +30,67 @@ public class StoreSale extends XktBaseEntity {
|
|||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 档口ID
|
||||
*/
|
||||
@Excel(name = "档口ID")
|
||||
private Long storeId;
|
||||
|
||||
/**
|
||||
* 档口客户ID
|
||||
*/
|
||||
@Excel(name = "档口客户ID")
|
||||
private Long storeCusId;
|
||||
|
||||
/**
|
||||
* 销售类型(普通销售、销售退货、普通销售/销售退货)
|
||||
* 档口客户名称呢
|
||||
*/
|
||||
private String storeCusName;
|
||||
/**
|
||||
* 销售类型(普通销售、销售退货、普通销售/销售退货)GENERAL_SALE SALE_REFUND SALE_AND_REFUND
|
||||
*/
|
||||
@Excel(name = "销售类型")
|
||||
private String saleType;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@Excel(name = "单据编号")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date voucherDate;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@Excel(name = "数量")
|
||||
private Integer quantity;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
@Excel(name = "总金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 支付方式(支付宝、微信、现金、欠款)
|
||||
*/
|
||||
@Excel(name = "支付方式", readConverterExp = "支=付宝、微信、现金、欠款")
|
||||
private String payWay;
|
||||
|
||||
/**
|
||||
* 结款状态(已结清、欠款) SETTLED、DEBT
|
||||
*/
|
||||
private String paymentStatus;
|
||||
/**
|
||||
* 操作人ID
|
||||
*/
|
||||
private Long operatorId;
|
||||
/**
|
||||
* 操作人名称
|
||||
*/
|
||||
private String operatorName;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ public class StoreSaleDetail extends XktBaseEntity {
|
|||
@Excel(name = "销售类型", readConverterExp = "普=通销售、销售退货")
|
||||
private String saleType;
|
||||
|
||||
/**
|
||||
* 商品货号
|
||||
*/
|
||||
@Excel(name = "商品货号")
|
||||
private String prodArtNum;
|
||||
|
||||
/**
|
||||
* 销售单价
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.ruoyi.xkt.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.XktBaseEntity;
|
||||
import lombok.Data;
|
||||
|
|
@ -9,6 +10,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
|
|||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 档口销售返单对象 store_sale_refund_record
|
||||
|
|
@ -32,55 +34,67 @@ public class StoreSaleRefundRecord extends XktBaseEntity {
|
|||
*/
|
||||
@Excel(name = "档口销售出库ID")
|
||||
private Long storeSaleId;
|
||||
|
||||
/**
|
||||
* 档口ID
|
||||
*/
|
||||
@Excel(name = "档口ID")
|
||||
private Long storeId;
|
||||
|
||||
/**
|
||||
* 档口销售客户ID
|
||||
*/
|
||||
@Excel(name = "档口销售客户ID")
|
||||
private Long storeCusId;
|
||||
|
||||
/**
|
||||
* 档口销售商品ID
|
||||
* 档口客户名称呢
|
||||
*/
|
||||
@Excel(name = "档口销售商品ID")
|
||||
private Long storeProdId;
|
||||
|
||||
private String storeCusName;
|
||||
/**
|
||||
* 销售类型(销售、退货、销售/退货)
|
||||
* 销售类型(普通销售、销售退货、普通销售/销售退货)GENERAL_SALE SALE_REFUND SALE_AND_REFUND
|
||||
*/
|
||||
@Excel(name = "销售类型", readConverterExp = "销=售、退货、销售/退货")
|
||||
private Long saleType;
|
||||
|
||||
@Excel(name = "销售类型")
|
||||
private String saleType;
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@Excel(name = "单据编号")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 单据日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date voucherDate;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@Excel(name = "数量")
|
||||
private Integer quantity;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
@Excel(name = "总金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 支付方式
|
||||
* 支付方式(支付宝、微信、现金、欠款)
|
||||
*/
|
||||
@Excel(name = "支付方式")
|
||||
private Long payWay;
|
||||
|
||||
@Excel(name = "支付方式", readConverterExp = "支=付宝、微信、现金、欠款")
|
||||
private String payWay;
|
||||
/**
|
||||
* 结款状态(已结清、欠款) SETTLED、DEBT
|
||||
*/
|
||||
private String paymentStatus;
|
||||
/**
|
||||
* 操作人ID
|
||||
*/
|
||||
private Long operatorId;
|
||||
/**
|
||||
* 操作人名称
|
||||
*/
|
||||
private String operatorName;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
|
@ -89,7 +103,6 @@ public class StoreSaleRefundRecord extends XktBaseEntity {
|
|||
.append("storeSaleId", getStoreSaleId())
|
||||
.append("storeId", getStoreId())
|
||||
.append("storeCusId", getStoreCusId())
|
||||
.append("storeProdId", getStoreProdId())
|
||||
.append("saleType", getSaleType())
|
||||
.append("code", getCode())
|
||||
.append("quantity", getQuantity())
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@ import io.swagger.annotations.ApiModel;
|
|||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -21,49 +18,43 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class StoreSaleDTO {
|
||||
|
||||
@ApiModelProperty(name = "是否为返单", notes = "true 是返单 false 不是返单")
|
||||
private Boolean refund;
|
||||
@ApiModelProperty("档口销售ID")
|
||||
private Long storeSaleId;
|
||||
@ApiModelProperty(name = "档口ID")
|
||||
@NotNull(message = "档口ID不能为空!")
|
||||
private Long storeId;
|
||||
@ApiModelProperty(name = "档口客户ID")
|
||||
@NotNull(message = "档口客户ID不能为空!")
|
||||
private Long storeCusId;
|
||||
@ApiModelProperty(name = "销售类型(普通销售 GENERAL_SALE、销售退货 SALE_REFUND、普通销售/销售退货 SALE_AND_REFUND)")
|
||||
@NotBlank(message = "销售类型不能为空!")
|
||||
private String saleType;
|
||||
@ApiModelProperty(name = "数量")
|
||||
@NotNull(message = "数量不能为空!")
|
||||
private Integer quantity;
|
||||
@ApiModelProperty(name = "总金额")
|
||||
@NotNull(message = "总金额不能为空!")
|
||||
private BigDecimal amount;
|
||||
@NotBlank(message = "支付方式不能为空!")
|
||||
@ApiModelProperty(name = "支付方式(支付宝、微信、现金、欠款)ALIPAY WECHAT_PAY CASH DEBT")
|
||||
private String payWay;
|
||||
@NotNull(message = "销售详情列表不能为空!")
|
||||
@Valid
|
||||
@ApiModelProperty(name = "结款状态(已结清、欠款) SETTLED、DEBT")
|
||||
private String paymentStatus;
|
||||
@ApiModelProperty(name = "销售详情列表")
|
||||
private List<SaleDetailVO> detailList;
|
||||
|
||||
|
||||
@Data
|
||||
public static class SaleDetailVO {
|
||||
@NotNull(message = "档口商品ID不能为空!")
|
||||
@ApiModelProperty(name = "档口商品ID")
|
||||
private Long storeProdId;
|
||||
@NotNull(message = "档口商品颜色尺码ID不能为空!")
|
||||
@ApiModelProperty(name = "档口商品颜色尺码ID")
|
||||
private Long storeProdColorSizeId;
|
||||
@ApiModelProperty(name = "商品货号")
|
||||
private String prodArtNum;
|
||||
@ApiModelProperty(name = "销售条码")
|
||||
private String sns;
|
||||
@NotNull(message = "销售单价不能为空!")
|
||||
@ApiModelProperty(name = "销售单价")
|
||||
private BigDecimal price;
|
||||
@ApiModelProperty(name = "给客户优惠后单价")
|
||||
private BigDecimal discountedPrice;
|
||||
@ApiModelProperty(name = "数量")
|
||||
@NotNull(message = "数量不能为空!")
|
||||
private Integer quantity;
|
||||
@NotNull(message = "总金额不能为空!")
|
||||
@ApiModelProperty(name = "总金额")
|
||||
private BigDecimal amount;
|
||||
@ApiModelProperty(name = "其它优惠")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package com.ruoyi.xkt.dto.storeSale;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.xkt.dto.BasePageDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel("档口销售出库单分页查询入参")
|
||||
@Data
|
||||
public class StoreSalePageDTO extends BasePageDTO {
|
||||
|
||||
@NotNull(message = "档口ID不能为空")
|
||||
@ApiModelProperty(name = "档口ID")
|
||||
private Long storeId;
|
||||
@ApiModelProperty(name = "商品货号")
|
||||
private String prodArtNum;
|
||||
@ApiModelProperty(name = "客户名称")
|
||||
private String cusName;
|
||||
@ApiModelProperty(name = "销售类型", notes = "普通销售、销售退货、普通销售/销售退货 GENERAL_SALE SALE_REFUND SALE_AND_REFUND")
|
||||
private String saleType;
|
||||
@ApiModelProperty(name = "结款状态")
|
||||
private String paymentStatus;
|
||||
@ApiModelProperty(name = "支付方式")
|
||||
private String payWay;
|
||||
@ApiModelProperty(name = "销售开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date createTimeStart;
|
||||
@ApiModelProperty(name = "销售结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date createTimeEnd;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.ruoyi.xkt.dto.storeSale;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel("档口销售出库列表数据")
|
||||
@Data
|
||||
public class StoreSalePageResDTO {
|
||||
|
||||
@ApiModelProperty(name = "档口销售ID")
|
||||
private Long storeSaleId;
|
||||
@ApiModelProperty(name = "档口ID")
|
||||
private Long storeId;
|
||||
@ApiModelProperty("code")
|
||||
private String code;
|
||||
@ApiModelProperty(name = "客户名称")
|
||||
private String cusName;
|
||||
@ApiModelProperty(name = "销售时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
@ApiModelProperty(name = "销售类型(普通销售、销售退货、普通销售/销售退货)GENERAL_SALE SALE_REFUND SALE_AND_REFUND")
|
||||
private String saleType;
|
||||
@ApiModelProperty(name = "销售数量")
|
||||
private Integer quantity;
|
||||
@ApiModelProperty(name = "总金额")
|
||||
private BigDecimal amount;
|
||||
@ApiModelProperty(name = "结款状态")
|
||||
private String paymentStatus;
|
||||
@ApiModelProperty(name = "支付方式")
|
||||
private String payWay;
|
||||
@ApiModelProperty(name = "操作人")
|
||||
private String operatorName;
|
||||
@ApiModelProperty(name = "备注")
|
||||
private String remark;
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.xkt.domain.StoreSale;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageResDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -59,4 +61,7 @@ public interface StoreSaleMapper extends BaseMapper<StoreSale> {
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteStoreSaleByStoreSaleIds(Long[] storeSaleIds);
|
||||
|
||||
List<StoreSalePageResDTO> selectPage(StoreSalePageDTO pageDTO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
package com.ruoyi.xkt.service;
|
||||
|
||||
import com.ruoyi.common.core.page.Page;
|
||||
import com.ruoyi.xkt.domain.StoreSale;
|
||||
import com.ruoyi.xkt.dto.storeCustomer.StoreCusGeneralSaleDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSaleDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageResDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -40,10 +43,10 @@ public interface IStoreSaleService {
|
|||
/**
|
||||
* 修改档口销售出库
|
||||
*
|
||||
* @param storeSale 档口销售出库
|
||||
* @param storeSaleDTO 档口销售出库
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateStoreSale(StoreSale storeSale);
|
||||
public int updateStoreSale(StoreSaleDTO storeSaleDTO);
|
||||
|
||||
/**
|
||||
* 批量删除档口销售出库
|
||||
|
|
@ -70,4 +73,11 @@ public interface IStoreSaleService {
|
|||
*/
|
||||
StoreCusGeneralSaleDTO getCusGeneralSale(Integer days, Long storeId, Long storeCusId);
|
||||
|
||||
/**
|
||||
* 分页查询销售出库列表
|
||||
* @param pageDTO 入参
|
||||
* @return Page
|
||||
*/
|
||||
Page<StoreSalePageResDTO> page(StoreSalePageDTO pageDTO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ public class StoreProductServiceImpl implements IStoreProductService {
|
|||
List<StoreProdPageResDTO> prodList = storeProdColorMapper.selectStoreProdColorPage(pageDTO);
|
||||
// 如果查询结果为空,则直接返回空列表
|
||||
if (CollectionUtils.isEmpty(prodList)) {
|
||||
return Page.empty();
|
||||
return Page.empty(pageDTO.getPageSize(), pageDTO.getPageNum());
|
||||
}
|
||||
// 提取查询结果中的商店产品ID列表
|
||||
List<Long> storeProdIdList = prodList.stream().map(StoreProdPageResDTO::getStoreProdId).collect(Collectors.toList());
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@ package com.ruoyi.xkt.service.impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.page.Page;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.xkt.domain.StoreCustomer;
|
||||
|
|
@ -10,6 +13,8 @@ import com.ruoyi.xkt.domain.StoreSale;
|
|||
import com.ruoyi.xkt.domain.StoreSaleDetail;
|
||||
import com.ruoyi.xkt.dto.storeCustomer.StoreCusGeneralSaleDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSaleDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageDTO;
|
||||
import com.ruoyi.xkt.dto.storeSale.StoreSalePageResDTO;
|
||||
import com.ruoyi.xkt.mapper.StoreCustomerMapper;
|
||||
import com.ruoyi.xkt.mapper.StoreSaleDetailMapper;
|
||||
import com.ruoyi.xkt.mapper.StoreSaleMapper;
|
||||
|
|
@ -48,8 +53,8 @@ public class StoreSaleServiceImpl implements IStoreSaleService {
|
|||
/**
|
||||
* 获取当前档口客户的销售业绩
|
||||
*
|
||||
* @param days 查询时间diff
|
||||
* @param storeId 档口ID
|
||||
* @param days 查询时间diff
|
||||
* @param storeId 档口ID
|
||||
* @param storeCusId 档口客户ID
|
||||
* @return StoreCusGeneralSaleDTO
|
||||
*/
|
||||
|
|
@ -85,6 +90,20 @@ public class StoreSaleServiceImpl implements IStoreSaleService {
|
|||
return generalSaleDTO.setSaleAmount(saleAmount).setSaleCount(saleCount).setDebtAmount(debtAmount);
|
||||
}
|
||||
|
||||
/**
|
||||
* 销售出库列表查询
|
||||
*
|
||||
* @param pageDTO 入参
|
||||
* @return Page<StoreSalePageResDTO>
|
||||
*/
|
||||
@Override
|
||||
@Transactional(readOnly = true)
|
||||
public Page<StoreSalePageResDTO> page(StoreSalePageDTO pageDTO) {
|
||||
PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize());
|
||||
List<StoreSalePageResDTO> list = storeSaleMapper.selectPage(pageDTO);
|
||||
return Page.convert(new PageInfo<>(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增档口销售出库
|
||||
*
|
||||
|
|
@ -107,54 +126,6 @@ public class StoreSaleServiceImpl implements IStoreSaleService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询档口销售出库
|
||||
*
|
||||
|
|
@ -181,12 +152,19 @@ public class StoreSaleServiceImpl implements IStoreSaleService {
|
|||
/**
|
||||
* 修改档口销售出库
|
||||
*
|
||||
* @param storeSale 档口销售出库
|
||||
* @param storeSaleDTO 档口销售出库
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateStoreSale(StoreSale storeSale) {
|
||||
public int updateStoreSale(StoreSaleDTO storeSaleDTO) {
|
||||
StoreSale storeSale = Optional.ofNullable(this.storeSaleMapper.selectOne(new LambdaQueryWrapper<StoreSale>()
|
||||
.eq(StoreSale::getId, storeSaleDTO.getStoreSaleId()).eq(StoreSale::getDelFlag, "0")))
|
||||
.orElseThrow(() -> new ServiceException("档口销售出库订单不存在!", HttpStatus.ERROR));
|
||||
// 若为返单,则将之前数据记录到返单记录表中
|
||||
if (Objects.equals(storeSaleDTO.getRefund(), Boolean.TRUE)) {
|
||||
|
||||
}
|
||||
storeSale.setUpdateTime(DateUtils.getNowDate());
|
||||
return storeSaleMapper.updateStoreSale(storeSale);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,4 +117,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<select id="selectPage" parameterType="com.ruoyi.xkt.dto.storeSale.StoreSalePageDTO" resultType="com.ruoyi.xkt.dto.storeSale.StoreSalePageResDTO">
|
||||
SELECT
|
||||
ss.id AS storeSaleId, ss.store_id, ss.`code`, ss.store_cus_name AS cusName, ss.create_time, ss.sale_type, ss.quantity, ss.amount, ss.payment_status,
|
||||
ss.pay_way, ss.operator_name, ss.remark
|
||||
FROM
|
||||
store_sale ss
|
||||
<if test="prodArtNum != null and prodArtNum != ''"> join store_sale_detail ssd on ss.id = ssd.store_sale_id</if>
|
||||
WHERE
|
||||
ss.del_flag = 0 AND ss.store_id = #{storeId}
|
||||
<if test="prodArtNum != null and prodArtNum != ''"> and ssd.prod_art_num like concat('%', #{prodArtNum}, '%')</if>
|
||||
<if test="cusName != null and cusName != ''"> and ss.store_cus_name like concat('%', #{cusName}, '%')</if>
|
||||
<if test="saleType != null and saleType != ''"> and ss.sale_type = #{saleType}</if>
|
||||
<if test="paymentStatus != null and paymentStatus != ''"> and ss.payment_status = #{paymentStatus}</if>
|
||||
<if test="payWay != null and payWay != ''"> and ss.pay_way = #{payWay}</if>
|
||||
<if test="createTimeStart != null"> and ss.voucher_date >= #{createTimeStart}</if>
|
||||
<if test="createTimeEnd != null"> and ss.voucher_date <= #{createTimeEnd}</if>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue