From 2c706a5d58e8315980ea92d6b82e0e4959bad8ca Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期一, 11 十二月 2023 17:44:40 +0800
Subject: [PATCH] 1.修改单据导出 2.修改物品信息导入

---
 consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java |  211 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 166 insertions(+), 45 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
index d03b55d..da2fb8c 100644
--- a/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -1,37 +1,50 @@
 package com.consum.base.controller;
 
-import com.consum.base.BaseController;
-import com.consum.base.core.utils.MapUtils;
-import com.consum.base.core.utils.MapperUtil;
-import com.consum.base.pojo.BaseGoodsTemplateParam;
-import com.consum.base.pojo.response.GoodsTemplateVO;
-import com.consum.base.service.BaseGoodsTemplateServiceImpl;
-import com.consum.base.service.BaseWarehouseServiceImpl;
-import com.consum.base.service.LWhGoodsService;
-import com.consum.model.po.BaseGoodsModels;
-import com.consum.model.po.BaseGoodsTemplate;
-import com.consum.model.po.BaseWarehouse;
-import com.consum.model.po.FinSysTenantUser;
-import com.consum.model.po.SDictData;
-import com.consum.model.vo.BaseGoodsTemplateVo;
-import com.walker.db.page.GenericPager;
-import com.walker.infrastructure.utils.StringUtils;
-import com.walker.web.ResponseValue;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
 import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.exception.ExcelDataConvertException;
+import com.consum.base.BaseController;
+import com.consum.base.core.utils.CommonUtil;
+import com.consum.base.core.utils.MapUtils;
+import com.consum.base.core.utils.MapperUtil;
+import com.consum.base.pojo.BaseGoodsTemplateParam;
+import com.consum.base.pojo.excel.ImportGoodsInfoTemplate;
+import com.consum.base.pojo.response.GoodsTemplateVO;
+import com.consum.base.service.BaseGoodsTemplateService;
+import com.consum.base.service.BaseWarehouseService;
+import com.consum.base.service.FinSysTenantService;
+import com.consum.base.service.LWhGoodsService;
+import com.consum.model.po.BaseGoodsModels;
+import com.consum.model.po.BaseGoodsTemplate;
+import com.consum.model.po.BaseWarehouse;
+import com.consum.model.po.FinSysTenant;
+import com.consum.model.po.FinSysTenantUser;
+import com.consum.model.po.SDictData;
+import com.consum.model.vo.BaseGoodsTemplateVo;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
+import com.walker.web.ResponseValue;
+
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 
 /**
  * @Description 鐗╁搧妯℃澘
@@ -43,13 +56,16 @@
 public class BaseGoodsTemplateController extends BaseController {
 
     @Autowired
-    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
+    private BaseGoodsTemplateService baseGoodsTemplateService;
 
     @Autowired
     private LWhGoodsService lWhGoodsService;
 
     @Autowired
-    private BaseWarehouseServiceImpl baseWarehouseService;
+    private BaseWarehouseService baseWarehouseService;
+
+    @Autowired
+    private FinSysTenantService finSysTenantService;
 
     /**
      * @Description 鏂板鐗╁搧妯℃澘
@@ -57,7 +73,12 @@
      * @Date 2023/10/24
      */
     @PostMapping("/add")
