From 71ac618a24f38d8d69e39e55e55823d5a77fcf93 Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Mon, 11 Nov 2024 16:30:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yxt/goods/apiadmin/GoodsBrandRest.java | 2 +- .../goods/apiadmin/GoodsManufacturerRest.java | 2 +- .../com/yxt/goods/apiadmin/GoodsSpuRest.java | 4 +- .../com/yxt/goods/apiadmin/GoodsTypeRest.java | 4 +- .../com/yxt/goods/apiadmin/GoodsUnitRest.java | 4 +- .../goodsbrandinfo/GoodsBrandInfoMapper.java | 3 +- .../goodsbrandinfo/GoodsBrandInfoMapper.xml | 11 +++ .../goodsbrandinfo/GoodsBrandInfoService.java | 40 +++++++++-- .../GoodsManufacturerMapper.java | 2 + .../GoodsManufacturerMapper.xml | 11 +++ .../GoodsManufacturerService.java | 38 +++++++++- .../yxt/goods/biz/goodsspu/GoodsSpuDto.java | 5 ++ .../goods/biz/goodsspu/GoodsSpuMapper.java | 1 + .../yxt/goods/biz/goodsspu/GoodsSpuMapper.xml | 10 +++ .../yxt/goods/biz/goodsspu/GoodsSpuQuery.java | 5 ++ .../goods/biz/goodsspu/GoodsSpuService.java | 72 ++++++++++++++++--- .../goods/biz/goodstype/GoodsTypeMapper.java | 1 + .../goods/biz/goodstype/GoodsTypeMapper.xml | 11 +++ .../goods/biz/goodstype/GoodsTypeService.java | 36 +++++++++- .../goods/biz/goodsunit/GoodsUnitMapper.java | 2 + .../goods/biz/goodsunit/GoodsUnitMapper.xml | 11 +++ .../goods/biz/goodsunit/GoodsUnitService.java | 37 +++++++++- 22 files changed, 289 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsBrandRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsBrandRest.java index 2297fc1..88fc1cb 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsBrandRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsBrandRest.java @@ -32,7 +32,7 @@ public class GoodsBrandRest { } @ApiOperation("查询所有的品牌") @PostMapping("/listAll") - public ResultBean> listAll(@RequestBody OrgPathQuery query) { + public ResultBean> listAll(@RequestBody OrgPathQuery query) { return baseBrandInfoService.listAll(query); } @ApiOperation("保存修改") diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsManufacturerRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsManufacturerRest.java index 84173ac..b046290 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsManufacturerRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsManufacturerRest.java @@ -33,7 +33,7 @@ public class GoodsManufacturerRest { @ApiOperation("查询所有的厂家") @PostMapping("/listAll") - public ResultBean> listAll(@RequestBody OrgPathQuery query) { + public ResultBean> listAll(@RequestBody OrgPathQuery query) { return baseManufacturerService.listAll(query); } diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java index d4d1eef..f761c66 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java @@ -57,8 +57,8 @@ public class GoodsSpuRest { } @ApiOperation("保存") @PostMapping("/batchSave") - public ResultBean batchSave(@RequestBody List dtos) { - return goodsSpuService.batchSave(dtos); + public ResultBean batchSave(@RequestBody List dtos,@RequestParam("orgPath") String orgPath) { + return goodsSpuService.batchSave(dtos,orgPath); } // @ApiOperation("保存商品信息及sku") // @PostMapping("/save") diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsTypeRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsTypeRest.java index a911fe9..82bd581 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsTypeRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsTypeRest.java @@ -1,5 +1,6 @@ package com.yxt.goods.apiadmin; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; import com.yxt.goods.biz.goodstype.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -32,7 +33,7 @@ public class GoodsTypeRest { } @ApiOperation("查询所有的类别") @PostMapping("/listAll") - public ResultBean> listAll(@RequestBody OrgPathQuery query) { + public ResultBean> listAll(@RequestBody OrgPathQuery query) { return goodsTypeService.listAll(query); } @@ -77,4 +78,5 @@ public class GoodsTypeRest { public ResultBean updateIsGoodsID(@PathVariable("sid") String sid,@PathVariable("state")String state) { return goodsTypeService.updateProductCode(sid,state); } + } diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsUnitRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsUnitRest.java index bff9bf6..89ad0c6 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsUnitRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsUnitRest.java @@ -1,5 +1,6 @@ package com.yxt.goods.apiadmin; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; import com.yxt.goods.biz.goodsunit.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -32,7 +33,7 @@ public class GoodsUnitRest { } @ApiOperation("查询所有的类别") @PostMapping("/listAll") - public ResultBean> listAll(@RequestBody OrgPathQuery query) { + public ResultBean> listAll(@RequestBody OrgPathQuery query) { return goodsUnitService.listAll(query); } @@ -73,4 +74,5 @@ public class GoodsUnitRest { public ResultBean getUnitByName(@PathVariable("name") String name) { return goodsUnitService.getUnitByName(name); } + } diff --git a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.java b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.java index 747aea6..9bb9a8c 100644 --- a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.java +++ b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturer; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,5 +19,5 @@ public interface GoodsBrandInfoMapper extends BaseMapper { int updateBySidIsDelete(List list); IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List listAll(@Param("orgPath")String orgPath); - + List selectBrandNotIn(@Param("names")List names, @Param("orgPath")String orgPath); } diff --git a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml index a7b5e90..4c3948d 100644 --- a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml @@ -30,4 +30,15 @@ #{item} + \ No newline at end of file diff --git a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java index 01403a7..4a60295 100644 --- a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java +++ b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java @@ -11,16 +11,15 @@ import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturer; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; import com.yxt.goods.utils.OrgPathQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestBody; import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -71,7 +70,7 @@ public class GoodsBrandInfoService extends MybatisBaseService> listAll( OrgPathQuery query) { + public ResultBean> listAll( OrgPathQuery query) { ResultBean rb = ResultBean.fireFail(); List pagging = baseMapper.listAll(query.getOrgPath()); return rb.success().setData(pagging); @@ -145,4 +144,35 @@ public class GoodsBrandInfoService extends MybatisBaseService().eq("brandName",name)); return rb.success().setData(type); } + public ResultBean saveBrand(List dtos, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + + List dtos1=new ArrayList<>(); + List goodsTypes=new ArrayList<>(); + dtos1.addAll(dtos); + //查找已存在的 + List goodsType=baseMapper.selectBrandNotIn(dtos.stream().map(GoodsSpuDto::getBrandName).collect(Collectors.toList()),orgPath); + if(goodsType.size()!=0){ + for (GoodsSpuDto dto : dtos) { + for (GoodsBrandInfo type : goodsType) { + if(dto.getGoodsTypeName().equals(type.getBrandName())){ + dtos1.remove(dto); + type.setIsEnable(1); + type.setIsDelete(0); + baseMapper.updateById(type); + } + } + } + } + for (GoodsSpuDto dto : dtos1) { + GoodsBrandInfo type=new GoodsBrandInfo(); + type.setBrandName(dto.getBrandName()); + type.setCreateOrgSid(orgPath); + type.setUseOrgSid(orgPath); + goodsTypes.add(type); + } + this.saveBatch(goodsTypes); + + return rb.success().setMsg("成功"); + } } diff --git a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.java b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.java index 00d9899..9ba157a 100644 --- a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.java +++ b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfoVo; +import com.yxt.goods.biz.goodstype.GoodsType; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -21,4 +22,5 @@ public interface GoodsManufacturerMapper extends BaseMapper { List getAllTypeByUseOrgSid(@Param("useOrgSid") String useOrgSid); int updateBySidIsDelete(List list); List listAll(@Param("orgPath")String orgPath); + List selectManufacturerNotIn(@Param("names")List names, @Param("orgPath")String orgPath); } diff --git a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.xml b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.xml index 37e3576..31dc5f5 100644 --- a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerMapper.xml @@ -35,4 +35,15 @@ #{item} + \ No newline at end of file diff --git a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java index 05aa1f7..6d9fba1 100644 --- a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java +++ b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java @@ -11,11 +11,16 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfoVo; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; +import com.yxt.goods.biz.goodstype.GoodsType; +import com.yxt.goods.biz.goodsunit.GoodsUnit; import com.yxt.goods.utils.OrgPathQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestBody; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -68,7 +73,7 @@ public class GoodsManufacturerService extends MybatisBaseService records = pagging.getRecords(); return rb.success().setData(p); } - public ResultBean> listAll(OrgPathQuery query) { + public ResultBean> listAll(OrgPathQuery query) { ResultBean rb = ResultBean.fireFail(); // List pagging = baseMapper.selectList(new QueryWrapper().eq("isEnable",1).ne("isDelete","1") // .eq("userOrgSid",query.getUserOrgSid())); @@ -150,4 +155,35 @@ public class GoodsManufacturerService extends MybatisBaseService().eq("manufacturerName",name)); return rb.success().setData(type); } + public ResultBean saveManufacturer(List dtos, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + + List dtos1=new ArrayList<>(); + List goodsTypes=new ArrayList<>(); + dtos1.addAll(dtos); + //查找已存在的 + List goodsType=baseMapper.selectManufacturerNotIn(dtos.stream().map(GoodsSpuDto::getManufacturerName).collect(Collectors.toList()),orgPath); + if(goodsType.size()!=0){ + for (GoodsSpuDto dto : dtos) { + for (GoodsManufacturer type : goodsType) { + if(dto.getGoodsTypeName().equals(type.getManufacturerName())){ + dtos1.remove(dto); + type.setIsEnable(1); + type.setIsDelete(0); + baseMapper.updateById(type); + } + } + } + } + for (GoodsSpuDto dto : dtos1) { + GoodsManufacturer type=new GoodsManufacturer(); + type.setManufacturerName(dto.getManufacturerName()); + type.setCreateOrgSid(orgPath); + type.setUseOrgSid(orgPath); + goodsTypes.add(type); + } + this.saveBatch(goodsTypes); + + return rb.success().setMsg("成功"); + } } diff --git a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuDto.java b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuDto.java index 2d1b962..12ee1fd 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuDto.java +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuDto.java @@ -29,8 +29,13 @@ public class GoodsSpuDto implements Dto { private String goodsPY;//拼音缩写 private String goodsShortName;//商品简称 private String goodsTypeSid;//商品分类sid + private String goodsTypeName;//商品分类sid + private String brandSid;//品牌sid + private String brandName;//品牌sid + private String manufacturerSid;//厂家sid + private String manufacturerName;//厂家sid private String goodsUnitSid;//商品单位sid private String goodsUnitName;//商品单位名称 private String taxRate;//税率 diff --git a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.java b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.java index bad09d1..24e82f5 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.java +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.java @@ -21,6 +21,7 @@ public interface GoodsSpuMapper extends BaseMapper { GoodsSpuVo initialization(@Param("sid")String sid); int updateBySidIsDelete(List list); List listAll(@Param("orgPath")String orgPath); + GoodsSpuVo getGoodsByOrgAndCode(@Param("orgPath")String orgPath,@Param("goodsCode")String goodsCode); IPage getGoodsForSales(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); diff --git a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml index b776e08..f30faa3 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml @@ -25,6 +25,7 @@ s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' and a.isEnable='1' + + UPDATE goods_spu SET isDelete=1 diff --git a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuQuery.java b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuQuery.java index 42bd4c6..a8606fa 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuQuery.java +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuQuery.java @@ -11,6 +11,11 @@ import lombok.Data; @Data public class GoodsSpuQuery implements Query { private String name; + private String goodsCode; + private String barCode; + private String brandName; + private String TypeName; + private String manufacturerName; private String userOrgSid; private String createOrgSid;//创建组织sid private String orgLevelKey;//权限等级 diff --git a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java index c9d339d..46c47c0 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java @@ -6,7 +6,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.goods.apiadmin.GoodsBrandRest; import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfo; +import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfoDto; import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfoService; +import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfoVo; +import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerDto; import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerVo; import com.yxt.goods.biz.goodssku.GoodsSku; import com.yxt.goods.biz.goodssku.GoodsSkuDto; @@ -20,12 +23,15 @@ import com.yxt.goods.biz.goodsspudetail.GoodsSpuDetailDto; import com.yxt.goods.biz.goodsspudetail.BaseGoodsSpuDetailService; import com.yxt.goods.biz.goodsspudetail.BaseGoodsSpuDetailVo; import com.yxt.goods.biz.goodstype.GoodsType; +import com.yxt.goods.biz.goodstype.GoodsTypeDto; import com.yxt.goods.biz.goodstype.GoodsTypeService; import com.yxt.goods.biz.goodstype.GoodsTypeVo; import com.yxt.goods.biz.goodsunit.GoodsUnit; +import com.yxt.goods.biz.goodsunit.GoodsUnitDto; import com.yxt.goods.biz.goodsunit.GoodsUnitService; import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturer; import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerService; +import com.yxt.goods.biz.goodsunit.GoodsUnitVo; import com.yxt.goods.utils.ExcelUtil; import com.yxt.goods.utils.OrgPathQuery; import com.yxt.goods.utils.PinYinUtils; @@ -103,7 +109,21 @@ public class GoodsSpuService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); @@ -201,23 +221,58 @@ public class GoodsSpuService extends MybatisBaseService batchSave(List dtos) { + public ResultBean batchSave(List dtos,String orgPath) { ResultBean rb = ResultBean.fireFail(); List spus = new ArrayList<>(); - List skus=new ArrayList<>(); + List spus1 = new ArrayList<>(); + List dtos1=new ArrayList<>(); + + Listtypes=dtos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GoodsSpuDto::getGoodsTypeName))),ArrayList::new)); + goodsTypeService.saveType(types,orgPath); + List ma=dtos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GoodsSpuDto::getManufacturerName))),ArrayList::new)); + baseManufacturerService.saveManufacturer(ma,orgPath); + List brand=dtos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GoodsSpuDto::getBrandName))),ArrayList::new)); + baseBrandInfoService.saveBrand(brand,orgPath); + List unit=dtos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GoodsSpuDto::getGoodsUnitName))),ArrayList::new)); + goodsUnitService.saveUnit(unit,orgPath); + OrgPathQuery query =new OrgPathQuery(); + query.setOrgPath(orgPath); for (GoodsSpuDto dto : dtos) { + Listall=goodsSkuService.listAllByOrg(query).getData(); + for (GoodsSkuDto baseGoodsSkus : dto.getBaseGoodsSkus()) { + boolean b =all.stream().anyMatch(o->o.getGoodsSkuCode().equals(baseGoodsSkus.getGoodsSkuCode())); + if(b) { + return rb.setMsg("规格代码"+baseGoodsSkus.getGoodsSkuCode()+"已存在!"); + } + } GoodsSpu wmsGoods = new GoodsSpu(); +// skus.addAll(dto.getBaseGoodsSkus()); + List types1=goodsTypeService.listAll(query).getData(); + dto.setGoodsTypeSid(types1.stream().filter(o->o.getGoodsTypeName().equals(dto.getGoodsTypeName())).collect(Collectors.toList()).get(0).getSid()); + List goodsUnits=goodsUnitService.listAll(query).getData(); + dto.setGoodsUnitSid(goodsUnits.stream().filter(o-> o.getUnitName().equals(dto.getGoodsUnitName())).collect(Collectors.toList()).get(0).getSid()); + List brandInfos=baseBrandInfoService.listAll(query).getData(); + dto.setBrandSid(brandInfos.stream().filter(o-> o.getBrandName().equals(dto.getBrandName())).collect(Collectors.toList()).get(0).getSid()); + List manufacturers=baseManufacturerService.listAll(query).getData(); + dto.setManufacturerSid(manufacturers.stream().filter(o-> o.getManufacturerName().equals(dto.getManufacturerName())).collect(Collectors.toList()).get(0).getSid()); BeanUtil.copyProperties(dto, wmsGoods, "id"); wmsGoods.setCreateTime(new DateTime()); -// skus.addAll(dto.getBaseGoodsSkus()); - spus.add(wmsGoods); + wmsGoods.setUseOrgSid(orgPath); + wmsGoods.setCreateOrgSid(orgPath); + GoodsSpuVo vo=baseMapper.getGoodsByOrgAndCode(orgPath,dto.getGoodsCode()); + if(null==vo){ + spus.add(wmsGoods); + dtos1.add(dto); + } + for (GoodsSkuDto baseGoodsSkus : dto.getBaseGoodsSkus()) { + baseGoodsSkus.setGoodsSpuSid(vo.getSid()); + } } this.saveBatch(spus); - baseGoodsSpuDetailService.batchSave(dtos); + baseGoodsSpuDetailService.batchSave(dtos1); goodsSkuService.skuBatchSave(dtos); return rb.success().setMsg("成功"); } - public ResultBean initialization(String sid) { ResultBean rb = ResultBean.fireFail(); GoodsSpuVo vo = baseMapper.initialization(sid); @@ -332,7 +387,8 @@ public class GoodsSpuService extends MybatisBaseService { int updateBySidIsDelete(List list); IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List listAll(@Param("orgPath")String orgPath); + List selectTypeNotIn(@Param("names")List names,@Param("orgPath")String orgPath); } diff --git a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml index 9882d2c..021c56e 100644 --- a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml @@ -22,6 +22,17 @@ s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' and a.isEnable='1' + UPDATE goods_type SET isDelete=1 diff --git a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java index 0d33d95..d97b0ee 100644 --- a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java +++ b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java @@ -11,10 +11,14 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerVo; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; +import com.yxt.goods.biz.goodsunit.GoodsUnit; import com.yxt.goods.utils.OrgPathQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -95,7 +99,7 @@ public class GoodsTypeService extends MybatisBaseService> listAll(OrgPathQuery query) { + public ResultBean> listAll(OrgPathQuery query) { ResultBean rb = ResultBean.fireFail(); List pagging = baseMapper.listAll(query.getOrgPath()); return rb.success().setData(pagging); @@ -212,4 +216,34 @@ public class GoodsTypeService extends MybatisBaseService dtos,String orgPath) { + ResultBean rb = ResultBean.fireFail(); + List dtos1=new ArrayList<>(); + List goodsTypes=new ArrayList<>(); + dtos1.addAll(dtos); + //查找已存在的 + List goodsType=baseMapper.selectTypeNotIn(dtos.stream().map(GoodsSpuDto::getGoodsTypeName).collect(Collectors.toList()),orgPath); + if(goodsType.size()!=0){ + for (GoodsSpuDto dto : dtos) { + for (GoodsType type : goodsType) { + if(dto.getGoodsTypeName().equals(type.getGoodsTypeName())){ + dtos1.remove(dto); + type.setIsEnable(1); + type.setIsDelete(0); + baseMapper.updateById(type); + } + } + } + } + for (GoodsSpuDto dto : dtos1) { + GoodsType type=new GoodsType(); + type.setGoodsTypeName(dto.getGoodsTypeName()); + type.setCreateOrgSid(orgPath); + type.setUseOrgSid(orgPath); + goodsTypes.add(type); + } + this.saveBatch(goodsTypes); + return rb.success().setMsg("成功"); + } + } diff --git a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.java b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.java index 91fe804..ce48bec 100644 --- a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.java +++ b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.goods.biz.goodstype.GoodsType; import com.yxt.goods.biz.goodstype.GoodsTypeVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -19,4 +20,5 @@ public interface GoodsUnitMapper extends BaseMapper { IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); int updateBySidIsDelete(List list); List listAll(@Param("orgPath")String orgPath); + List selectUnitNotIn(@Param("names")List names, @Param("orgPath")String orgPath); } diff --git a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.xml b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.xml index 8454725..afef4d9 100644 --- a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitMapper.xml @@ -30,4 +30,15 @@ #{item} + \ No newline at end of file diff --git a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java index cbe691b..e34bb58 100644 --- a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java +++ b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java @@ -10,12 +10,17 @@ import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.goods.biz.goodsbrandinfo.GoodsBrandInfo; import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerVo; +import com.yxt.goods.biz.goodsspu.GoodsSpuDto; +import com.yxt.goods.biz.goodstype.GoodsType; import com.yxt.goods.utils.OrgPathQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.RequestBody; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; @@ -66,7 +71,7 @@ public class GoodsUnitService extends MybatisBaseService p = PagerUtil.pageToVo(pagging, null); List records = pagging.getRecords(); return rb.success().setData(p); - } public ResultBean> listAll( OrgPathQuery query) { + } public ResultBean> listAll( OrgPathQuery query) { ResultBean rb = ResultBean.fireFail(); // List pagging = baseMapper.selectList(new QueryWrapper().eq("isEnable",1).ne("isDelete","1") // .eq("userOrgSid",query.getUserOrgSid())); @@ -146,4 +151,34 @@ public class GoodsUnitService extends MybatisBaseService().eq("unitName",name)); return rb.success().setData(type); } + public ResultBean saveUnit(List dtos, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + + List dtos1=new ArrayList<>(); + List goodsTypes=new ArrayList<>(); + dtos1.addAll(dtos); + //查找已存在的 + List goodsType=baseMapper.selectUnitNotIn(dtos.stream().map(GoodsSpuDto::getGoodsUnitName).collect(Collectors.toList()),orgPath); + if(goodsType.size()!=0){ + for (GoodsSpuDto dto : dtos) { + for (GoodsUnit type : goodsType) { + if(dto.getGoodsTypeName().equals(type.getUnitName())){ + dtos1.remove(dto); + type.setIsEnable(1); + type.setIsDelete(0); + baseMapper.updateById(type); + } + } + } + } + for (GoodsSpuDto dto : dtos1) { + GoodsUnit type=new GoodsUnit(); + type.setUnitName(dto.getGoodsUnitName()); + type.setCreateOrgSid(orgPath); + type.setUseOrgSid(orgPath); + goodsTypes.add(type); + } + this.saveBatch(goodsTypes); + return rb.success().setMsg("成功"); + } }