diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsSkuRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsSkuRest.java index fdd8c6b..5a4c495 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsSkuRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsSkuRest.java @@ -27,7 +27,7 @@ public class GoodsSkuRest { @ApiOperation("分页列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq) { + public ResultBean> listPage(@RequestBody PagerQuery pq) { return goodsSkuService.listPage(pq); } @ApiOperation("查询组织下所有商品") @@ -75,9 +75,9 @@ public class GoodsSkuRest { @ApiOperation("入库添加商品列表") @PostMapping("/getSelectList") - ResultBean> getSelectList(@RequestBody PagerQuery pagerQuery) { - ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = goodsSkuService.getSelectList(pagerQuery); + ResultBean> getSelectList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = goodsSkuService.getSelectList(pagerQuery); return rb.success().setData(pv); } diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsSkuSubunitRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsSkuSubunitRest.java new file mode 100644 index 0000000..04840ea --- /dev/null +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsSkuSubunitRest.java @@ -0,0 +1,73 @@ +package com.yxt.goods.apiadmin; + +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.goodsskusubunit.*; +import com.yxt.goods.utils.OrgPathQuery; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 15:49 + */ +@Api(tags = "商品品牌") +@RestController +@RequestMapping("/apiadmin/base/goodsskusubunit") +public class GoodsSkuSubunitRest { + + @Autowired + GoodsSkuSubunitService baseBrandInfoService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return baseBrandInfoService.listPage(pq); + } + @ApiOperation("查询所有的品牌") + @PostMapping("/listAll") + public ResultBean> listAll(@RequestBody OrgPathQuery query) { + return baseBrandInfoService.listAll(query); + } + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdate") + public ResultBean saveOrUpdate(@RequestBody GoodsSkuSubunitDto dto) { + return baseBrandInfoService.saveOrUpdate(dto); + } + + @ApiOperation("初始化") + @GetMapping("/initialization/{sid}") + public ResultBean initialization(@PathVariable("sid") String sid) { + return baseBrandInfoService.initialization(sid); + } + + @ApiOperation("删除") + @DeleteMapping("/delete/{sid}") + public ResultBean delete(@PathVariable("sid") String sid) { + return baseBrandInfoService.delete(sid); + } + + @ApiOperation("根据sid批量删除") + @DeleteMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids){ + ResultBean rb = ResultBean.fireFail(); + baseBrandInfoService.delAll(sids); + return rb.success(); + } + + @ApiOperation("更改可用状态") + @GetMapping("/updateIsEnable/{sid}/{isEnable}") + public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) { + return baseBrandInfoService.updateIsEnable(sid,isEnable); + } + @ApiOperation("根据品牌名查询") + @GetMapping("/getBrandByName/{name}") + public ResultBean getBrandByName(@PathVariable("name") String name) { + return baseBrandInfoService.getBrandByName(name); + } +} diff --git a/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java b/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java index f761c66..7bab1c1 100644 --- a/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java +++ b/src/main/java/com/yxt/goods/apiadmin/GoodsSpuRest.java @@ -55,6 +55,12 @@ public class GoodsSpuRest { public ResultBean saveOrUpdate(@RequestBody GoodsSpuDto dto) { return goodsSpuService.saveOrUpdate(dto); } + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdateByName") + public ResultBean saveOrUpdateByName(@RequestBody GoodsSpuDto dto) { + return goodsSpuService.saveOrUpdateByName(dto); + } + @ApiOperation("保存") @PostMapping("/batchSave") public ResultBean batchSave(@RequestBody List dtos,@RequestParam("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 4c3948d..8fa4dc8 100644 --- a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoMapper.xml @@ -38,7 +38,7 @@ #{item} - and s.orgSidPath like concat('%',#{orgPath},'%') + and s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' \ 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 4a60295..e3ff778 100644 --- a/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java +++ b/src/main/java/com/yxt/goods/biz/goodsbrandinfo/GoodsBrandInfoService.java @@ -78,8 +78,17 @@ public class GoodsBrandInfoService extends MybatisBaseService saveOrUpdate(GoodsBrandInfoDto dto) { ResultBean rb = ResultBean.fireFail(); String sid = ""; + List strings=new ArrayList<>(); + strings.add(dto.getBrandName()); + List brandInfos=baseMapper.selectBrandNotIn(strings,dto.getUseOrgSid()); if (StringUtils.isNotBlank(dto.getSid())) { sid = dto.getSid(); +// GoodsBrandInfo goods=baseMapper.selectOne(new QueryWrapper().eq("brandName",dto.getBrandName())); + if(brandInfos.size()!=0){ + if(!brandInfos.get(0).getSid().equals(sid)){ + return rb.setMsg("商品名不能重复"); + } + } GoodsBrandInfo wmsGoodsBrand = fetchBySid(dto.getSid()); BeanUtil.copyProperties(dto, wmsGoodsBrand, "id", "sid"); if (StringUtils.isBlank(dto.getImage())) { @@ -88,8 +97,8 @@ public class GoodsBrandInfoService extends MybatisBaseService().eq("brandName",dto.getBrandName())); - if(null!=goods){ + + if(brandInfos.size()!=0){ return rb.setMsg("商品名不能重复"); } GoodsBrandInfo wmsGoodsBrand = new GoodsBrandInfo(); @@ -144,7 +153,7 @@ public class GoodsBrandInfoService extends MybatisBaseService().eq("brandName",name)); return rb.success().setData(type); } - public ResultBean saveBrand(List dtos, String orgPath) { + public void saveBrand(List dtos, String orgPath) { ResultBean rb = ResultBean.fireFail(); List dtos1=new ArrayList<>(); @@ -155,7 +164,7 @@ public class GoodsBrandInfoService extends MybatisBaseService #{item} - and s.orgSidPath like concat('%',#{orgPath},'%') + and s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' \ 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 6d9fba1..2a6c02a 100644 --- a/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java +++ b/src/main/java/com/yxt/goods/biz/goodsmanufacturer/GoodsManufacturerService.java @@ -155,7 +155,7 @@ public class GoodsManufacturerService extends MybatisBaseService().eq("manufacturerName",name)); return rb.success().setData(type); } - public ResultBean saveManufacturer(List dtos, String orgPath) { + public void saveManufacturer(List dtos, String orgPath) { ResultBean rb = ResultBean.fireFail(); List dtos1=new ArrayList<>(); @@ -166,7 +166,7 @@ public class GoodsManufacturerService extends MybatisBaseService { - IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List listAllByOrg(@Param("orgPath")String orgPath); List getSkusBySpuSid(@Param("spuSid")String spuSid); GoodsSkuVo getSkuBySid(@Param("sid")String sid); - IPage getSelectList(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + IPage getSelectList(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); IPage purGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); } diff --git a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuMapper.xml b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuMapper.xml index ca724d9..a473ec8 100644 --- a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuMapper.xml @@ -4,10 +4,33 @@ - + SELECT + b.title, + b.sid as skuSid, + b.goodsSkuCode, + a.barCode , + b.createTime, + f.picUrl, + f.salesPrice, + a.sortNo, + a.goodsName, + a.goodsCode, + a.sid as spuSid, + e.unitName, + e.sid as unitSid, + d.goodsTypeName , + d.sid typeSid, + c.brandName , + c.sid as brandSid + FROM + goods_sku b + LEFT JOIN goods_spu a ON a.sid = b.goodsSpuSid + LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid + left join goods_brand_info as c on c.sid =a.brandSid + left join goods_type as d on d.sid =a.goodsTypeSid + left join goods_unit as e on e.sid =a.goodsUnitSid + left join goods_sku_extend f on f.goodsSkuSid =b.sid ${ew.sqlSegment} @@ -18,7 +41,7 @@ left join goods_spu b on b.sid =a.goodsSpuSid LEFT JOIN ss_user.sys_organization as s ON b.useOrgSid = s.sid - s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' and a.isEnable='1' + s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' and a.isEnable='1' and b.isDelete!='1' @@ -35,18 +58,27 @@ where s.sid = #{sid} - select - sku.sid goodsSkuSid, + spu.sid AS goodsSpuSid, - spu.goodsName goodsSpuName, + spu.goodsName goodsName, + spu.goodsCode goodsCode, + spu.barCode barCode, + sku.sid goodsSkuSid, sku.goodsSkuCode, - sku.title AS goodsSkuTitle, - spu.goodsUnitSid, - spu.goodsUnitName, - ex.costPrice, - spu.shelfLife, - sku.own_spec as ownSpec + sku.title AS title, + sku.own_spec as ownSpec, + d.sid as typeSid, + d.goodsTypeName as typeName, + b.sid as brandSid, + b.brandName, + c.manufacturerName, + c.sid as manufacturerSid, + spu.factoryCode, + spu.goodsUnitSid as unitSid, + spu.goodsUnitName as unit, + ex.salesPrice from goods_sku sku left join goods_spu spu on spu.sid = sku.goodsSpuSid LEFT JOIN goods_sku_extend ex ON ex.goodsSkuSid = sku.sid @@ -71,7 +103,25 @@ e.salesPrice as cost1, a.shelfLife, a.taxRate, - a.factoryCode as itemNumber + a.factoryCode as itemNumber, + a.sid AS goodsSpuSid, + a.goodsName goodsName, + a.goodsCode goodsCode, + a.barCode barCode, + s.sid goodsSkuSid, + s.goodsSkuCode, + s.title AS title, + s.own_spec as ownSpec, + d.sid as typeSid, + d.goodsTypeName as typeName, + b.sid as brandSid, + b.brandName, + c.manufacturerName, + c.sid as manufacturerSid, + a.factoryCode, + a.goodsUnitSid as unitSid, + a.goodsUnitName as unit, + e.salesPrice FROM goods_sku s LEFT JOIN goods_spu a diff --git a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuPurSelectList.java b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuPurSelectList.java index 1fd806e..9c5f940 100644 --- a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuPurSelectList.java +++ b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuPurSelectList.java @@ -36,4 +36,31 @@ public class GoodsSkuPurSelectList { private BigDecimal taxRate; //货号 private String itemNumber; + + + + private String goodsSkuSid; + //spusid + private String goodsSpuSid; + //商品编码 + private String goodsCode; + //规格型号 + private String title; + //具体规格 + private String ownSpec; + //分类 + private String typeName; + private String typeSid; + //品牌 + private String brandName; + private String brandSid; + //厂家名 + private String manufacturerSid; + private String manufacturerName; + //厂家货号 + private String factoryCode; + + private String unitSid; + //销售单价 + private BigDecimal salesPrice=new BigDecimal(0); } diff --git a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuQuery.java b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuQuery.java index feff0fc..4752473 100644 --- a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuQuery.java +++ b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuQuery.java @@ -1,6 +1,7 @@ package com.yxt.goods.biz.goodssku; import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -12,4 +13,12 @@ public class GoodsSkuQuery implements Query { private String name; private String userOrgSid; private String createOrgSid;//创建组织sid + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; } diff --git a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuService.java b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuService.java index 4ec5c28..d325669 100644 --- a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuService.java +++ b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuService.java @@ -4,12 +4,15 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.goods.biz.goodsmanufacturer.GoodsManufacturerVo; import com.yxt.goods.biz.goodsskuextend.GoodsSkuExtend; import com.yxt.goods.biz.goodsskuextend.GoodsSkuExtendService; import com.yxt.goods.biz.goodsskuextend.GoodsSkuExtendVo; +import com.yxt.goods.biz.goodsskusubunit.GoodsSkuSubunitService; import com.yxt.goods.biz.goodsspu.GoodsSpu; import com.yxt.goods.biz.goodsspu.GoodsSpuDto; import com.yxt.goods.biz.goodsspu.GoodsSpuService; +import com.yxt.goods.biz.goodsspu.GoodsSpuVo; import com.yxt.goods.biz.goodsspudetail.BaseGoodsSpuDetailService; import com.yxt.goods.biz.goodstype.GoodsType; import com.yxt.goods.biz.goodstype.GoodsTypeService; @@ -28,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.UUID; /** * @author wangpengfei @@ -42,23 +46,47 @@ public class GoodsSkuService extends MybatisBaseService> listPage(PagerQuery pq) { + public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); GoodsSkuQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) + String orgLevelKey=query.getOrgLevelKey(); + String orgSidPath=query.getOrgPath(); + int index=query.getIndex(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.apply("s.orgSidPath like('"+orgSidPath+"')"); + } else if ("4".equals(orgLevelKey)) { + qw.eq("s.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } if (StringUtils.isNotBlank(query.getName())) { - qw.like("goodsName", query.getName()); + qw.like("b.title", query.getName()); } -// if(StringUtils.isNotBlank(query.getUserOrgSid())){ -// qw.eq("userOrgSid",query.getUserOrgSid()); -// } + qw.orderByAsc("sortNo"); IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.listPage(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); return rb.success().setData(p); } @@ -111,7 +139,7 @@ public class GoodsSkuService extends MybatisBaseService saveOrUpdate(List dtos) { + public ResultBean> saveOrUpdate(List dtos) { ResultBean rb = ResultBean.fireFail(); if(dtos.size()!=0){ List skus=baseMapper.selectList(new QueryWrapper().eq("goodsSpuSid",dtos.get(0).getGoodsSpuSid())); @@ -121,6 +149,7 @@ public class GoodsSkuService extends MybatisBaseService skus=new ArrayList<>(); for (GoodsSkuDto dto : dtos) { GoodsSku sku = baseMapper.selectOne(new QueryWrapper().eq("sid", dto.getSid())); String sid = ""; @@ -131,18 +160,29 @@ public class GoodsSkuService extends MybatisBaseService initialization(String sid) { @@ -155,6 +195,7 @@ public class GoodsSkuService extends MybatisBaseService getSkuByCode(String code,String title) { ResultBean rb = ResultBean.fireFail(); GoodsSku sku=baseMapper.selectOne(new QueryWrapper().eq("goodsSkuCode",code).eq("title",title)); @@ -205,7 +246,7 @@ public class GoodsSkuService extends MybatisBaseService getSelectList(PagerQuery pagerQuery) { + public PagerVo getSelectList(PagerQuery pagerQuery) { GoodsSkuSelectQuery query = pagerQuery.getParams(); QueryWrapper qw = new QueryWrapper<>(); if (query != null) { @@ -240,14 +281,14 @@ public class GoodsSkuService extends MybatisBaseService page = PagerUtil.queryToPage(pagerQuery); - IPage pagging = baseMapper.getSelectList(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); + IPage pagging = baseMapper.getSelectList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } @@ -285,7 +326,7 @@ public class GoodsSkuService extends MybatisBaseService page = PagerUtil.queryToPage(pq); diff --git a/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuVo1.java b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuVo1.java new file mode 100644 index 0000000..69c1f98 --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodssku/GoodsSkuVo1.java @@ -0,0 +1,41 @@ +package com.yxt.goods.biz.goodssku; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/12/5 9:01 + */ +@Data +public class GoodsSkuVo1 { + private String id; + private String sid; + private String lockVersion; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + private String remarks; + private String isEnable; + private String state; + private String isDelete; + private String title;//商品Skutitle + private String skuSid;// + private String goodsSkuCode;//skuCode + private String barCode;//条码 + private String picUrl;//图片 + private String salesPrice;//销售价格 + private String sortNo;//排序 + private String goodsName;//spuName + private String goodsCode;//spuName + private String spuSid;// + private String unitName;//单位 + private String unitSid;// + private String goodsTypeName;//分类 + private String typeSid;// + private String brandName;//品牌 + private String brandSid;// +} diff --git a/src/main/java/com/yxt/goods/biz/goodssku/SkuSelectList1.java b/src/main/java/com/yxt/goods/biz/goodssku/SkuSelectList1.java new file mode 100644 index 0000000..987136f --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodssku/SkuSelectList1.java @@ -0,0 +1,48 @@ +package com.yxt.goods.biz.goodssku; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class SkuSelectList1 { + + //spusid + private String goodsSpuSid; + //商品编码 + private String goodsCode; + //商品名称 + private String goodsName; + //条形码 + private String barCode; + //规格编码 + private String goodsSkuCode; + private String goodsSkuSid; + //规格型号 + private String title; + //具体规格 + private String ownSpec; + //分类 + private String typeName; + private String typeSid; + //品牌 + private String brandName; + private String brandSid; + //厂家名 + private String manufacturerSid; + private String manufacturerName; + //厂家货号 + private String factoryCode; + //单位 + private String unit; + private String unitSid; + //销售单价 + private BigDecimal salesPrice=new BigDecimal(0); + + +} diff --git a/src/main/java/com/yxt/goods/biz/goodsskuextend/GoodsSkuExtendService.java b/src/main/java/com/yxt/goods/biz/goodsskuextend/GoodsSkuExtendService.java index d12885e..a6c3f1e 100644 --- a/src/main/java/com/yxt/goods/biz/goodsskuextend/GoodsSkuExtendService.java +++ b/src/main/java/com/yxt/goods/biz/goodsskuextend/GoodsSkuExtendService.java @@ -20,10 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author wangpengfei @@ -106,6 +103,7 @@ public class GoodsSkuExtendService extends MybatisBaseService { + 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/goodsskusubunit/GoodsSkuSubunitMapper.xml b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitMapper.xml new file mode 100644 index 0000000..f5ca98b --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + UPDATE goods_brand_info + SET isDelete=1 + where sid in + + #{item} + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitQuery.java b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitQuery.java new file mode 100644 index 0000000..589f535 --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitQuery.java @@ -0,0 +1,24 @@ +package com.yxt.goods.biz.goodsskusubunit; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class GoodsSkuSubunitQuery implements Query { + private String name; + private String userOrgSid; + private String createOrgSid;//创建组织sid + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; +} diff --git a/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitService.java b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitService.java new file mode 100644 index 0000000..2f9be64 --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitService.java @@ -0,0 +1,131 @@ +package com.yxt.goods.biz.goodsskusubunit; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.config.component.FileUploadComponent; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +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.goodsspu.GoodsSpuDto; +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.*; +import java.util.stream.Collectors; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Service +public class GoodsSkuSubunitService extends MybatisBaseService { + @Autowired + private FileUploadComponent fileUploadComponent; + + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + GoodsSkuSubunitQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) + String orgLevelKey=query.getOrgLevelKey(); + String orgSidPath=query.getOrgPath(); + int index=query.getIndex(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.apply("s.orgSidPath like('"+orgSidPath+"')"); + } else if ("4".equals(orgLevelKey)) { + qw.eq("a.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + if(StringUtils.isNotBlank(query.getName())){ + qw.like("a.brandName",query.getName()); + } + qw.ne("a.isDelete","1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + return rb.success().setData(p); + } + public ResultBean> listAll(OrgPathQuery query) { + ResultBean rb = ResultBean.fireFail(); + List pagging = baseMapper.listAll(query.getOrgPath()); + return rb.success().setData(pagging); +} + public ResultBean saveOrUpdate(GoodsSkuSubunitDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isNotBlank(dto.getSid())) { + GoodsSkuSubunit wmsGoodsBrand = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, wmsGoodsBrand, "id", "sid"); + wmsGoodsBrand.setModifyTime(new Date()); + baseMapper.updateById(wmsGoodsBrand); + } else { + GoodsSkuSubunit wmsGoodsBrand = new GoodsSkuSubunit(); + sid = wmsGoodsBrand.getSid(); + BeanUtil.copyProperties(dto, wmsGoodsBrand, "id", "sid"); + wmsGoodsBrand.setCreateTime(new DateTime()); + baseMapper.insert(wmsGoodsBrand); + } + return rb.success().setMsg("成功"); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + GoodsSkuSubunitVo vo = new GoodsSkuSubunitVo(); + GoodsSkuSubunit wmsGoodsBrand = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + BeanUtil.copyProperties(wmsGoodsBrand, vo); + return rb.success().setData(vo); + } + + + + public ResultBean delete(String sid) { + ResultBean rb = ResultBean.fireFail(); + GoodsSkuSubunit wmsGoodsBrand = fetchBySid(sid); + if (null != wmsGoodsBrand) { + baseMapper.deleteById(wmsGoodsBrand.getId()); + } + return rb.success().setMsg("成功"); + } + public void delAll(String[] sids) { + int count = baseMapper.updateBySidIsDelete(Arrays.stream(sids).collect(Collectors.toList())); + } + public ResultBean updateIsEnable(String sid,String isEnable) { + ResultBean rb = ResultBean.fireFail(); + GoodsSkuSubunit wmsGoodsBrand = fetchBySid(sid); + if (null != wmsGoodsBrand) { + wmsGoodsBrand.setIsEnable(Integer.parseInt(isEnable)); + baseMapper.updateById(wmsGoodsBrand); + } + return rb.success().setMsg("成功"); + } + public ResultBean getBrandByName(String name) { + ResultBean rb = ResultBean.fireFail(); + GoodsSkuSubunit type=baseMapper.selectOne(new QueryWrapper().eq("brandName",name)); + return rb.success().setData(type); + } + +} diff --git a/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitVo.java b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitVo.java new file mode 100644 index 0000000..5f50628 --- /dev/null +++ b/src/main/java/com/yxt/goods/biz/goodsskusubunit/GoodsSkuSubunitVo.java @@ -0,0 +1,36 @@ +package com.yxt.goods.biz.goodsskusubunit; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class GoodsSkuSubunitVo implements Vo { + private String id; + private String sid; + private String lockVersion; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + private String remarks; + private String isEnable; + private String state; + private String isDelete; + private String skuSid;// + private String unitName;//计量单位名称 + private String unitBarCode;//计量单位名称 + private String ruler;//换算规则(该单位与基础单位的量级关系)数字类型 + private String price;//销售价格后续害应该包括采购价、销售价、批发价、参考成本等多个价格字段 + private String weight;//重量 + private String volume;//体积 + private String vLength;//长 + private String vWidth;//宽 + private String vHeight;//高 +} 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 7838c14..e4359ca 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuMapper.xml @@ -70,7 +70,7 @@ from goods_spu a LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid - s.orgSidPath like concat('%',#{orgPath},'%') and a.goodsCode=#{goodsCode} + s.orgSidPath like concat('%',#{orgPath},'%') and a.goodsCode=#{goodsCode} and a.isDelete !='1' 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 e2a7c2c..25fdd01 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java +++ b/src/main/java/com/yxt/goods/biz/goodsspu/GoodsSpuService.java @@ -284,6 +284,95 @@ public class GoodsSpuService extends MybatisBaseService saveOrUpdateByName(GoodsSpuDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; +// GoodsSkuVo data = goodsSkuService.initialization(dto.getSid()).getData(); + GoodsSpu spun = baseMapper.selectOne(new QueryWrapper().eq("sid", dto.getSid())); + + GoodsUnit goodsUnit = goodsUnitService.getOne(new QueryWrapper().eq("sid", dto.getGoodsUnitSid())); + GoodsSpu spu1 = baseMapper.selectOne(new QueryWrapper().eq("goodsName", dto.getGoodsName())); + if (null != goodsUnit) { + dto.setGoodsUnitName(goodsUnit.getUnitName()); + } + if(StringUtils.isBlank(dto.getIsListed())){ + dto.setIsListed("1"); + } + if (StringUtils.isBlank(dto.getTaxRate())){ + dto.setTaxRate("0"); + } + if(StringUtils.isBlank(dto.getShelfLife())){ + dto.setShelfLife("0"); + } + if(StringUtils.isBlank(dto.getSortNo())){ + dto.setSortNo("0"); + } + String skuSid=""; + List skus=new ArrayList<>(); + if (spun != null) { + if(spu1!=null){ + if (!spu1.getSid().equals(spun.getSid())) { + return rb.setMsg("商品名称重复"); + } + } + for (GoodsSkuDto baseGoodsSkus : dto.getBaseGoodsSkus()) { + if(StringUtils.isNotBlank(baseGoodsSkus.getTitle())){ + GoodsSku sku=goodsSkuService.getOne(new QueryWrapper().eq("title",baseGoodsSkus.getTitle())); + if(sku!=null){ + if(!baseGoodsSkus.getSid().equals(sku.getSid())){ + return rb.setMsg("商品sku名重复"); + } + } + } + } + sid = dto.getSid(); + GoodsSpu wmsGoods = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, wmsGoods,"id","sid"); + wmsGoods.setModifyTime(new Date()); +// wmsGoods.setGoodsPY(PinYinUtils.getPinYinName(wmsGoods.getGoodsName())); + wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));; + //spu详情 + dto.getBaseGoodsSpuDetail().setGoodSpuSid(wmsGoods.getSid()); + //商品sku + dto.getBaseGoodsSkus().forEach(s -> { + s.setGoodsSpuSid(wmsGoods.getSid()); + }); + skus=goodsSkuService.saveOrUpdate(dto.getBaseGoodsSkus()).getData(); + baseGoodsSpuDetailService.saveOrUpdate(dto.getBaseGoodsSpuDetail()); + baseMapper.updateById(wmsGoods); + } else { + + if (spu1 != null) { + return rb.setMsg("商品spu名重复"); + } + for (GoodsSkuDto baseGoodsSkus : dto.getBaseGoodsSkus()) { + GoodsSku sku1=goodsSkuService.getOne(new QueryWrapper().eq("title",baseGoodsSkus.getTitle())); + if(sku1!=null){ + return rb.setMsg("商品sku名重复"); + } + } + GoodsSpu wmsGoods = new GoodsSpu(); + sid = wmsGoods.getSid(); + BeanUtil.copyProperties(dto, wmsGoods); + wmsGoods.setCreateTime(new DateTime()); + wmsGoods.setGoodsPY(PinYinUtils.sx(wmsGoods.getGoodsName()));; + wmsGoods.setCreateBySid(dto.getUserSid()); + wmsGoods.setSid(UUID.randomUUID().toString()); + //spu详情 + dto.getBaseGoodsSpuDetail().setGoodSpuSid(wmsGoods.getSid()); + + //商品sku + dto.getBaseGoodsSkus().forEach(s -> { + s.setGoodsSpuSid(wmsGoods.getSid()); + }); + skus=goodsSkuService.saveOrUpdate(dto.getBaseGoodsSkus()).getData(); + baseGoodsSpuDetailService.saveOrUpdate(dto.getBaseGoodsSpuDetail()); + baseMapper.insert(wmsGoods); + } + return rb.success().setData(skus); + } + public ResultBean initialization(String sid) { ResultBean rb = ResultBean.fireFail(); GoodsSpuVo vo = baseMapper.initialization(sid); diff --git a/src/main/java/com/yxt/goods/biz/goodsspudetail/BaseGoodsSpuDetailService.java b/src/main/java/com/yxt/goods/biz/goodsspudetail/BaseGoodsSpuDetailService.java index 031f6e5..55884a9 100644 --- a/src/main/java/com/yxt/goods/biz/goodsspudetail/BaseGoodsSpuDetailService.java +++ b/src/main/java/com/yxt/goods/biz/goodsspudetail/BaseGoodsSpuDetailService.java @@ -57,11 +57,11 @@ public class BaseGoodsSpuDetailService extends MybatisBaseService saveOrUpdate(GoodsSpuDetailDto dto) { ResultBean rb = ResultBean.fireFail(); - GoodsSpuDetail detail=baseMapper.selectOne(new QueryWrapper().eq("sid",dto.getSid())); + GoodsSpuDetail detail=baseMapper.selectOne(new QueryWrapper().eq("goodSpuSid",dto.getGoodSpuSid())); String sid = ""; if (null!=detail) { sid = dto.getSid(); - GoodsSpuDetail goodsSpuDetail = fetchBySid(dto.getSid()); + GoodsSpuDetail goodsSpuDetail = fetchBySid(detail.getSid()); BeanUtil.copyProperties(dto, goodsSpuDetail); goodsSpuDetail.setModifyTime(new Date()); baseMapper.updateById(goodsSpuDetail); 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 021c56e..260a407 100644 --- a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml +++ b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeMapper.xml @@ -6,7 +6,11 @@ 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 d97b0ee..906ab66 100644 --- a/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java +++ b/src/main/java/com/yxt/goods/biz/goodstype/GoodsTypeService.java @@ -10,6 +10,7 @@ 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.goodsunit.GoodsUnit; @@ -87,15 +88,6 @@ public class GoodsTypeService extends MybatisBaseService saveOrUpdate(GoodsTypeDto dto) { ResultBean rb = ResultBean.fireFail(); - String sid = ""; + String sid = dto.getSid(); dto.setPSid(dto.getSids()); if (StringUtils.isBlank(dto.getPercentageRate())){ dto.setPercentageRate("0"); } + if (StringUtils.isBlank(dto.getIsGoodsID())){ + dto.setIsGoodsID("0"); + } if (StringUtils.isBlank(dto.getPercentageAmount())){ dto.setPercentageAmount("0"); } if(StringUtils.isBlank(dto.getSortNo())){ dto.setSortNo("0"); } - GoodsType type=baseMapper.selectOne(new QueryWrapper().eq("goodsTypeCode",dto.getGoodsTypeCode())); - if(type!=null){ - return rb.success().setMsg("编码重复"); - } + List strings=new ArrayList<>(); + strings.add(dto.getGoodsTypeName()); + List types=baseMapper.selectTypeNotIn(strings,dto.getUseOrgSid()); +// GoodsType type=baseMapper.selectOne(new QueryWrapper().eq("goodsTypeCode",dto.getGoodsTypeCode())); if (StringUtils.isNotBlank(dto.getSid())) { + if(types.size()!=0){ + if(!types.get(0).getSid().equals(sid)){ + return rb.setMsg("分类名不能重复"); + } + } sid = dto.getSid(); GoodsType wmsGoodsType = fetchBySid(dto.getSid()); BeanUtil.copyProperties(dto, wmsGoodsType, "id", "sid"); @@ -133,6 +133,9 @@ public class GoodsTypeService extends MybatisBaseService dtos,String orgPath) { + public void saveType(List dtos,String orgPath) { ResultBean rb = ResultBean.fireFail(); List dtos1=new ArrayList<>(); List goodsTypes=new ArrayList<>(); @@ -243,7 +248,6 @@ public class GoodsTypeService extends MybatisBaseService #{item} - and s.orgSidPath like concat('%',#{orgPath},'%') + and s.orgSidPath like concat('%',#{orgPath},'%') and a.isDelete !='1' \ 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 e34bb58..e870ab6 100644 --- a/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java +++ b/src/main/java/com/yxt/goods/biz/goodsunit/GoodsUnitService.java @@ -81,14 +81,25 @@ public class GoodsUnitService extends MybatisBaseService saveOrUpdate(GoodsUnitDto dto) { ResultBean rb = ResultBean.fireFail(); - String sid = ""; + String sid = dto.getSid(); + List strings=new ArrayList<>(); + strings.add(dto.getUnitName()); + List list=baseMapper.selectUnitNotIn(strings,dto.getOrgPath()); if (StringUtils.isNotBlank(dto.getSid())) { + if(list.size()!=0){ + if(!list.get(0).getSid().equals(sid)){ + return rb.setMsg("单位名不能重复"); + } + } sid = dto.getSid(); GoodsUnit wmsGoodsType = fetchBySid(dto.getSid()); BeanUtil.copyProperties(dto, wmsGoodsType, "id", "sid"); wmsGoodsType.setModifyTime(new Date()); baseMapper.updateById(wmsGoodsType); } else { + if(list.size()!=0){ + return rb.setMsg("单位名不能重复"); + } GoodsUnit wmsGoods = new GoodsUnit(); sid = wmsGoods.getSid(); BeanUtil.copyProperties(dto, wmsGoods, "id", "sid"); @@ -151,7 +162,7 @@ public class GoodsUnitService extends MybatisBaseService().eq("unitName",name)); return rb.success().setData(type); } - public ResultBean saveUnit(List dtos, String orgPath) { + public void saveUnit(List dtos, String orgPath) { ResultBean rb = ResultBean.fireFail(); List dtos1=new ArrayList<>(); @@ -162,7 +173,7 @@ public class GoodsUnitService extends MybatisBaseService