-    public ResponseValue add(@RequestBody BaseGoodsTemplateParam param) {
+    public ResponseValue add() {
+        BaseGoodsTemplateParam param = CommonUtil.getObjFromReqBody(BaseGoodsTemplateParam.class);
+        BaseGoodsTemplateParam param2 = new BaseGoodsTemplateParam();
+        CommonUtil.copyProperties(param, param2);
+        param = param2;
+
         FinSysTenantUser sysInfo = this.getSysInfo();
         if (param.getCategoryId() == null) {
             return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
@@ -68,8 +89,9 @@
         if (StringUtils.isEmpty(param.getGoodsName())) {
             return ResponseValue.error("鐗╁搧鍚嶇О涓虹┖");
         }
-        //鍒ゆ柇鍚屼竴鍒嗙被涓嬬殑鐗╁搧鍚嶇О鏄惁閲嶅
-        BaseGoodsTemplate goodsTemplate = this.baseGoodsTemplateService.getByGoodsNameAndCategoryId(param.getGoodsName(), param.getCategoryId());
+        // 鍒ゆ柇鍚屼竴鍒嗙被涓嬬殑鐗╁搧鍚嶇О鏄惁閲嶅
+        BaseGoodsTemplate goodsTemplate =
+            this.baseGoodsTemplateService.getByGoodsNameAndCategoryId(param.getGoodsName(), param.getCategoryId());
         if (goodsTemplate != null) {
             return ResponseValue.error("鐗╁搧鍚嶇О宸插瓨鍦�");
         }
@@ -87,7 +109,12 @@
      * @Date 2023/10/24
      */
     @GetMapping("/list")
-    public ResponseValue queryList(BaseGoodsTemplateParam param) {
+    public ResponseValue queryList() {
+        BaseGoodsTemplateParam param = CommonUtil.getObjFromReq(BaseGoodsTemplateParam.class);
+        BaseGoodsTemplateParam param2 = new BaseGoodsTemplateParam();
+        CommonUtil.copyProperties(param, param2);
+        param = param2;
+
         FinSysTenantUser sysInfo = this.getSysInfo();
         if (sysInfo == null) {
             return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
@@ -121,7 +148,12 @@
      * @Date 2023/10/24
      */
     @PostMapping("/edit")
-    public ResponseValue edit(@RequestBody BaseGoodsTemplateParam param) {
+    public ResponseValue edit() {
+        BaseGoodsTemplateParam param = CommonUtil.getObjFromReqBody(BaseGoodsTemplateParam.class);
+        BaseGoodsTemplateParam param2 = new BaseGoodsTemplateParam();
+        CommonUtil.copyProperties(param, param2);
+        param = param2;
+
         if (StringUtils.isEmpty(param.getGoodsName())) {
             return ResponseValue.error("鐗╁搧鍚嶇О涓虹┖");
         }
@@ -140,9 +172,14 @@
      * @author 鍗㈠簡闃�
      * @date 2023/10/25
      */
-    //TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
+    // TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
     @PostMapping("/updStatus")
-    public ResponseValue updateStatus(@RequestBody BaseGoodsTemplate goodsTemplate) {
+    public ResponseValue updateStatus() {
+        BaseGoodsTemplate goodsTemplate = CommonUtil.getObjFromReqBody(BaseGoodsTemplate.class);
+        BaseGoodsTemplate param2 = new BaseGoodsTemplate();
+        CommonUtil.copyProperties(goodsTemplate, param2);
+        goodsTemplate = param2;
+
         if (goodsTemplate == null || goodsTemplate.getId() == null || goodsTemplate.getStates() == null) {
             return ResponseValue.error("鍙傛暟閿欒");
         }
@@ -156,9 +193,14 @@
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/25
      */
-    //TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
+    // TODO 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆�
     @DeleteMapping("/del")
-    public ResponseValue updateById(@RequestBody BaseGoodsTemplate goodsTemplate) {
+    public ResponseValue updateById() {
+        BaseGoodsTemplate goodsTemplate = CommonUtil.getObjFromReqBody(BaseGoodsTemplate.class);
+        BaseGoodsTemplate param2 = new BaseGoodsTemplate();
+        CommonUtil.copyProperties(goodsTemplate, param2);
+        goodsTemplate = param2;
+
         if (goodsTemplate.getId() == null) {
             return ResponseValue.error("鐗╁搧id涓虹┖");
         }
@@ -191,38 +233,42 @@
 
     @GetMapping("/query/goodsTemplate")
     public ResponseValue queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) {
-        List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId);
+        // TODO 涓嶉檺鍒舵満鏋�
+        List<BaseGoodsTemplate> list =
+            this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(null, categoryId, null, null);
         if (list == null) {
             return ResponseValue.error("鏌ヨ澶辫触锛�");
         }
         return ResponseValue.success("鏌ヨ鎴愬姛!", list);
     }
 
-
     @ApiOperation(value = "鏌ヨ鏈烘瀯涓嬮粯璁や粨搴撲笅鐨勫垎绫绘ā鏉夸俊鎭�", notes = "鏌ヨ鏈烘瀯涓嬮粯璁や粨搴撲笅鐨勫垎绫绘ā鏉夸俊鎭�")
     @ApiImplicitParams({
-        @ApiImplicitParam(name = "agencyId", value = "鐖剁骇鏈烘瀯id", required = true, dataType = "Long", paramType = "query"),
-        @ApiImplicitParam(name = "categoryId", value = "鍒嗙被id", required = true, dataType = "Long", paramType = "query")
-    })
+        @ApiImplicitParam(name = "agencyId", value = "鐖剁骇鏈烘瀯id", required = true, dataType = "java.lang.Long",
+            paramType = "query"),
+        @ApiImplicitParam(name = "categoryId", value = "鍒嗙被id", required = true, dataType = "Long",
+            paramType = "query")})
     @GetMapping("/query/warehouse/goods")
     public ResponseValue queryWarehouseGoods(Long agencyId, Long categoryId) {
 
+        // TODO 璋冩嫧鏌ヨ浠撳簱鐗╁搧
         Map<String, Object> map = new HashMap<>();
         map.put("categoryId", categoryId);
 
-        List<BaseWarehouse> baseWarehouseList = baseWarehouseService.getByAgencyId(agencyId, (short) 1, (short) 1);
+        List<BaseWarehouse> baseWarehouseList = baseWarehouseService.getByAgencyId(agencyId, (short)1, (short)1);
         if (CollectionUtils.isEmpty(baseWarehouseList)) {
             return ResponseValue.error("鏈烘瀯鏃犻粯璁や粨搴擄紒");
 
         }
         map.put("warehouseId", baseWarehouseList.get(0).getId());
 
-        String sql = "SELECT DISTINCT bgt.id,bgt.GOODS_NAME FROM l_wh_goods g LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.id "
-            + "WHERE WAREHOUSE_TYPE = 0 "
-            + "AND WAREHOUSE_ID = :warehouseId "
-            + "AND CATEGORY_ID = :categoryId "
-            // 1:闆嗛噰,2:鑷��璐�
-            + "AND BUY_TYPE =1";
+        String sql =
+            "SELECT DISTINCT bgt.id,bgt.GOODS_NAME, CLASSIFICATION type FROM l_wh_goods g LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.id "
+                + "WHERE WAREHOUSE_TYPE = 0 " + "AND WAREHOUSE_ID = :warehouseId "
+                // TODO 涓存椂瑙e喅
+                /*+ "AND CATEGORY_ID = :categoryId "*/
+                // 1:闆嗛噰,2:鑷噰
+                + "AND BUY_TYPE =1";
 
         List<GoodsTemplateVO> resultList = Lists.newArrayList();
         List<Map<String, Object>> goodsTemplateList = lWhGoodsService.select(sql, map, new MapperUtil());
@@ -233,6 +279,81 @@
         return ResponseValue.success("鏌ヨ鎴愬姛!", resultList);
     }
 
+    @PostMapping("/import")
+    public ResponseValue upload(MultipartFile file) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        if (!originalFilename.endsWith(".xls")) {
+            return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!");
+        }
+        FinSysTenantUser sysInfo = this.getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖");
+        }
+        EasyExcel.read(file.getInputStream(), ImportGoodsInfoTemplate.class,
+            new AnalysisEventListener<ImportGoodsInfoTemplate>() {
+                List<BaseGoodsTemplateParam> list = Lists.newArrayList();
 
+                @Override
+                public void invoke(ImportGoodsInfoTemplate data, AnalysisContext analysisContext) {
+                    String categoryOne = data.getCategoryOne();
+                    String categoryTwo = data.getCategoryTwo();
+                    String categoryThree = data.getCategoryThree();
+                    String goodName = data.getGoodName();
+                    String goodModel = data.getGoodModel();
+                    String unit = data.getUnit();
+                    String type = data.getType();
+                    String agencyName = data.getAgencyName();
+
+                    list.stream().forEach(item -> {
+                        if (!item.getCategoryId().equals(categoryThree)) {
+                            BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam();
+                            baseGoodsTemplate.setCategoryId(Long.valueOf(categoryThree));
+                            baseGoodsTemplate.setGoodsName(goodName);
+                            baseGoodsTemplate.setStates(1);
+                            FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName);
+                            baseGoodsTemplate.setAgencyId(finSysTenant.getId());
+
+                            List<BaseGoodsModels> models = Lists.newArrayList();
+                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
+                            baseGoodsModels.setModelName(goodModel);
+                            baseGoodsModels.setStates(1);
+                            baseGoodsModels.setGoodsTemplatesId(item.getId());
+                            baseGoodsModels.setUnit(unit);
+                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+                            models.add(baseGoodsModels);
+                            baseGoodsTemplate.setModels(models);
+                        } else {
+                            List<BaseGoodsModels> models = item.getModels();
+                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
+                            baseGoodsModels.setModelName(goodModel);
+                            baseGoodsModels.setStates(1);
+                            baseGoodsModels.setGoodsTemplatesId(item.getId());
+                            baseGoodsModels.setUnit(unit);
+                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
+                            models.add(baseGoodsModels);
+                        }
+                    });
+
+                }
+
+                @Override
+                public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+                    for (BaseGoodsTemplateParam a : list) {
+                        baseGoodsTemplateService.add(a, sysInfo);
+                    }
+                }
+
+                @Override
+                public void onException(Exception exception, AnalysisContext analysisContext) throws Exception {
+                    if (exception instanceof ExcelDataConvertException) {
+                        ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
+                        Integer row = excelDataConvertException.getRowIndex() + 1;
+                        Integer column = excelDataConvertException.getColumnIndex() + 1;
+                        throw new RuntimeException("绗�" + row + "琛岋紝绗�" + column + "鍒楄В鏋愬紓甯革紝璇锋纭~鍐�");
+                    }
+                }
+            }).sheet(0).doRead();
+
+        return ResponseValue.success("瀵煎叆鎴愬姛!", 1);
+    }
 }
-

--
Gitblit v1.9.1