Pārlūkot izejas kodu

师傅辅材关联网点辅材导出

FengChaoYu 10 mēneši atpakaļ
vecāks
revīzija
6d6ba6a2c6

+ 51 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/material/base/WorkerGoodsRelaExportBean.java

@@ -0,0 +1,51 @@
+package com.gree.mall.manager.bean.material.base;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class WorkerGoodsRelaExportBean {
+    @ApiModelProperty(value = "商户编号")
+    private String companyWechatId;
+
+    @ApiModelProperty(value = "商户名称")
+    private String companyWechatName;
+
+    @ApiModelProperty(value = "小类名称")
+    private String goodsCategoryName;
+
+    @ApiModelProperty(value = "师傅辅材编号")
+    private String goodsId;
+
+    @ApiModelProperty(value = "师傅辅材名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "是否小件")
+    private Boolean isSmall;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "网点辅材小类")
+    private String websitCategoryName;
+
+    @ApiModelProperty(value = "网点辅材编号")
+    private String websitGoodsId;
+
+    @ApiModelProperty(value = "网点辅材名称")
+    private String websitGoodsName;
+
+    @ApiModelProperty(value = "规格")
+    private String specification;
+
+    @ApiModelProperty(value = "转换系数")
+    private String goodsSalesConvertQty;
+
+    @ApiModelProperty(value = "是否入师傅库存")
+    private String manageWorkerStock;
+
+    @ApiModelProperty(value = "网点辅材状态")
+    private String websitGoodsStatus;
+}

+ 2 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/MaterialMapper.java

@@ -197,4 +197,6 @@ public interface MaterialMapper {
     IPage<EnginPayManageGatherVO> enginPayManageGatherList(Page page, @Param("ex") ZfireParamBean zfireParamBean);
 
     List<EnginPayManageGatherVO> enginPayManageGatherLastUpdate(@Param("companyWechatId") String companyWechatId, @Param("projectList") List<String> projectList);
+
+    List<WorkerGoodsRelaExportBean> exportWorkerMaterialRela(@Param("companyWechatId") String companyWechatId);
 }

+ 5 - 1
mall-server-api/src/main/java/com/gree/mall/manager/controller/material/base/WorkerGoodsController.java

@@ -3,12 +3,15 @@ package com.gree.mall.manager.controller.material.base;
 import cn.hutool.core.lang.TypeReference;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.ExcelData;
 import com.gree.mall.manager.bean.material.base.WorkerGoodsBean;
 import com.gree.mall.manager.bean.material.base.WorkerGoodsVO;
 import com.gree.mall.manager.constant.Constant;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.helper.ResponseHelper;
 import com.gree.mall.manager.logic.material.base.WorkerGoodsLogic;
