소스 검색

Eccs 新增销售数据界面和 CRUD 功能

lvjian 2 년 전
부모
커밋
eb10725329

+ 104 - 0
eccs-biz/src/main/java/com/emato/biz/controller/mall/MallSalesDetailDataController.java

@@ -0,0 +1,104 @@
+package com.emato.biz.controller.mall;
+
+import java.util.List;
+
+import com.emato.biz.domain.mall.MallSalesDetailData;
+import com.emato.biz.service.mall.IMallSalesDetailDataService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.emato.common.annotation.Log;
+import com.emato.common.core.controller.BaseController;
+import com.emato.common.core.domain.AjaxResult;
+import com.emato.common.enums.BusinessType;
+import com.emato.common.utils.poi.ExcelUtil;
+import com.emato.common.core.page.TableDataInfo;
+
+/**
+ * kmall销售数据Controller
+ * 
+ * @author admin
+ * @date 2023-04-11
+ */
+@RestController
+@RequestMapping("/biz/salesdetail")
+public class MallSalesDetailDataController extends BaseController
+{
+    @Autowired
+    private IMallSalesDetailDataService mallSalesDetailDataService;
+
+    /**
+     * 查询kmall销售数据列表
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(MallSalesDetailData mallSalesDetailData)
+    {
+        startPage();
+        List<MallSalesDetailData> list = mallSalesDetailDataService.selectMallSalesDetailDataList(mallSalesDetailData);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出kmall销售数据列表
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:export')")
+    @Log(title = "kmall销售数据", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(MallSalesDetailData mallSalesDetailData)
+    {
+        List<MallSalesDetailData> list = mallSalesDetailDataService.selectMallSalesDetailDataList(mallSalesDetailData);
+        ExcelUtil<MallSalesDetailData> util = new ExcelUtil<MallSalesDetailData>(MallSalesDetailData.class);
+        return util.exportExcel(list, "salesdetail");
+    }
+
+    /**
+     * 获取kmall销售数据详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(mallSalesDetailDataService.selectMallSalesDetailDataById(id));
+    }
+
+    /**
+     * 新增kmall销售数据
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:add')")
+    @Log(title = "kmall销售数据", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MallSalesDetailData mallSalesDetailData)
+    {
+        return toAjax(mallSalesDetailDataService.insertMallSalesDetailData(mallSalesDetailData));
+    }
+
+    /**
+     * 修改kmall销售数据
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:edit')")
+    @Log(title = "kmall销售数据", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MallSalesDetailData mallSalesDetailData)
+    {
+        return toAjax(mallSalesDetailDataService.updateMallSalesDetailData(mallSalesDetailData));
+    }
+
+    /**
+     * 删除kmall销售数据
+     */
+    @PreAuthorize("@ss.hasPermi('biz:salesdetail:remove')")
+    @Log(title = "kmall销售数据", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(mallSalesDetailDataService.deleteMallSalesDetailDataByIds(ids));
+    }
+}

+ 589 - 0
eccs-biz/src/main/java/com/emato/biz/domain/mall/MallSalesDetailData.java

