From e2d97f3c90a6baa36b9edefe927225da907a27c6 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 19 十二月 2023 10:02:15 +0800 Subject: [PATCH] 去除默认机构默认仓库逻辑 --- consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java | 254 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 223 insertions(+), 31 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 a9747e1..0a43a4e 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,81 @@ package com.consum.base.controller; -import com.consum.base.BaseController; -import com.consum.base.pojo.BaseGoodsTemplateParam; -import com.consum.base.service.BaseGoodsTemplateServiceImpl; -import com.consum.model.po.BaseGoodsModels; -import com.consum.model.po.BaseGoodsTemplate; -import com.consum.model.po.S_dict_data; -import com.consum.model.vo.BaseGoodsTemplateVo; -import com.iplatform.model.po.S_user_core; -import com.walker.db.page.GenericPager; -import com.walker.infrastructure.utils.StringUtils; -import com.walker.web.ResponseValue; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +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.type.StatesType; +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.BaseCategoryService; +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.BaseCategory; +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.StringUtils; +import com.walker.web.ResponseValue; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; /** * @Description 鐗╁搧妯℃澘 * @Author 鍗㈠簡闃� * @Date 2023/10/24 */ +@Api(value = "鐗╁搧妯℃澘", tags = "鐗╁搧妯℃澘") @RestController @RequestMapping("/pc/base/goods/template") public class BaseGoodsTemplateController extends BaseController { @Autowired - private BaseGoodsTemplateServiceImpl baseGoodsTemplateService; + private BaseGoodsTemplateService baseGoodsTemplateService; + + @Autowired + private LWhGoodsService lWhGoodsService; + + @Autowired + private BaseWarehouseService baseWarehouseService; + + @Autowired + private FinSysTenantService finSysTenantService; + + @Autowired + private BaseCategoryService baseCategoryService; /** * @Description 鏂板鐗╁搧妯℃澘 @@ -39,20 +83,30 @@ * @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("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); + } if (param.getCategoryId() == null) { return ResponseValue.error("鍒嗙被涓虹┖"); } 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("鐗╁搧鍚嶇О宸插瓨鍦�"); } - int result = this.baseGoodsTemplateService.add(param, this.getCurrentUser()); + int result = this.baseGoodsTemplateService.add(param, sysInfo); if (result > 0) { return ResponseValue.success(1); } @@ -65,11 +119,17 @@ * @Date 2023/10/24 */ @GetMapping("/list") - public ResponseValue queryList(BaseGoodsTemplateParam param) { - S_user_core currentUser = this.getCurrentUser(); - if (currentUser == null) { + 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("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); } + param.setAgencyId(Long.valueOf(sysInfo.getTenantId())); GenericPager<BaseGoodsTemplate> pager = this.baseGoodsTemplateService.queryList(param); return ResponseValue.success(pager); } @@ -98,7 +158,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("鐗╁搧鍚嶇О涓虹┖"); } @@ -116,10 +181,17 @@ * * @author 鍗㈠簡闃� * @date 2023/10/25 + * <p> + * 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆� + * <p> */ - //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("鍙傛暟閿欒"); } @@ -132,10 +204,17 @@ * @Description 鏍规嵁鐗╁搧id鍒犻櫎鐗╁搧 * @Author 鍗㈠簡闃� * @Date 2023/10/25 + * <p> + * 鐗╁搧鐨勭鐢ㄦ垨鍒犻櫎锛屼笉褰卞搷宸茬粡閲囪喘鍏ヨ繃搴撶殑鐗╁搧淇℃伅銆� + * <p/> */ - //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涓虹┖"); } @@ -151,7 +230,7 @@ */ @GetMapping("/select/classificationCode") public ResponseValue queryClassificationCode() { - List<S_dict_data> list = this.baseGoodsTemplateService.queryClassificationCode(); + List<SDictData> list = this.baseGoodsTemplateService.queryClassificationCode(); return ResponseValue.success(list); } @@ -168,16 +247,129 @@ @GetMapping("/query/goodsTemplate") public ResponseValue queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId) { -// if (agencyId == null) { -// return ResponseValue.error("鏈烘瀯id涓虹┖"); -// } - List<BaseGoodsTemplate> list = this.baseGoodsTemplateService.queryGoodsTemplateByCategoryId(agencyId, categoryId); + // 涓嶉檺鍒舵満鏋� + List<BaseGoodsTemplate> list = baseGoodsTemplateService.queryGoodsTemplateByCategoryId(null, categoryId, + StatesType.NORMAL.getValue(), null); if (list == null) { return ResponseValue.error("鏌ヨ澶辫触锛�"); } return ResponseValue.success("鏌ヨ鎴愬姛!", list); } + @ApiOperation(value = "璋冩嫧鏌ヨ鏈烘瀯涓嬫墍鏈変粨搴撲笅鐨勫垎绫绘ā鏉夸俊鎭�", notes = "璋冩嫧鏌ヨ鏈烘瀯涓嬫墍鏈変粨搴撲笅鐨勫垎绫绘ā鏉夸俊鎭�") + @ApiImplicitParams({ + @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) { + // 璋冩嫧鏌ヨ鎵�鏈変粨搴撶墿鍝佹ā鏉夸俊鎭� + Map<String, Object> map = new HashMap<>(); + map.put("categoryId", categoryId); + + List<BaseWarehouse> baseWarehouseList = + baseWarehouseService.getBaseWareHouseList(agencyId, StatesType.NORMAL.getValue()); + if (CollectionUtils.isEmpty(baseWarehouseList)) { + return ResponseValue.error("鏈烘瀯鏃犱粨搴擄紒"); + + } + List<Long> warehouseIdList = baseWarehouseList.stream().map(BaseWarehouse::getId).collect(Collectors.toList()); + map.put("warehouseIdList", warehouseIdList); + + 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 in (:warehouseIdList) " + + "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()); + goodsTemplateList.forEach(item -> { + GoodsTemplateVO goodsTemplateVO = MapUtils.convertMapToObj(item, GoodsTemplateVO.class); + resultList.add(goodsTemplateVO); + }); + 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 goodsName = data.getGoodsName(); + String goodModelName = data.getGoodModelName(); + String unit = data.getUnit(); + String type = data.getType(); + String agencyName = data.getAgencyName(); + + BaseCategory baseCategory = baseCategoryService.getByCategoryByName(categoryThree); + Long categoryId = baseCategory.getId(); + + Optional<BaseGoodsTemplateParam> optional = + list.stream().filter(item -> item.getCategoryId().equals(categoryId)).findFirst(); + + if (optional.isPresent()) { + BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + baseGoodsModels.setModelName(goodModelName); + baseGoodsModels.setUnit(unit); + optional.get().getModels().add(baseGoodsModels); + } else { + BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam(); + baseGoodsTemplate.setCategoryId(categoryId); + baseGoodsTemplate.setGoodsName(goodsName); + baseGoodsTemplate.setStates(1); + FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName); + baseGoodsTemplate.setAgencyId(finSysTenant.getId()); + baseGoodsTemplate.setAgencyName(agencyName); + + List<BaseGoodsModels> models = new ArrayList<>(); + BaseGoodsModels baseGoodsModels = new BaseGoodsModels(); + baseGoodsModels.setModelName(goodModelName); + baseGoodsModels.setUnit(unit); + models.add(baseGoodsModels); + baseGoodsTemplate.setModels(models); + + list.add(baseGoodsTemplate); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + for (BaseGoodsTemplateParam baseGoodsTemplate : list) { + baseGoodsTemplateService.add(baseGoodsTemplate, null); + } + } + + @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 + "鍒楄В鏋愬紓甯革紝璇锋纭~鍐�"); + } else { + throw new RuntimeException(exception.getMessage()); + } + } + }).sheet(0).doRead(); + + return ResponseValue.success("瀵煎叆鎴愬姛!"); + } } - -- Gitblit v1.9.1