+import com.gree.mall.manager.utils.CommonUtils;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import io.swagger.annotations.Api;
@@ -61,7 +64,8 @@ public class WorkerGoodsController {
     @GetMapping("/rela/export")
     @ApiOperation("师傅辅材管理-相关关联辅材")
     public void downLoadExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {
-
+        ExcelData excelData = workerGoodsLogic.relaExport();
+        ExcelUtils.exportExcel(request,response, CommonUtils.getCurDateFileName("师傅辅材关联明细", "xlsx"),excelData);
     }
 
     @PostMapping("/detail")

+ 83 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/material/base/WorkerGoodsLogic.java

@@ -3,27 +3,39 @@ package com.gree.mall.manager.logic.material.base;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.bean.ExcelData;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.material.base.WorkerGoodsBean;
+import com.gree.mall.manager.bean.material.base.WorkerGoodsRelaExportBean;
 import com.gree.mall.manager.bean.material.base.WorkerGoodsVO;
 import com.gree.mall.manager.commonmapper.MaterialMapper;
+import com.gree.mall.manager.enums.IsYesNoEnum;
+import com.gree.mall.manager.enums.base.BaseEnum;
+import com.gree.mall.manager.enums.material.StateEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.plus.entity.MaterialConfig;
+import com.gree.mall.manager.plus.entity.WebsitGoodsCategory;
 import com.gree.mall.manager.plus.entity.WorkerGoods;
 import com.gree.mall.manager.plus.entity.WorkerGoodsRela;
 import com.gree.mall.manager.plus.service.MaterialConfigService;
+import com.gree.mall.manager.plus.service.WebsitGoodsCategoryService;
 import com.gree.mall.manager.plus.service.WorkerGoodsRelaService;
 import com.gree.mall.manager.plus.service.WorkerGoodsService;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -35,6 +47,7 @@ public class WorkerGoodsLogic {
     private final WorkerGoodsService workerGoodsService;
     private final WorkerGoodsRelaService workerGoodsRelaService;
     private final MaterialConfigService materialConfigService;
+    private final WebsitGoodsCategoryService websitGoodsCategoryService;
 
     public IPage<WorkerGoodsVO> page(ZfireParamBean zfireParamBean) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
@@ -64,9 +77,15 @@ public class WorkerGoodsLogic {
         bean.setGoodsId(null);
         bean.setCompanyWechatId(adminUser.getCompanyWechatId());
 
+        final WebsitGoodsCategory category = websitGoodsCategoryService.getById(bean.getCategoryId());
+
         WorkerGoods workerGoods = new WorkerGoods();
         BeanUtils.copyProperties(bean, workerGoods);
-        workerGoods.setGoodsId("W" + incrId);
+        workerGoods.setGoodsId("W" + incrId)
+                .setParentCategoryId(category.getParentCategoryId())
+                .setParentCategoryName(category.getParentCategoryName())
+                .setGoodsCategoryId(category.getCategoryId())
+                .setGoodsCategoryName(category.getCategoryName());
         workerGoods.insert();
 
         config.setWorkerGoodsIncrId(incrId + 1)
@@ -98,6 +117,12 @@ public class WorkerGoodsLogic {
         WorkerGoods workerGoods = new WorkerGoods();
         BeanUtils.copyProperties(bean, workerGoods);
 
+        final WebsitGoodsCategory category = websitGoodsCategoryService.getById(bean.getCategoryId());
+        workerGoods.setParentCategoryId(category.getParentCategoryId())
+                .setParentCategoryName(category.getParentCategoryName())
+                .setGoodsCategoryId(category.getCategoryId())
+                .setGoodsCategoryName(category.getCategoryName());
+
         workerGoods.updateById();
 
         if (CollectionUtil.isNotEmpty(bean.getItems())) {
@@ -119,4 +144,61 @@ public class WorkerGoodsLogic {
             workerGoodsRelaService.saveBatch(bean.getItems());
         }
     }
+
+    public ExcelData relaExport() throws Exception {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        final List<WorkerGoodsRelaExportBean> beans = materialMapper.exportWorkerMaterialRela(adminUser.getCompanyWechatId());
+
+        String[] titles = new String[]{"商户名称", "小类名称", "师傅辅材编号", "师傅辅材名称", "是否小件", "状态", "网点辅材小类"
+                , "网点辅材编号", "网点辅材名称", "规格", "转换系数", "是否入师傅库存", "网点辅材状态"};
+        List<List<Object>> rows = new ArrayList<>();
+
+        final Map<String, List<WorkerGoodsRelaExportBean>> beanMap = beans.stream().collect(Collectors.groupingBy(v -> v.getCompanyWechatId() + v.getGoodsId()));
+
+
+        for (Map.Entry<String, List<WorkerGoodsRelaExportBean>> entry : beanMap.entrySet()) {
+            List<Object> row = new ArrayList<>();
+            final List<WorkerGoodsRelaExportBean> entryValue = entry.getValue();
+            final WorkerGoodsRelaExportBean exportBean = entryValue.get(0);
+
+            row.add(exportBean.getCompanyWechatName());
+            row.add(exportBean.getGoodsCategoryName());
+            row.add(exportBean.getGoodsId());
+            row.add(exportBean.getGoodsName());
+            row.add(exportBean.getIsSmall() ? "是" : "否");
+            row.add(StringUtils.isNotBlank(exportBean.getStatus()) ? BaseEnum.valueToEnum(StateEnum.class, exportBean.getStatus()).getRemark() : "");
+            row.add(exportBean.getWebsitCategoryName());
+            row.add(exportBean.getWebsitGoodsId());
+            row.add(exportBean.getWebsitGoodsName());
+            row.add(exportBean.getSpecification());
+            row.add(exportBean.getGoodsSalesConvertQty());
+            row.add(StringUtils.isNotBlank(exportBean.getManageWorkerStock()) ?BaseEnum.valueToEnum(IsYesNoEnum.class, exportBean.getManageWorkerStock()).getRemark() : "");
+            row.add(StringUtils.isNotBlank(exportBean.getWebsitGoodsStatus()) ?BaseEnum.valueToEnum(StateEnum.class, exportBean.getWebsitGoodsStatus()).getRemark() : "");
+            rows.add(row);
+
+            if (entryValue.size() > 1) {
+                for (int i = 1; i < entryValue.size(); i++) {
+                    row.add("");
+                    row.add("");
+                    row.add("");
+                    row.add("");
+                    row.add("");
+                    row.add("");
+                    row.add(exportBean.getWebsitCategoryName());
+                    row.add(exportBean.getWebsitGoodsId());
+                    row.add(exportBean.getWebsitGoodsName());
+                    row.add(exportBean.getSpecification());
+                    row.add(exportBean.getGoodsSalesConvertQty());
+                    row.add(StringUtils.isNotBlank(exportBean.getManageWorkerStock()) ?BaseEnum.valueToEnum(IsYesNoEnum.class, exportBean.getManageWorkerStock()).getRemark() : "");
+                    row.add(StringUtils.isNotBlank(exportBean.getWebsitGoodsStatus()) ?BaseEnum.valueToEnum(StateEnum.class, exportBean.getWebsitGoodsStatus()).getRemark() : "");
+                    rows.add(row);
+                }
+            }
+        }
+
+        ExcelData excelData = new ExcelData();
+        excelData.setRows(rows);
+        excelData.setTitles(Arrays.asList(titles));
+        return excelData;
+    }
 }

+ 4 - 0
mall-server-api/src/main/java/com/gree/mall/manager/utils/CommonUtils.java

@@ -416,4 +416,8 @@ public class CommonUtils {
             return "未执行";
         return "";
     }
+
+    public static String getCurDateFileName(String name, String fileSuffix) {
+        return name + DateUtils.formatDate1(new Date()) + "." + fileSuffix;
+    }
 }

+ 28 - 0
mall-server-api/src/main/resources/mapper/MaterialMapper.xml

@@ -366,4 +366,32 @@
         GROUP BY project_no) b
     ON a.project_no = b.project_no AND a.last_update_time = b.max_time AND a.company_wechat_id = #{companyWechatId}
     </select>
+    <select id="exportWorkerMaterialRela"
+            resultType="com.gree.mall.manager.bean.material.base.WorkerGoodsRelaExportBean">
+        SELECT
+            a.company_wechat_id,
+            a.company_wechat_name,
+            a.goods_category_name,
+            a.goods_id,
+            a.goods_name,
+            a.is_small,
+            a.status,
+            b.goods_category_name AS websitCategoryName,
+            b.websit_goods_id,
+            b.websit_goods_name,
+            c.goods_specification AS specification,
+            c.goods_sales_convert_qty,
+            c.manage_worker_stock,
+            c.status AS websitGoodsStatus
+        FROM
+            worker_goods a
+                LEFT JOIN worker_goods_rela b ON a.company_wechat_id = b.company_wechat_id AND a.goods_id = b.worker_goods_id
+                LEFT JOIN websit_goods c ON a.company_wechat_id = c.company_wechat_id AND b.websit_goods_id = c.goods_id
+        <where>
+            <if test="companyWechatId != null and companyWechatId != ''">
+                AND a.company_wechat_id = #{companyWechatId}
+            </if>
+        </where>
+
+    </select>
 </mapper>

BIN
mall-server-api/src/main/resources/template/辅材模板.xlsx