@@ -0,0 +1,589 @@
+package com.emato.biz.domain.mall;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.emato.common.annotation.Excel;
+import com.emato.common.core.domain.BaseEntity;
+
+/**
+ * kmall销售数据对象 mall_sales_detail_data
+ * 
+ * @author admin
+ * @date 2023-04-11
+ */
+public class MallSalesDetailData extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键ID */
+    private Integer id;
+
+    /** 商户编号 */
+    @Excel(name = "商户编号")
+    private String merchSn;
+
+    /** 商户名称 */
+    @Excel(name = "商户名称")
+    private String merchSnName;
+
+    /** 第三方商户编号 */
+    @Excel(name = "第三方商户编号")
+    private String thirdMerchSn;
+
+    /** 第三方商户名称 */
+    @Excel(name = "第三方商户名称")
+    private String thirdMerchSnName;
+
+    /** 销售单号 */
+    @Excel(name = "销售单号")
+    private String receiptNo;
+
+    /** 门店名称 */
+    @Excel(name = "门店名称")
+    private String storeName;
+
+    /** 门店编号 */
+    @Excel(name = "门店编号")
+    private String storeNameSn;
+
+    /** 收银台 */
+    @Excel(name = "收银台")
+    private String cashRegisterNo;
+
+    /** 销售时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "销售时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date timeStamp;
+
+    /** 收银员id */
+    @Excel(name = "收银员id")
+    private String staffId;
+
+    /** 收银员姓名 */
+    @Excel(name = "收银员姓名")
+    private String staffName;
+
+    /** 支付方式 */
+    @Excel(name = "支付方式")
+    private String payFlag;
+
+    /** 支付状态 */
+    @Excel(name = "支付状态")
+    private Long orderStatus;
+
+    /** 微信流水号 */
+    @Excel(name = "微信流水号")
+    private String orderSnWx;
+
+    /** 支付宝流水号 */
+    @Excel(name = "支付宝流水号")
+    private String orderSnAli;
+
+    /** 海关商品编码 */
+    @Excel(name = "海关商品编码")
+    private String hsCode;
+
+    /** 品类名称 */
+    @Excel(name = "品类名称")
+    private String hsCodeName;
+
+    /** 料件号 */
+    @Excel(name = "料件号")
+    private String ematouCode;
+
+    /** PLU */
+    @Excel(name = "PLU")
+    private String plu;
+
+    /** MychemID */
+    @Excel(name = "MychemID")
+    private String mychemId;
+
+    /** 商品名称(英文) */
+    @Excel(name = "商品名称(英文)")
+    private String productNameEn;
+
+    /** 商品名称(中文) */
+    @Excel(name = "商品名称(中文)")
+    private String productNameCn;
+
+    /** 商品主条码 */
+    @Excel(name = "商品主条码")
+    private String barcode;
+
+    /** 规格 */
+    @Excel(name = "规格")
+    private String packSize;
+
+    /** 单位 */
+    @Excel(name = "单位")
+    private String productSpec;
+
+    /** 品牌 */
+    @Excel(name = "品牌")
+    private String brand;
+
+    /** 日常价 */
+    @Excel(name = "日常价")
+    private BigDecimal edlp;
+
+    /** 实际销售价 */
+    @Excel(name = "实际销售价")
+    private BigDecimal currentPrice;
+
+    /** 进货价 */
+    @Excel(name = "进货价")
+    private BigDecimal costPrice;
+
+    /** 税费 */
+    @Excel(name = "税费")
+    private BigDecimal taxPrice;
+
+    /** 综合税率 */
+    @Excel(name = "综合税率")
+    private Long taxRate;
+
+    /** 商品类型 */
+    @Excel(name = "商品类型")
+    private String productCategory;
+
+    /** 主供应商名称 */
+    @Excel(name = "主供应商名称")
+    private String supplierName;
+
+    /** 销售类型 */
+    @Excel(name = "销售类型")
+    private String transactionType;
+
+    /** 退货类型 */
+    @Excel(name = "退货类型")
+    private String saleReturnType;
+
+    /** 创建人编号 */
+    @Excel(name = "创建人编号")
+    private String createrSn;
+
+    /** 修改人编号 */
+    @Excel(name = "修改人编号")
+    private String moderSn;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date modTime;
+
+    /** 时间戳 */
+    private Date tstm;
+
+    public void setId(Integer id) 
+    {
+        this.id = id;
+    }
+
+    public Integer getId() 
+    {
+        return id;
+    }
+    public void setMerchSn(String merchSn) 
+    {
+        this.merchSn = merchSn;
+    }
+
+    public String getMerchSn() 
+    {
+        return merchSn;
+    }
+    public void setMerchSnName(String merchSnName) 
+    {
+        this.merchSnName = merchSnName;
+    }
+
+    public String getMerchSnName() 
+    {
+        return merchSnName;
+    }
+    public void setThirdMerchSn(String thirdMerchSn) 
+    {
+        this.thirdMerchSn = thirdMerchSn;
+    }
+
+    public String getThirdMerchSn() 
+    {
+        return thirdMerchSn;
+    }
+    public void setThirdMerchSnName(String thirdMerchSnName) 
+    {
+        this.thirdMerchSnName = thirdMerchSnName;
+    }
+
+    public String getThirdMerchSnName() 
+    {
+        return thirdMerchSnName;
+    }
+    public void setReceiptNo(String receiptNo) 
+    {
+        this.receiptNo = receiptNo;
+    }
+
+    public String getReceiptNo() 
+    {
+        return receiptNo;
+    }
+    public void setStoreName(String storeName) 
+    {
+        this.storeName = storeName;
+    }
+
+    public String getStoreName() 
+    {
+        return storeName;
+    }
+    public void setStoreNameSn(String storeNameSn) 
+    {
+        this.storeNameSn = storeNameSn;
+    }
+
+    public String getStoreNameSn() 
+    {
+        return storeNameSn;
+    }
+    public void setCashRegisterNo(String cashRegisterNo) 
+    {
+        this.cashRegisterNo = cashRegisterNo;
+    }
+
+    public String getCashRegisterNo() 
+    {
+        return cashRegisterNo;
+    }
+    public void setTimeStamp(Date timeStamp) 
+    {
+        this.timeStamp = timeStamp;
+    }
+
+    public Date getTimeStamp() 
+    {
+        return timeStamp;
+    }
+    public void setStaffId(String staffId) 
+    {
+        this.staffId = staffId;
+    }
+
+    public String getStaffId() 
+    {
+        return staffId;
+    }
+    public void setStaffName(String staffName) 
+    {
+        this.staffName = staffName;
+    }
+
+    public String getStaffName() 
+    {
+        return staffName;
+    }
+    public void setPayFlag(String payFlag) 
+    {
+        this.payFlag = payFlag;
+    }
+
+    public String getPayFlag() 
+    {
+        return payFlag;
+    }
+    public void setOrderStatus(Long orderStatus) 
+    {
+        this.orderStatus = orderStatus;
+    }
+
+    public Long getOrderStatus() 
+    {
+        return orderStatus;
+    }
+    public void setOrderSnWx(String orderSnWx) 
+    {
+        this.orderSnWx = orderSnWx;
+    }
+
+    public String getOrderSnWx() 
+    {
+        return orderSnWx;
+    }
+    public void setOrderSnAli(String orderSnAli) 
+    {
+        this.orderSnAli = orderSnAli;
+    }
+
+    public String getOrderSnAli() 
+    {
+        return orderSnAli;
+    }
+    public void setHsCode(String hsCode) 
+    {
+        this.hsCode = hsCode;
+    }
+
+    public String getHsCode() 
+    {
+        return hsCode;
+    }
+    public void setHsCodeName(String hsCodeName) 
+    {
+        this.hsCodeName = hsCodeName;
+    }
+
+    public String getHsCodeName() 
+    {
+        return hsCodeName;
+    }
+    public void setEmatouCode(String ematouCode) 
+    {
+        this.ematouCode = ematouCode;
+    }
+
+    public String getEmatouCode() 
+    {
+        return ematouCode;
+    }
+    public void setPlu(String plu) 
+    {
+        this.plu = plu;
+    }
+
+    public String getPlu() 
+    {
+        return plu;
+    }
+    public void setMychemId(String mychemId) 
+    {
+        this.mychemId = mychemId;
+    }
+
+    public String getMychemId() 
+    {
+        return mychemId;
+    }
+    public void setProductNameEn(String productNameEn) 
+    {
+        this.productNameEn = productNameEn;
+    }
+
+    public String getProductNameEn() 
+    {
+        return productNameEn;
+    }
+    public void setProductNameCn(String productNameCn) 
+    {
+        this.productNameCn = productNameCn;
+    }
+
+    public String getProductNameCn() 
+    {
+        return productNameCn;
+    }
+    public void setBarcode(String barcode) 
+    {
+        this.barcode = barcode;
+    }
+
+    public String getBarcode() 
+    {
+        return barcode;
+    }
+    public void setPackSize(String packSize) 
+    {
+        this.packSize = packSize;
+    }
+
+    public String getPackSize() 
+    {
+        return packSize;
+    }
+    public void setProductSpec(String productSpec) 
+    {
+        this.productSpec = productSpec;
+    }
+
+    public String getProductSpec() 
+    {
+        return productSpec;
+    }
+    public void setBrand(String brand) 
+    {
+        this.brand = brand;
+    }
+
+    public String getBrand() 
+    {
+        return brand;
+    }
+    public void setEdlp(BigDecimal edlp) 
+    {
+        this.edlp = edlp;
+    }
+
+    public BigDecimal getEdlp() 
+    {
+        return edlp;
+    }
+    public void setCurrentPrice(BigDecimal currentPrice) 
+    {
+        this.currentPrice = currentPrice;
+    }
+
+    public BigDecimal getCurrentPrice() 
+    {
+        return currentPrice;
+    }
+    public void setCostPrice(BigDecimal costPrice) 
+    {
+        this.costPrice = costPrice;
+    }
+
+    public BigDecimal getCostPrice() 
+    {
+        return costPrice;
+    }
+    public void setTaxPrice(BigDecimal taxPrice) 
+    {
+        this.taxPrice = taxPrice;
+    }
+
+    public BigDecimal getTaxPrice() 
+    {
+        return taxPrice;
+    }
+    public void setTaxRate(Long taxRate) 
+    {
+        this.taxRate = taxRate;
+    }
+
+    public Long getTaxRate() 
+    {
+        return taxRate;
+    }
+    public void setProductCategory(String productCategory) 
+    {
+        this.productCategory = productCategory;
+    }
+
+    public String getProductCategory() 
+    {
+        return productCategory;
+    }
+    public void setSupplierName(String supplierName) 
+    {
+        this.supplierName = supplierName;
+    }
+
+    public String getSupplierName() 
+    {
+        return supplierName;
+    }
+    public void setTransactionType(String transactionType) 
+    {
+        this.transactionType = transactionType;
+    }
+
+    public String getTransactionType() 
+    {
+        return transactionType;
+    }
+    public void setSaleReturnType(String saleReturnType) 
+    {
+        this.saleReturnType = saleReturnType;
+    }
+
+    public String getSaleReturnType() 
+    {
+        return saleReturnType;
+    }
+    public void setCreaterSn(String createrSn) 
+    {
+        this.createrSn = createrSn;
+    }
+
+    public String getCreaterSn() 
+    {
+        return createrSn;
+    }
+    public void setModerSn(String moderSn) 
+    {
+        this.moderSn = moderSn;
+    }
+
+    public String getModerSn() 
+    {
+        return moderSn;
+    }
+    public void setModTime(Date modTime) 
+    {
+        this.modTime = modTime;
+    }
+
+    public Date getModTime() 
+    {
+        return modTime;
+    }
+    public void setTstm(Date tstm) 
+    {
+        this.tstm = tstm;
+    }
+
+    public Date getTstm() 
+    {
+        return tstm;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("merchSn", getMerchSn())
+            .append("merchSnName", getMerchSnName())
+            .append("thirdMerchSn", getThirdMerchSn())
+            .append("thirdMerchSnName", getThirdMerchSnName())
+            .append("receiptNo", getReceiptNo())
+            .append("storeName", getStoreName())
+            .append("storeNameSn", getStoreNameSn())
+            .append("cashRegisterNo", getCashRegisterNo())
+            .append("timeStamp", getTimeStamp())
+            .append("staffId", getStaffId())
+            .append("staffName", getStaffName())
+            .append("payFlag", getPayFlag())
+            .append("orderStatus", getOrderStatus())
+            .append("orderSnWx", getOrderSnWx())
+            .append("orderSnAli", getOrderSnAli())
+            .append("hsCode", getHsCode())
+            .append("hsCodeName", getHsCodeName())
+            .append("ematouCode", getEmatouCode())
+            .append("plu", getPlu())
+            .append("mychemId", getMychemId())
+            .append("productNameEn", getProductNameEn())
+            .append("productNameCn", getProductNameCn())
+            .append("barcode", getBarcode())
+            .append("packSize", getPackSize())
+            .append("productSpec", getProductSpec())
+            .append("brand", getBrand())
+            .append("edlp", getEdlp())
+            .append("currentPrice", getCurrentPrice())
+            .append("costPrice", getCostPrice())
+            .append("taxPrice", getTaxPrice())
+            .append("taxRate", getTaxRate())
+            .append("productCategory", getProductCategory())
+            .append("supplierName", getSupplierName())
+            .append("transactionType", getTransactionType())
+            .append("saleReturnType", getSaleReturnType())
+            .append("remark", getRemark())
+            .append("createrSn", getCreaterSn())
+            .append("createTime", getCreateTime())
+            .append("moderSn", getModerSn())
+            .append("modTime", getModTime())
+            .append("tstm", getTstm())
+            .toString();
+    }
+}

