From da932802d7f6104f441b1fa20033e374416e0c85 Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Mon, 30 Dec 2024 10:04:38 +0100 Subject: [PATCH] feat : export sku weight via Excel, fix log for front --- .../controller/admin/SkuWeightController.java | 30 +++++++++++---- .../business/mapper/SkuWeightMapper.java | 5 +++ .../business/mapper/xml/SkuWeightMapper.xml | 38 +++++++++++++++++++ .../business/service/ISkuWeightService.java | 9 +++++ .../service/impl/SkuWeightServiceImpl.java | 11 ++++++ .../modules/business/vo/SkuWeightPage.java | 23 +++++++++++ 6 files changed, 109 insertions(+), 7 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/SkuWeightPage.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuWeightController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuWeightController.java index 9254ab1df..347887959 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuWeightController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/SkuWeightController.java @@ -32,9 +32,11 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.business.vo.Responses; +import org.jeecg.modules.business.vo.SkuWeightPage; import org.jeecg.modules.business.vo.SkuWeightParam; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -157,12 +159,23 @@ public class SkuWeightController extends JeecgController skuIds) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List skuWeightList; + if (skuIds == null || skuIds.isEmpty()) { + skuWeightList = skuWeightService.listLatestWeights(); + } else { + skuWeightList = skuWeightService.listLatestWeightForSkus(skuIds); + } + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, "SKU重量列表"); + mv.addObject(NormalExcelConstants.CLASS, SkuWeightPage.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("SKU重量数据", "导出人:" + sysUser.getRealname(), "SKU重量")); + mv.addObject(NormalExcelConstants.DATA_LIST, skuWeightList); + return mv; } /** @@ -313,7 +326,10 @@ public class SkuWeightController extends JeecgController skuWeights = new ArrayList<>(skuWeightsMap.values()); Responses responses = skuListMabangService.mabangSkuWeightUpdate(skuWeights); List skuWeightSuccesses = new ArrayList<>(); - responses.getSuccesses().forEach(skuErpCode -> skuWeightSuccesses.add(skuWeightsMap.get(skuErpCode))); + responses.getSuccesses().forEach(skuErpCode -> { + String erpCode = skuErpCode.split(":")[0].trim(); + skuWeightSuccesses.add(skuWeightsMap.get(erpCode)); + }); skuWeightSuccesses.forEach(skuWeight -> skuMongoService.upsertSkuWeight(skuWeight)); skuWeightService.saveBatch(skuWeights); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuWeightMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuWeightMapper.java index c1b6db9a3..634967812 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuWeightMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SkuWeightMapper.java @@ -5,6 +5,7 @@ import java.util.List; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.business.entity.SkuWeight; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.business.vo.SkuWeightPage; import org.springframework.stereotype.Repository; /** @@ -18,4 +19,8 @@ public interface SkuWeightMapper extends BaseMapper { SkuWeight getBySkuId(@Param("skuId") String skuId); String searchFirstEmptyWeightSku(@Param("skuIds") List skuIds); + + List listLatestWeights(); + + List listLatestWeightForSkus(@Param("skuIds") List skuIds); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuWeightMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuWeightMapper.xml index bc210352e..a59b234bb 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuWeightMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SkuWeightMapper.xml @@ -24,4 +24,42 @@ ) LIMIT 1; + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuWeightService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuWeightService.java index fe674e045..463c22047 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuWeightService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISkuWeightService.java @@ -2,6 +2,7 @@ package org.jeecg.modules.business.service; import org.jeecg.modules.business.entity.SkuWeight; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.business.vo.SkuWeightPage; import java.util.List; @@ -15,4 +16,12 @@ public interface ISkuWeightService extends IService { SkuWeight getBySkuId(String skuId); String searchFirstEmptyWeightSku(List skuIds); + + /** + * used to export all latest weights for front, so instead of fetching skuId, we fetch erpCode + * @return + */ + List listLatestWeights(); + + List listLatestWeightForSkus(List skuIds); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuWeightServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuWeightServiceImpl.java index 21ce36867..92c8d9b53 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuWeightServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SkuWeightServiceImpl.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.business.entity.SkuWeight; import org.jeecg.modules.business.mapper.SkuWeightMapper; import org.jeecg.modules.business.service.ISkuWeightService; +import org.jeecg.modules.business.vo.SkuWeightPage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,4 +33,14 @@ public class SkuWeightServiceImpl extends ServiceImpl skuIds) { return skuWeightMapper.searchFirstEmptyWeightSku(skuIds); } + + @Override + public List listLatestWeights() { + return skuWeightMapper.listLatestWeights(); + } + + @Override + public List listLatestWeightForSkus(List skuIds) { + return skuWeightMapper.listLatestWeightForSkus(skuIds); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/SkuWeightPage.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/SkuWeightPage.java new file mode 100644 index 000000000..69ba4e094 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/SkuWeightPage.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.business.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.util.Date; + +@Data +@ApiModel(value = "sku_weight Page对象", description = "SKU重量") + +public class SkuWeightPage { + @Excel(name = "ERP中商品代码", width = 15) + @ApiModelProperty(value = "ERP中商品代码") + private String erpCode; + @Excel(name = "重量", width = 15) + @ApiModelProperty(value = "重量") + private Integer weight; + @Excel(name = "生效日期", width = 15) + @ApiModelProperty(value = "生效日期") + private Date effectiveDate; +}