This commit is contained in:
dzc committed 2025-06-24 14:56:59 +08:00
commit 1b9476dde0
6 files changed
+134 -2

No files matched your search

@@ -0,0 +1,80 @@
package com.bsd.pjcloud.supermarket.vo.erpspu;
import com.alibaba.excel.annotation.ExcelProperty;
import com.bsd.pjcloud.common.core.util.MoneyDeserializer;
import com.bsd.pjcloud.common.core.util.MoneySerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
public class SmErpSpuStockExcel implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 货号
*/
@Schema(description="货号")
@ExcelProperty("货号")
private String productCode;
/**
* 商品名称
*/
@Schema(description="商品名称")
@ExcelProperty("商品名称")
private String productName;
/**
* 库存
*/
@Schema(description="库存")
@ExcelProperty("库存")
private Double stock;
/**
* 单位
*/
@Schema(description="单位")
@ExcelProperty("单位")
private String unit;
/**
* 条码
*/
@Schema(description="条码")
@ExcelProperty("条码")
private String barCode;
/**
* 规格
*/
@Schema(description="规格")
@ExcelProperty("规格")
private String spec;
/**
* 内装数量
*/
@Schema(description="内装")
@ExcelProperty("内装")
private Integer packageNum;
/**
* 零售价/单位分
*/
@Schema(description="零售价/单位分")
@ExcelProperty("零售价/元")
private Double retailPrice;
}
@@ -25,6 +25,7 @@ import com.bsd.pjcloud.supermarket.service.*;
import com.bsd.pjcloud.supermarket.vo.ad.SmErpSpuDetailsVo;
import com.bsd.pjcloud.supermarket.vo.ad.SpuVo;
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuSimpleVo;
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -188,8 +189,8 @@ public class SmErpSpuController {
@ResponseExcel
@GetMapping("/export")
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_export')" )
public List<SmErpSpuEntity> export(SmErpSpuEntity supermarketSpu, Long[] ids) {
return smErpSpuService.list(Wrappers.lambdaQuery(supermarketSpu).in(ArrayUtil.isNotEmpty(ids), SmErpSpuEntity::getId, ids));
public List<SmErpSpuStockExcel> export(SmErpSpuEntity supermarketSpu, Long[] ids) {
return smErpSpuService.exportSupermarketSpuStockExcel(supermarketSpu, ids);
}
@@ -7,6 +7,7 @@ import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper;
import com.bsd.pjcloud.supermarket.dto.SupermarketSpuQueryDTO;
import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
import com.bsd.pjcloud.supermarket.vo.ad.SpuVo;
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springdoc.core.annotations.ParameterObject;
@@ -43,4 +44,7 @@ public interface SmErpSpuMapper extends PjcloudBaseMapper<SmErpSpuEntity> {
Page<SpuVo> selectListAllScope(@ParameterObject Page page, @Param("supermarketSpuQueryDTO") SupermarketSpuQueryDTO supermarketSpuQueryDTO
, DataScope dataScope);
List<SmErpSpuStockExcel> exportSupermarketSpuStockExcel(@Param("supermarketSpu") SmErpSpuEntity supermarketSpu, @Param("ids") Long[] ids,DataScope dataScope);
}
@@ -14,6 +14,7 @@ import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity;
import com.bsd.pjcloud.supermarket.vo.ad.SmErpSpuDetailsVo;
import com.bsd.pjcloud.supermarket.vo.ad.SpuVo;
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpSpuWithUnitPageVo;
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel;
import com.bsd.pjcloud.supermarket.vo.sm.smspu.SmErpPageScopeVo;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.validation.BindingResult;
@@ -111,6 +112,13 @@ public interface SmErpSpuService extends IService<SmErpSpuEntity> {
R importErpSpu(List<SmErpSpuImportDto> smErpSupplierImportDtos, BindingResult bindingResult);
/**
* 导出
* @param supermarketSpu
* @param ids
* @return
*/
List<SmErpSpuStockExcel> exportSupermarketSpuStockExcel(SmErpSpuEntity supermarketSpu, Long[] ids);
// R calculateCostPrice();
@@ -32,6 +32,7 @@ import com.bsd.pjcloud.supermarket.vo.ad.SmErpSpuDetailsVo;
import com.bsd.pjcloud.supermarket.vo.ad.SmErpUnitVo;
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpSpuWithUnitPageVo;
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo;
import com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel;
import com.bsd.pjcloud.supermarket.vo.sm.smspu.SmErpPageScopeVo;
import com.bsd.pjcloud.wallet.api.feign.RemoteMchService;
import com.bsd.pjcloud.wallet.api.vo.MchManageVo;
@@ -905,6 +906,11 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
return buildImportResult(smErpSpuImportDtos.size(), productCodeToSpuMap.size(), errorList);
}
@Override
public List<SmErpSpuStockExcel> exportSupermarketSpuStockExcel(SmErpSpuEntity supermarketSpu, Long[] ids) {
return baseMapper.exportSupermarketSpuStockExcel(supermarketSpu, ids,DataScope.of());
}
/**
* 解析供应商ID(存在则返回,不存在则创建)
*
@@ -98,4 +98,37 @@
</where>
ORDER BY es.sort DESC,es.id DESC
</select>
<select id="exportSupermarketSpuStockExcel"
resultType="com.bsd.pjcloud.supermarket.vo.erpspu.SmErpSpuStockExcel">
SELECT
es.product_code,
es.product_name,
st.current_stock as stock,
u.unit,
u.bar_code,
u.spec,
u.package_num,
u.retail_price/100 as retail_price,
u.promotion_price/100 as promotion_price
FROM sm_erp_spu es
left join sm_erp_unit u
on es.id = u.spu_id and u.is_base=1
left join sm_erp_stock st
on es.id = st.erp_spu_id
<where>
es.del_flag = 0
<if test="supermarketSpu.id != null">
AND es.id = #{supermarketSpu.id}
</if>
<if test="supermarketSpu.productName != null">
AND es.product_name LIKE CONCAT('%', #{supermarketSpu.productName}, '%')
</if>
<if test="ids != null and !ids.isEmpty()">
AND es.id IN
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
</mapper>