+ 61 - 0
eccs-biz/src/main/java/com/emato/biz/mapper/mall/MallSalesDetailDataMapper.java

@@ -0,0 +1,61 @@
+package com.emato.biz.mapper.mall;
+
+import com.emato.biz.domain.mall.MallSalesDetailData;
+import java.util.List;
+
+/**
+ * kmall销售数据Mapper接口
+ * 
+ * @author admin
+ * @date 2023-04-11
+ */
+public interface MallSalesDetailDataMapper 
+{
+    /**
+     * 查询kmall销售数据
+     * 
+     * @param id kmall销售数据ID
+     * @return kmall销售数据
+     */
+    public MallSalesDetailData selectMallSalesDetailDataById(Integer id);
+
+    /**
+     * 查询kmall销售数据列表
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return kmall销售数据集合
+     */
+    public List<MallSalesDetailData> selectMallSalesDetailDataList(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 新增kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    public int insertMallSalesDetailData(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 修改kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    public int updateMallSalesDetailData(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 删除kmall销售数据
+     * 
+     * @param id kmall销售数据ID
+     * @return 结果
+     */
+    public int deleteMallSalesDetailDataById(Integer id);
+
+    /**
+     * 批量删除kmall销售数据
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteMallSalesDetailDataByIds(Integer[] ids);
+}

+ 98 - 0
eccs-biz/src/main/java/com/emato/biz/service/impl/MallSalesDetailDataServiceImpl.java

@@ -0,0 +1,98 @@
+package com.emato.biz.service.impl;
+
+import java.util.List;
+
+import com.emato.biz.domain.mall.MallSalesDetailData;
+import com.emato.biz.mapper.mall.MallSalesDetailDataMapper;
+import com.emato.biz.service.mall.IMallSalesDetailDataService;
+import com.emato.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * kmall销售数据Service业务层处理
+ * 
+ * @author admin
+ * @date 2023-04-11
+ */
+@Service
+public class MallSalesDetailDataServiceImpl implements IMallSalesDetailDataService
+{
+    @Resource
+    private MallSalesDetailDataMapper mallSalesDetailDataMapper;
+
+    /**
+     * 查询kmall销售数据
+     * 
+     * @param id kmall销售数据ID
+     * @return kmall销售数据
+     */
+    @Override
+    public MallSalesDetailData selectMallSalesDetailDataById(Integer id)
+    {
+        return mallSalesDetailDataMapper.selectMallSalesDetailDataById(id);
+    }
+
+    /**
+     * 查询kmall销售数据列表
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return kmall销售数据
+     */
+    @Override
+    public List<MallSalesDetailData> selectMallSalesDetailDataList(MallSalesDetailData mallSalesDetailData)
+    {
+        return mallSalesDetailDataMapper.selectMallSalesDetailDataList(mallSalesDetailData);
+    }
+
+    /**
+     * 新增kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    @Override
+    public int insertMallSalesDetailData(MallSalesDetailData mallSalesDetailData)
+    {
+        mallSalesDetailData.setCreateTime(DateUtils.getNowDate());
+        return mallSalesDetailDataMapper.insertMallSalesDetailData(mallSalesDetailData);
+    }
+
+    /**
+     * 修改kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    @Override
+    public int updateMallSalesDetailData(MallSalesDetailData mallSalesDetailData)
+    {
+        return mallSalesDetailDataMapper.updateMallSalesDetailData(mallSalesDetailData);
+    }
+
+    /**
+     * 批量删除kmall销售数据
+     * 
+     * @param ids 需要删除的kmall销售数据ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMallSalesDetailDataByIds(Integer[] ids)
+    {
+        return mallSalesDetailDataMapper.deleteMallSalesDetailDataByIds(ids);
+    }
+
+    /**
+     * 删除kmall销售数据信息
+     * 
+     * @param id kmall销售数据ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMallSalesDetailDataById(Integer id)
+    {
+        return mallSalesDetailDataMapper.deleteMallSalesDetailDataById(id);
+    }
+}

+ 0 - 1
eccs-biz/src/main/java/com/emato/biz/service/impl/SalesDetaiServicelImpl.java

@@ -150,7 +150,6 @@ public class SalesDetaiServicelImpl implements ISalesDetaiServicel {
             // 记录查询日志
             insertReqLog(JSON.toJSONString(outRequest), outRequest.getMerchId());
 
-
             // 将数据库数据转换为接口输出的数据格式
             List<SalesDataResVO> salesDataVOList = salesDataList.stream().map(salesData -> {
                 SalesDataResVO resVO = new SalesDataResVO();

+ 62 - 0
eccs-biz/src/main/java/com/emato/biz/service/mall/IMallSalesDetailDataService.java

@@ -0,0 +1,62 @@
+package com.emato.biz.service.mall;
+
+import com.emato.biz.domain.mall.MallSalesDetailData;
+import java.util.List;
+
+
+/**
+ * kmall销售数据Service接口
+ * 
+ * @author admin
+ * @date 2023-04-11
+ */
+public interface IMallSalesDetailDataService 
+{
+    /**
+     * 查询kmall销售数据
+     * 
+     * @param id kmall销售数据ID
+     * @return kmall销售数据
+     */
+    public MallSalesDetailData selectMallSalesDetailDataById(Integer id);
+
+    /**
+     * 查询kmall销售数据列表
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return kmall销售数据集合
+     */
+    public List<MallSalesDetailData> selectMallSalesDetailDataList(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 新增kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    public int insertMallSalesDetailData(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 修改kmall销售数据
+     * 
+     * @param mallSalesDetailData kmall销售数据
+     * @return 结果
+     */
+    public int updateMallSalesDetailData(MallSalesDetailData mallSalesDetailData);
+
+    /**
+     * 批量删除kmall销售数据
+     * 
+     * @param ids 需要删除的kmall销售数据ID
+     * @return 结果
+     */
+    public int deleteMallSalesDetailDataByIds(Integer[] ids);
+
+    /**
+     * 删除kmall销售数据信息
+     * 
+     * @param id kmall销售数据ID
+     * @return 结果
+     */
+    public int deleteMallSalesDetailDataById(Integer id);
+}

+ 219 - 0
eccs-biz/src/main/resources/mapper/biz/mall/MallSalesDetailDataMapper.xml

@@ -0,0 +1,219 @@
+<?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.emato.biz.mapper.mall.MallSalesDetailDataMapper">
+    
+    <resultMap type="com.emato.biz.domain.mall.MallSalesDetailData" id="MallSalesDetailDataResult">
+        <result property="id"    column="id"    />
+        <result property="merchSn"    column="merch_sn"    />
+        <result property="merchSnName"    column="merch_sn_name"    />
+        <result property="thirdMerchSn"    column="third_merch_sn"    />
+        <result property="thirdMerchSnName"    column="third_merch_sn_name"    />
+        <result property="receiptNo"    column="receipt_no"    />
+        <result property="storeName"    column="store_name"    />
+        <result property="storeNameSn"    column="store_name_sn"    />
+        <result property="cashRegisterNo"    column="cash_register_no"    />
+        <result property="timeStamp"    column="time_stamp"    />
+        <result property="staffId"    column="staff_id"    />
+        <result property="staffName"    column="staff_name"    />
+        <result property="payFlag"    column="pay_flag"    />
+        <result property="orderStatus"    column="order_status"    />
+        <result property="orderSnWx"    column="order_sn_wx"    />
+        <result property="orderSnAli"    column="order_sn_ali"    />
+        <result property="hsCode"    column="hs_code"    />
+        <result property="hsCodeName"    column="hs_code_name"    />
+        <result property="ematouCode"    column="ematou_code"    />
+        <result property="plu"    column="plu"    />
+        <result property="mychemId"    column="mychem_id"    />
+        <result property="productNameEn"    column="product_name_en"    />
+        <result property="productNameCn"    column="product_name_cn"    />
+        <result property="barcode"    column="barcode"    />
+        <result property="packSize"    column="pack_size"    />
+        <result property="productSpec"    column="product_spec"    />
+        <result property="brand"    column="brand"    />
+        <result property="edlp"    column="edlp"    />
+        <result property="currentPrice"    column="current_price"    />
+        <result property="costPrice"    column="cost_price"    />
+        <result property="taxPrice"    column="tax_price"    />
+        <result property="taxRate"    column="tax_rate"    />
+        <result property="productCategory"    column="product_category"    />
+        <result property="supplierName"    column="supplier_name"    />
+        <result property="transactionType"    column="transaction_type"    />
+        <result property="saleReturnType"    column="sale_return_type"    />
+        <result property="remark"    column="remark"    />
+        <result property="createrSn"    column="creater_sn"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="moderSn"    column="moder_sn"    />
+        <result property="modTime"    column="mod_time"    />
+        <result property="tstm"    column="tstm"    />
+    </resultMap>
+
+    <sql id="selectMallSalesDetailDataVo">
+        select id, merch_sn, merch_sn_name, third_merch_sn, third_merch_sn_name, receipt_no, store_name, store_name_sn, cash_register_no, time_stamp, staff_id, staff_name, pay_flag, order_status, order_sn_wx, order_sn_ali, hs_code, hs_code_name, ematou_code, plu, mychem_id, product_name_en, product_name_cn, barcode, pack_size, product_spec, brand, edlp, current_price, cost_price, tax_price, tax_rate, product_category, supplier_name, transaction_type, sale_return_type, remark, creater_sn, create_time, moder_sn, mod_time, tstm from mall_sales_detail_data
+    </sql>
+
+    <select id="selectMallSalesDetailDataList" parameterType="com.emato.biz.domain.mall.MallSalesDetailData" resultMap="MallSalesDetailDataResult">
+        <include refid="selectMallSalesDetailDataVo"/>
+        <where>  
+            <if test="receiptNo != null  and receiptNo != ''"> and receipt_no like concat('%', #{receiptNo}, '%')</if>
+            <if test="ematouCode != null  and ematouCode != ''"> and ematou_code like concat('%', #{ematouCode}, '%')</if>
+            <if test="barcode != null  and barcode != ''"> and barcode like concat('%', #{barcode}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectMallSalesDetailDataById" parameterType="Integer" resultMap="MallSalesDetailDataResult">
+        <include refid="selectMallSalesDetailDataVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertMallSalesDetailData" parameterType="com.emato.biz.domain.mall.MallSalesDetailData" useGeneratedKeys="true" keyProperty="id">
+        insert into mall_sales_detail_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="merchSn != null">merch_sn,</if>
+            <if test="merchSnName != null">merch_sn_name,</if>
+            <if test="thirdMerchSn != null">third_merch_sn,</if>
+            <if test="thirdMerchSnName != null">third_merch_sn_name,</if>
+            <if test="receiptNo != null">receipt_no,</if>
+            <if test="storeName != null">store_name,</if>
+            <if test="storeNameSn != null">store_name_sn,</if>
+            <if test="cashRegisterNo != null">cash_register_no,</if>
+            <if test="timeStamp != null">time_stamp,</if>
+            <if test="staffId != null">staff_id,</if>
+            <if test="staffName != null">staff_name,</if>
+            <if test="payFlag != null">pay_flag,</if>
+            <if test="orderStatus != null">order_status,</if>
+            <if test="orderSnWx != null">order_sn_wx,</if>
+            <if test="orderSnAli != null">order_sn_ali,</if>
+            <if test="hsCode != null">hs_code,</if>
+            <if test="hsCodeName != null">hs_code_name,</if>
+            <if test="ematouCode != null">ematou_code,</if>
+            <if test="plu != null">plu,</if>
+            <if test="mychemId != null">mychem_id,</if>
+            <if test="productNameEn != null">product_name_en,</if>
+            <if test="productNameCn != null">product_name_cn,</if>
+            <if test="barcode != null">barcode,</if>
+            <if test="packSize != null">pack_size,</if>
+            <if test="productSpec != null">product_spec,</if>
+            <if test="brand != null">brand,</if>
+            <if test="edlp != null">edlp,</if>
+            <if test="currentPrice != null">current_price,</if>
+            <if test="costPrice != null">cost_price,</if>
+            <if test="taxPrice != null">tax_price,</if>
+            <if test="taxRate != null">tax_rate,</if>
+            <if test="productCategory != null">product_category,</if>
+            <if test="supplierName != null">supplier_name,</if>
+            <if test="transactionType != null">transaction_type,</if>
+            <if test="saleReturnType != null">sale_return_type,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createrSn != null">creater_sn,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="moderSn != null">moder_sn,</if>
+            <if test="modTime != null">mod_time,</if>
+            <if test="tstm != null">tstm,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="merchSn != null">#{merchSn},</if>
+            <if test="merchSnName != null">#{merchSnName},</if>
+            <if test="thirdMerchSn != null">#{thirdMerchSn},</if>
+            <if test="thirdMerchSnName != null">#{thirdMerchSnName},</if>
+            <if test="receiptNo != null">#{receiptNo},</if>
+            <if test="storeName != null">#{storeName},</if>
+            <if test="storeNameSn != null">#{storeNameSn},</if>
+            <if test="cashRegisterNo != null">#{cashRegisterNo},</if>
+            <if test="timeStamp != null">#{timeStamp},</if>
+            <if test="staffId != null">#{staffId},</if>
+            <if test="staffName != null">#{staffName},</if>
+            <if test="payFlag != null">#{payFlag},</if>
+            <if test="orderStatus != null">#{orderStatus},</if>
+            <if test="orderSnWx != null">#{orderSnWx},</if>
+            <if test="orderSnAli != null">#{orderSnAli},</if>
+            <if test="hsCode != null">#{hsCode},</if>
+            <if test="hsCodeName != null">#{hsCodeName},</if>
+            <if test="ematouCode != null">#{ematouCode},</if>
+            <if test="plu != null">#{plu},</if>
+            <if test="mychemId != null">#{mychemId},</if>
+            <if test="productNameEn != null">#{productNameEn},</if>
+            <if test="productNameCn != null">#{productNameCn},</if>
+            <if test="barcode != null">#{barcode},</if>
+            <if test="packSize != null">#{packSize},</if>
+            <if test="productSpec != null">#{productSpec},</if>
+            <if test="brand != null">#{brand},</if>
+            <if test="edlp != null">#{edlp},</if>
+            <if test="currentPrice != null">#{currentPrice},</if>
+            <if test="costPrice != null">#{costPrice},</if>
+            <if test="taxPrice != null">#{taxPrice},</if>
+            <if test="taxRate != null">#{taxRate},</if>
+            <if test="productCategory != null">#{productCategory},</if>
+            <if test="supplierName != null">#{supplierName},</if>
+            <if test="transactionType != null">#{transactionType},</if>
+            <if test="saleReturnType != null">#{saleReturnType},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createrSn != null">#{createrSn},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="moderSn != null">#{moderSn},</if>
+            <if test="modTime != null">#{modTime},</if>
+            <if test="tstm != null">#{tstm},</if>
+         </trim>
+    </insert>
+
+    <update id="updateMallSalesDetailData" parameterType="com.emato.biz.domain.mall.MallSalesDetailData">
+        update mall_sales_detail_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="merchSn != null">merch_sn = #{merchSn},</if>
+            <if test="merchSnName != null">merch_sn_name = #{merchSnName},</if>
+            <if test="thirdMerchSn != null">third_merch_sn = #{thirdMerchSn},</if>
+            <if test="thirdMerchSnName != null">third_merch_sn_name = #{thirdMerchSnName},</if>
+            <if test="receiptNo != null">receipt_no = #{receiptNo},</if>
+            <if test="storeName != null">store_name = #{storeName},</if>
+            <if test="storeNameSn != null">store_name_sn = #{storeNameSn},</if>
+            <if test="cashRegisterNo != null">cash_register_no = #{cashRegisterNo},</if>
+            <if test="timeStamp != null">time_stamp = #{timeStamp},</if>
+            <if test="staffId != null">staff_id = #{staffId},</if>
+            <if test="staffName != null">staff_name = #{staffName},</if>
+            <if test="payFlag != null">pay_flag = #{payFlag},</if>
+            <if test="orderStatus != null">order_status = #{orderStatus},</if>
+            <if test="orderSnWx != null">order_sn_wx = #{orderSnWx},</if>
+            <if test="orderSnAli != null">order_sn_ali = #{orderSnAli},</if>
+            <if test="hsCode != null">hs_code = #{hsCode},</if>
+            <if test="hsCodeName != null">hs_code_name = #{hsCodeName},</if>
+            <if test="ematouCode != null">ematou_code = #{ematouCode},</if>
+            <if test="plu != null">plu = #{plu},</if>
+            <if test="mychemId != null">mychem_id = #{mychemId},</if>
+            <if test="productNameEn != null">product_name_en = #{productNameEn},</if>
+            <if test="productNameCn != null">product_name_cn = #{productNameCn},</if>
+            <if test="barcode != null">barcode = #{barcode},</if>
+            <if test="packSize != null">pack_size = #{packSize},</if>
+            <if test="productSpec != null">product_spec = #{productSpec},</if>
+            <if test="brand != null">brand = #{brand},</if>
+            <if test="edlp != null">edlp = #{edlp},</if>
+            <if test="currentPrice != null">current_price = #{currentPrice},</if>
+            <if test="costPrice != null">cost_price = #{costPrice},</if>
+            <if test="taxPrice != null">tax_price = #{taxPrice},</if>
+            <if test="taxRate != null">tax_rate = #{taxRate},</if>
+            <if test="productCategory != null">product_category = #{productCategory},</if>
+            <if test="supplierName != null">supplier_name = #{supplierName},</if>
+            <if test="transactionType != null">transaction_type = #{transactionType},</if>
+            <if test="saleReturnType != null">sale_return_type = #{saleReturnType},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createrSn != null">creater_sn = #{createrSn},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="moderSn != null">moder_sn = #{moderSn},</if>
+            <if test="modTime != null">mod_time = #{modTime},</if>
+            <if test="tstm != null">tstm = #{tstm},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteMallSalesDetailDataById" parameterType="Integer">
+        delete from mall_sales_detail_data where id = #{id}
+    </delete>
+
+    <delete id="deleteMallSalesDetailDataByIds" parameterType="String">
+        delete from mall_sales_detail_data where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 53 - 0
eccs-ui/src/api/mall/salesdetail.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询kmall销售数据列表
+export function listSalesdetail(query) {
+  return request({
+    url: '/biz/salesdetail/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询kmall销售数据详细
+export function getSalesdetail(id) {
+  return request({
+    url: '/biz/salesdetail/' + id,
+    method: 'get'
+  })
+}
+
+// 新增kmall销售数据
+export function addSalesdetail(data) {
+  return request({
+    url: '/biz/salesdetail',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改kmall销售数据
+export function updateSalesdetail(data) {
+  return request({
+    url: '/biz/salesdetail',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除kmall销售数据
+export function delSalesdetail(id) {
+  return request({
+    url: '/biz/salesdetail/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出kmall销售数据
+export function exportSalesdetail(query) {
+  return request({
+    url: '/biz/salesdetail/export',
+    method: 'get',
+    params: query
+  })
+}

+ 493 - 0
eccs-ui/src/views/mall/salesdetail/index.vue

@@ -0,0 +1,493 @@
+<style>
+  .demo-table-expand {
+    font-size: 0;
+  }
+  .demo-table-expand label {
+    width: 90px;
+    color: #99a9bf;
+  }
+  .demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+    width: 100%;
+  }
+</style>
+
+
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="销售单号" prop="receiptNo">
+        <el-input
+          v-model="queryParams.receiptNo"
+          placeholder="请输入销售单号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="料件号" prop="ematouCode">
+        <el-input
+          v-model="queryParams.ematouCode"
+          placeholder="请输入料件号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商品主条码" prop="barcode">
+        <el-input
+          v-model="queryParams.barcode"
+          placeholder="请输入商品主条码"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['biz:salesdetail:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['biz:salesdetail:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['biz:salesdetail:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['biz:salesdetail:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="salesdetailList" @selection-change="handleSelectionChange" height="700">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="商户编号" align="center" prop="merchSn" />
+      <el-table-column label="商户名称" align="center" prop="merchSnName" />
+      <el-table-column label="第三方商户编号" align="center" prop="thirdMerchSn" />
+      <el-table-column label="第三方商户名称" align="center" prop="thirdMerchSnName" />
+      <el-table-column label="销售单号" align="center" prop="receiptNo" />
+      <el-table-column label="门店名称" align="center" prop="storeName" />
+      <el-table-column label="门店编号" align="center" prop="storeNameSn" />
+      <el-table-column label="收银台" align="center" prop="cashRegisterNo" />
+      <el-table-column label="销售时间" align="center" prop="timeStamp" width="200">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.timeStamp, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="收银员id" align="center" prop="staffId" />
+      <el-table-column label="收银员姓名" align="center" prop="staffName" />
+      <el-table-column label="支付方式" align="center" prop="payFlag" />
+      <el-table-column label="支付状态" align="center" prop="orderStatus" />
+      <el-table-column label="微信流水号" align="center" prop="orderSnWx" />
+      <el-table-column label="支付宝流水号" align="center" prop="orderSnAli" />
+      <el-table-column label="海关商品编码" align="center" prop="hsCode" />
+      <el-table-column label="品类名称" align="center" prop="hsCodeName" />
+      <el-table-column label="料件号" align="center" prop="ematouCode" />
+      <el-table-column label="PLU" align="center" prop="plu" />
+      <el-table-column label="MychemID" align="center" prop="mychemId" />
+      <el-table-column label="商品名称(英文)" align="center" prop="productNameEn" />
+      <el-table-column label="商品名称(中文)" align="center" prop="productNameCn" />
+      <el-table-column label="商品主条码" align="center" prop="barcode" />
+      <el-table-column label="规格" align="center" prop="packSize" />
+      <el-table-column label="单位" align="center" prop="productSpec" />
+      <el-table-column label="品牌" align="center" prop="brand" />
+      <el-table-column label="日常价" align="center" prop="edlp" />
+      <el-table-column label="实际销售价" align="center" prop="currentPrice" />
+      <el-table-column label="进货价" align="center" prop="costPrice" />
+      <el-table-column label="税费" align="center" prop="taxPrice" />
+      <el-table-column label="综合税率" align="center" prop="taxRate" />
+      <el-table-column label="商品类型" align="center" prop="productCategory" />
+      <el-table-column label="主供应商名称" align="center" prop="supplierName" />
+      <el-table-column label="销售类型" align="center" prop="transactionType" />
+      <el-table-column label="退货类型" align="center" prop="saleReturnType" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="创建人编号" align="center" prop="createrSn" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.timeStamp, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="修改人编号" align="center" prop="moderSn" />
+      <el-table-column label="修改时间" align="center" prop="modTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.timeStamp, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['biz:salesdetail:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['biz:salesdetail:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改kmall销售数据对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="商户编号" prop="merchSn">
+          <el-input v-model="form.merchSn" placeholder="请输入商户编号" />
+        </el-form-item>
+        <el-form-item label="商户名称" prop="merchSnName">
+          <el-input v-model="form.merchSnName" placeholder="请输入商户名称" />
+        </el-form-item>
+        <el-form-item label="第三方商户编号" prop="thirdMerchSn">
+          <el-input v-model="form.thirdMerchSn" placeholder="请输入第三方商户编号" />
+        </el-form-item>
+        <el-form-item label="第三方商户名称" prop="thirdMerchSnName">
+          <el-input v-model="form.thirdMerchSnName" placeholder="请输入第三方商户名称" />
+        </el-form-item>
+        <el-form-item label="销售单号" prop="receiptNo">
+          <el-input v-model="form.receiptNo" placeholder="请输入销售单号" />
+        </el-form-item>
+        <el-form-item label="门店名称" prop="storeName">
+          <el-input v-model="form.storeName" placeholder="请输入门店名称" />
+        </el-form-item>
+        <el-form-item label="门店编号" prop="storeNameSn">
+          <el-input v-model="form.storeNameSn" placeholder="请输入门店编号" />
+        </el-form-item>
+        <el-form-item label="收银台" prop="cashRegisterNo">
+          <el-input v-model="form.cashRegisterNo" placeholder="请输入收银台" />
+        </el-form-item>
+        <el-form-item label="销售时间" prop="timeStamp">
+          <el-date-picker clearable size="small"
+            v-model="form.timeStamp"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择销售时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="收银员id" prop="staffId">
+          <el-input v-model="form.staffId" placeholder="请输入收银员id" />
+        </el-form-item>
+        <el-form-item label="收银员姓名" prop="staffName">
+          <el-input v-model="form.staffName" placeholder="请输入收银员姓名" />
+        </el-form-item>
+        <el-form-item label="支付方式" prop="payFlag">
+          <el-input v-model="form.payFlag" placeholder="请输入支付方式" />
+        </el-form-item>
+        <el-form-item label="支付状态">
+          <el-radio-group v-model="form.orderStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="微信流水号" prop="orderSnWx">
+          <el-input v-model="form.orderSnWx" placeholder="请输入微信流水号" />
+        </el-form-item>
+        <el-form-item label="支付宝流水号" prop="orderSnAli">
+          <el-input v-model="form.orderSnAli" placeholder="请输入支付宝流水号" />
+        </el-form-item>
+        <el-form-item label="海关商品编码" prop="hsCode">
+          <el-input v-model="form.hsCode" placeholder="请输入海关商品编码" />
+        </el-form-item>
+        <el-form-item label="品类名称" prop="hsCodeName">
+          <el-input v-model="form.hsCodeName" placeholder="请输入品类名称" />
+        </el-form-item>
+        <el-form-item label="料件号" prop="ematouCode">
+          <el-input v-model="form.ematouCode" placeholder="请输入料件号" />
+        </el-form-item>
+        <el-form-item label="PLU" prop="plu">
+          <el-input v-model="form.plu" placeholder="请输入PLU" />
+        </el-form-item>
+        <el-form-item label="MychemID" prop="mychemId">
+          <el-input v-model="form.mychemId" placeholder="请输入MychemID" />
+        </el-form-item>
+        <el-form-item label="商品名称(英文)" prop="productNameEn">
+          <el-input v-model="form.productNameEn" placeholder="请输入商品名称(英文)" />
+        </el-form-item>
+        <el-form-item label="商品名称(中文)" prop="productNameCn">
+          <el-input v-model="form.productNameCn" placeholder="请输入商品名称(中文)" />
+        </el-form-item>
+        <el-form-item label="商品主条码" prop="barcode">
+          <el-input v-model="form.barcode" placeholder="请输入商品主条码" />
+        </el-form-item>
+        <el-form-item label="规格" prop="packSize">
+          <el-input v-model="form.packSize" placeholder="请输入规格" />
+        </el-form-item>
+        <el-form-item label="单位" prop="productSpec">
+          <el-input v-model="form.productSpec" placeholder="请输入单位" />
+        </el-form-item>
+        <el-form-item label="品牌" prop="brand">
+          <el-input v-model="form.brand" placeholder="请输入品牌" />
+        </el-form-item>
+        <el-form-item label="日常价" prop="edlp">
+          <el-input v-model="form.edlp" placeholder="请输入日常价" />
+        </el-form-item>
+        <el-form-item label="实际销售价" prop="currentPrice">
+          <el-input v-model="form.currentPrice" placeholder="请输入实际销售价" />
+        </el-form-item>
+        <el-form-item label="进货价" prop="costPrice">
+          <el-input v-model="form.costPrice" placeholder="请输入进货价" />
+        </el-form-item>
+        <el-form-item label="税费" prop="taxPrice">
+          <el-input v-model="form.taxPrice" placeholder="请输入税费" />
+        </el-form-item>
+        <el-form-item label="综合税率" prop="taxRate">
+          <el-input v-model="form.taxRate" placeholder="请输入综合税率" />
+        </el-form-item>
+        <el-form-item label="商品类型" prop="productCategory">
+          <el-input v-model="form.productCategory" placeholder="请输入商品类型" />
+        </el-form-item>
+        <el-form-item label="主供应商名称" prop="supplierName">
+          <el-input v-model="form.supplierName" placeholder="请输入主供应商名称" />
+        </el-form-item>
+        <el-form-item label="销售类型" prop="transactionType">
+          <el-input v-model="form.transactionType" placeholder="请输入销售类型" />
+        </el-form-item>
+        <el-form-item label="退货类型" prop="saleReturnType">
+          <el-input v-model="form.saleReturnType" placeholder="请输入退货类型" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" placeholder="请输入备注" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSalesdetail, getSalesdetail, delSalesdetail, addSalesdetail, updateSalesdetail, exportSalesdetail } from "@/api/mall/salesdetail";
+
+export default {
+  name: "Salesdetail",
+  components: {
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // kmall销售数据表格数据
+      salesdetailList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        receiptNo: null,
+        ematouCode: null,
+        barcode: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询kmall销售数据列表 */
+    getList() {
+      this.loading = true;
+      listSalesdetail(this.queryParams).then(response => {
+        this.salesdetailList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        merchSn: null,
+        merchSnName: null,
+        thirdMerchSn: null,
+        thirdMerchSnName: null,
+        receiptNo: null,
+        storeName: null,
+        storeNameSn: null,
+        cashRegisterNo: null,
+        timeStamp: null,
+        staffId: null,
+        staffName: null,
+        payFlag: null,
+        orderStatus: 0,
+        orderSnWx: null,
+        orderSnAli: null,
+        hsCode: null,
+        hsCodeName: null,
+        ematouCode: null,
+        plu: null,
+        mychemId: null,
+        productNameEn: null,
+        productNameCn: null,
+        barcode: null,
+        packSize: null,
+        productSpec: null,
+        brand: null,
+        edlp: null,
+        currentPrice: null,
+        costPrice: null,
+        taxPrice: null,
+        taxRate: null,
+        productCategory: null,
+        supplierName: null,
+        transactionType: null,
+        saleReturnType: null,
+        remark: null,
+        createrSn: null,
+        createTime: null,
+        moderSn: null,
+        modTime: null,
+        tstm: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加kmall销售数据";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSalesdetail(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改kmall销售数据";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSalesdetail(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSalesdetail(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$confirm('是否确认删除kmall销售数据编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delSalesdetail(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有kmall销售数据数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportSalesdetail(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+    }
+  }
+};
+</script>