diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java index 3320d65..4ea4ed9 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java @@ -82,4 +82,11 @@ public class WarehouseAreaRest { WarehouseAreaAllVo vo = wmsWarehouseAreaService.selectAreaByRackSid(ckSid); return rb.success().setData(vo); } + @ApiOperation("根据区域sid查询所有库区") + @GetMapping("/selectAreaAll") + public ResultBean> selectAreaAll(@RequestParam("qySid") String qySid){ + ResultBean rb = ResultBean.fireFail(); + List vo = wmsWarehouseAreaService.selectAreaAll(qySid); + return rb.success().setData(vo); + } } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaWarningRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaWarningRest.java new file mode 100644 index 0000000..8bb8bb8 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaWarningRest.java @@ -0,0 +1,63 @@ +package com.yxt.warehouse.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.warehouse.biz.warehouseareawarning.*; +import com.yxt.warehouse.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/3/18 14:57 + */ +@Api(tags = "库区预警信息") +@RestController +@RequestMapping("/apiadmin/warehouseareawarning") +public class WarehouseAreaWarningRest { + + @Autowired + WarehouseAreaWarningService warehouseAreaWarningService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return warehouseAreaWarningService.listPage(pq); + } + + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdate") + public ResultBean saveOrUpdate(@RequestBody List dtos) { + return warehouseAreaWarningService.saveOrUpdate(dtos); + } + + @ApiOperation("初始化") + @GetMapping("/initialization/{sid}") + public ResultBean initialization(@PathVariable("sid") String sid) { + return warehouseAreaWarningService.initialization(sid); + } + + @ApiOperation("删除") + @DeleteMapping("/delete/{sid}") + public ResultBean delete(@PathVariable("sid") String sid) { + return warehouseAreaWarningService.delete(sid); + } + @ApiOperation("根据sid批量删除") + @DeleteMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids){ + ResultBean rb = ResultBean.fireFail(); + warehouseAreaWarningService.delAll(sids); + return rb.success(); + } + + @ApiOperation("更改可用状态") + @GetMapping("/updateIsEnable/{sid}/{isEnable}") + public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) { + return warehouseAreaWarningService.updateIsEnable(sid,isEnable); + } +} diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index 733a33b..b00495a 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -49,7 +49,11 @@ public class WarehouseInventoryRest { public ResultBean> locationListPage(@RequestBody PagerQuery pq) { return WarehouseInventoryService.locationListPage(pq); } - + @ApiOperation("库位预警分页列表") + @PostMapping("/areaWarningListPage") + public ResultBean> areaWarningListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.areaWarningListPage(pq); + } @ApiOperation("查询库位商品数量") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseZoneRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseZoneRest.java new file mode 100644 index 0000000..173726f --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseZoneRest.java @@ -0,0 +1,77 @@ +package com.yxt.warehouse.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.warehouse.biz.warehousezone.*; +import com.yxt.warehouse.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/28 8:53 + */ +@Api(tags = "区域信息") +@RestController +@RequestMapping("/apiadmin/warehousezone") +public class WarehouseZoneRest { + + @Autowired + private WarehouseZoneService warehouseZoneService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return warehouseZoneService.listPage(pq); + } + @ApiOperation("查询所有的库区") + @PostMapping("/listAll") + public ResultBean> listAll(@RequestBody OrgPathQuery query) { + return warehouseZoneService.getAllType(query); + } + + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdate") + public ResultBean saveOrUpdate(@RequestBody WarehouseZoneDto dto) { + return warehouseZoneService.saveZone(dto); + } + + @ApiOperation("初始化") + @GetMapping("/initialization/{sid}") + public ResultBean initialization(@PathVariable("sid") String sid) { + return warehouseZoneService.initialization(sid); + } + + @ApiOperation("删除") + @DeleteMapping("/delete/{sid}") + public ResultBean delete(@PathVariable("sid") String sid) { + return warehouseZoneService.delete(sid); + } + + @ApiOperation("根据sid批量删除") + @DeleteMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids){ + ResultBean rb = ResultBean.fireFail(); + warehouseZoneService.delAll(sids); + return rb.success(); + } + + @ApiOperation("更改可用状态") + @GetMapping("/updateIsEnable/{sid}/{isEnable}") + public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) { + return warehouseZoneService.updateIsEnable(sid,isEnable); + } + + @ApiOperation("根据仓库sid查询所有库位") + @GetMapping("/selectAll") + public ResultBean> selectAll(@RequestParam("ckSid") String ckSid){ + ResultBean rb = ResultBean.fireFail(); + List vo = warehouseZoneService.selectAll(ckSid); + return rb.success().setData(vo); + } +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseArea.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseArea.java index 427f3e8..a86befa 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseArea.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseArea.java @@ -18,5 +18,7 @@ public class WarehouseArea extends BaseEntity { private String areaTypeSid;//货区类型 private String useOrgSid; private String createOrgSid;//创建组织sid + private String zoneSid;//区域 + } diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaAllVo.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaAllVo.java index 5d620bc..43ccc8c 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaAllVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaAllVo.java @@ -53,4 +53,5 @@ public class WarehouseAreaAllVo implements Vo { private String areaName; @ApiModelProperty("库位编码") private String areaCode; + } \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaDto.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaDto.java index d6011e7..26a934f 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaDto.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaDto.java @@ -28,4 +28,8 @@ public class WarehouseAreaDto implements Dto { private String createOrgSid;//创建组织sid private String userSid; private String orgPath; + private String zoneSid;//区域 + private String zoneName;//区域 + private String zoneCode;//区域 + } diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.java index e1febd5..60bfc09 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.java @@ -24,5 +24,6 @@ public interface WarehouseAreaMapper extends BaseMapper { List listAll(@Param("orgPath")String orgPath); WarehouseAreaAllVo selectAreaByRackSid(String rackSid); - + @Select("select * from warehouse_area where zoneSid = #{qySid} and isDelete = 0 and isEnable = 1") + List selectAreaAll(String qySid); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.xml index 87f5589..c4ff0fa 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaMapper.xml @@ -6,10 +6,11 @@ + select + a.* + from warehouse_area_type a + LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid + + ${ew.sqlSegment} + + + + + + UPDATE warehouse_area_type + SET isDelete=1 + where sid in + + #{item} + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningQuery.java new file mode 100644 index 0000000..ff2baf9 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningQuery.java @@ -0,0 +1,22 @@ +package com.yxt.warehouse.biz.warehouseareawarning; + +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 WarehouseAreaWarningQuery implements Query { + private String name; + private String orgLevelKey;// + private int index; + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningService.java b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningService.java new file mode 100644 index 0000000..85cb529 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningService.java @@ -0,0 +1,115 @@ +package com.yxt.warehouse.biz.warehouseareawarning; + +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.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.warehouse.biz.warehouseinfo.WarehouseInfoVo; +import com.yxt.warehouse.utils.OrgPathQuery; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Service +public class WarehouseAreaWarningService extends MybatisBaseService { + + + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseAreaWarningQuery 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.WarehouseAreaWarningName",query.getName()); + } + qw.ne("a.isDelete","1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(pagging); + } + + + public ResultBean saveOrUpdate(List dtos) { + ResultBean rb = ResultBean.fireFail(); + for (WarehouseAreaWarningDto dto : dtos) { + WarehouseAreaWarning warehouseAreaWarning=baseMapper.selectOne(new QueryWrapper() + .eq("warehouseAreaSid",dto.getWarehouseAreaSid()) + .eq("goodsSpuSid",dto.getGoodsSpuSid())); + if(null==warehouseAreaWarning){ + WarehouseAreaWarning warehouseAreaWarning1=new WarehouseAreaWarning(); + BeanUtil.copyProperties(dto,warehouseAreaWarning1); + baseMapper.insert(warehouseAreaWarning1); + }else { + warehouseAreaWarning.setAlertUpperLimit(dto.getAlertUpperLimit()); + warehouseAreaWarning.setWarningLowerLimit(dto.getWarningLowerLimit()); + baseMapper.updateById(warehouseAreaWarning); + } + } + return rb.success().setMsg("成功"); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseAreaWarningVo vo = baseMapper.initialization(sid); + return rb.success().setData(vo); + } + + + public ResultBean delete(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseAreaWarning wmsWarehouseArea = fetchBySid(sid); + if (null != wmsWarehouseArea) { + baseMapper.deleteById(wmsWarehouseArea.getId()); + } + return rb.success(); + } + 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(); + WarehouseAreaWarning wmsWarehouseArea = fetchBySid(sid); + if (null != wmsWarehouseArea) { + wmsWarehouseArea.setIsEnable(Integer.parseInt(isEnable)); + baseMapper.updateById(wmsWarehouseArea); + } + return rb.success().setMsg("成功"); + } +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningVo.java new file mode 100644 index 0000000..e872640 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseareawarning/WarehouseAreaWarningVo.java @@ -0,0 +1,27 @@ +package com.yxt.warehouse.biz.warehouseareawarning; + +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 WarehouseAreaWarningVo implements Vo { + private String id; + private String sid; + private String warehouseAreaSid;//库区sid + private String goodsSpuSid;//商品spu + private String goodsSpuName;//商品spu + private String goodsSpuCode;// + private String goodsSkuSid;//sku + private String goodsSkuTitle;//创建组织sid + private String goodsSkuSpec;//创建组织sid + private String alertUpperLimit;//上限 + private String warningLowerLimit;//下限 + private String type; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java index 31df0bc..1cebfab 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java @@ -19,6 +19,7 @@ public interface WarehouseInventoryMapper extends BaseMapper IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); IPage listPage1(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + IPage listPage2(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List getListBySpuSid(@Param(Constants.WRAPPER) QueryWrapper qw,@Param("countStart") String countStart,@Param("countEnd") String countEnd); List getListBySpuSid1(@Param(Constants.WRAPPER) QueryWrapper qw,@Param("countStart") String countStart,@Param("countEnd") String countEnd); List getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid); diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml index f867127..9552576 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -39,6 +39,25 @@ group by a.goodsSpuSid + select - a.*,b.areaName as locationName ,c.warehouseName as warehouseName + a.*,b.areaName as locationName ,c.warehouseName as warehouseName,d.sid as zoneSid,d.zoneName ,d.zoneCode from warehouse_rack a left join warehouse_area b on b.sid =a.locationSid left join warehouse_info c on c.sid = a.warehouseSid + left join warehouse_zone d on d.sid=a.zoneSid LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid ${ew.sqlSegment} @@ -26,10 +27,11 @@ diff --git a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java index 5205648..1511d30 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java @@ -25,4 +25,5 @@ public class WarehouseRackQuery implements Query { private String orgPath; @ApiModelProperty("用户sid") private String userSid; + } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackVo.java b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackVo.java index 55155e0..8275642 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackVo.java @@ -33,4 +33,8 @@ public class WarehouseRackVo implements Vo { private String createOrgSid;//创建组织sid private String userSid; private String orgPath; + private String zoneSid;//区域 + private String zoneName;//区域 + private String zoneCode;//区域 + } diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZone.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZone.java new file mode 100644 index 0000000..da1880b --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZone.java @@ -0,0 +1,21 @@ +package com.yxt.warehouse.biz.warehousezone; + +import com.yxt.common.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author wangpengfei + * @date 2024/2/28 8:38 + */ +@Data +public class WarehouseZone extends BaseEntity { + private String zoneName;//库位名称 + private String zoneCode;//库位编码 + private String warehouseSid;//仓库sid + private BigDecimal volume;//库位容量 + private String unit;//计量单位 + private String useOrgSid;//使用组织sid + private String createOrgSid;//创建组织sid +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneAllVo.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneAllVo.java new file mode 100644 index 0000000..8edefd5 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneAllVo.java @@ -0,0 +1,21 @@ +package com.yxt.warehouse.biz.warehousezone; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:58 + */ +@Data +public class WarehouseZoneAllVo implements Vo { + + private String sid; + @ApiModelProperty("区域名称") + private String zoneName; + @ApiModelProperty("区域编码") + private String zoneCode; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneDto.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneDto.java new file mode 100644 index 0000000..16019af --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneDto.java @@ -0,0 +1,27 @@ +package com.yxt.warehouse.biz.warehousezone; + +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:37 + */ +@Data +public class WarehouseZoneDto implements Dto { + + private String sid; + private String remarks; + private String zoneName;//区域名称 + private String zoneCode;//区域编码 + private String warehouseSid;//仓库sid + private String warehouseName;//仓库 + private String volume;//区域面积 + private String unit;//计量单位 + private String useOrgSid;//创建组织sid + private String createOrgSid;//创建组织sid + private String userSid; //登录用户sid + private String orgPath; //组织全路径 + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneInitVo.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneInitVo.java new file mode 100644 index 0000000..aa3dc29 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneInitVo.java @@ -0,0 +1,26 @@ +package com.yxt.warehouse.biz.warehousezone; + +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:39 + */ +@Data +public class WarehouseZoneInitVo { + + private String sid; + private String remarks; + private String zoneName;//区域名称 + private String zoneCode;//区域编码 + private String warehouseSid;//仓库sid + private String warehouseName;//仓库 + private String volume;//区域面积 + private String unit;//计量单位 + private String userSid; //用户sid + private String useOrgSid;//使用组织sid + private String createOrgSid;//创建组织sid + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.java new file mode 100644 index 0000000..11a1023 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.java @@ -0,0 +1,34 @@ +package com.yxt.warehouse.biz.warehousezone; + +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 org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Mapper +public interface WarehouseZoneMapper extends BaseMapper { + + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List listAll(@Param("useOrgSid") String useOrgSid); + + WarehouseZone checkForInsert(@Param("zoneCode") String zoneCode, @Param("warehouseSid") String warehouseSid); + + int selectNum(@Param("warehouseCode") String warehouseCode); + + WarehouseZone checkForUpdate(@Param("zoneCode") String zoneCode, @Param("warehouseSid")String warehouseSid, @Param("sid") String sid); + + WarehouseZoneInitVo initialization(String sid); + + int updateBySidIsDelete(List list); + + List selectAll(String ckSid); +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.xml new file mode 100644 index 0000000..07b70f6 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneMapper.xml @@ -0,0 +1,64 @@ + + + + + UPDATE warehouse_zone + SET isDelete=1 + where sid in + + #{item} + + + + + + + + + + + + + + diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneQuery.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneQuery.java new file mode 100644 index 0000000..df87a73 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneQuery.java @@ -0,0 +1,28 @@ +package com.yxt.warehouse.biz.warehousezone; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:24 + */ +@Data +public class WarehouseZoneQuery implements Query { + + private String name;//名字 + private String code;//编码 + private String warehouseSid;//仓库 + + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private String orgLevelKey;// + private int index;//下标 + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneService.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneService.java new file mode 100644 index 0000000..cbffe10 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneService.java @@ -0,0 +1,163 @@ +package com.yxt.warehouse.biz.warehousezone; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.warehouse.biz.warehouseinfo.WarehouseInfo; +import com.yxt.warehouse.biz.warehouseinfo.WarehouseInfoService; +import com.yxt.warehouse.biz.warehouseinfo.WarehouseInfoVo; +import com.yxt.warehouse.biz.warehouserack.WarehouseRackVo; +import com.yxt.warehouse.utils.OrgPathQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.yxt.warehouse.utils.Rule; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:19 + */ +@Service +public class WarehouseZoneService extends MybatisBaseService { + + @Autowired + private WarehouseInfoService warehouseInfoService; + + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseZoneQuery 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.zoneName", query.getName()); + } + if (StringUtils.isNotBlank(query.getCode())) { + qw.like("a.zoneCode", query.getCode()); + } + if (StringUtils.isNotBlank(query.getWarehouseSid())) { + qw.eq("b.sid", query.getWarehouseSid()); + } + qw.ne("a.isDelete", "1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + public ResultBean> getAllType(OrgPathQuery query) { + ResultBean rb = ResultBean.fireFail(); + List pagging = baseMapper.listAll(query.getOrgPath()); + return rb.success().setData(pagging); + } + + public ResultBean saveZone(WarehouseZoneDto dto) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isNotBlank(dto.getSid())) { + String sid = dto.getSid(); + WarehouseZone wmsWarehouseZone = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, wmsWarehouseZone, "id", "sid"); + if (StringUtils.isNotBlank(dto.getZoneCode()) && !dto.getZoneCode().equals("由系统自动生成")) { + WarehouseZone zone = baseMapper.checkForUpdate(dto.getZoneCode(), dto.getWarehouseSid(), sid); + if (null != zone) { + return rb.setMsg("同一个仓库下的区域编码不能重复。"); + } + } else { + WarehouseInfo warehouseInfo = warehouseInfoService.fetchBySid(dto.getWarehouseSid()); + if (null != warehouseInfo) { + String warehouseCode = warehouseInfo.getWarehouseCode(); + int i = baseMapper.selectNum(warehouseCode); + String code = Rule.getBillNo3(warehouseCode, i); + wmsWarehouseZone.setZoneCode(code); + } + } + wmsWarehouseZone.setModifyTime(new Date()); + baseMapper.updateById(wmsWarehouseZone); + } else { + WarehouseZone entity = new WarehouseZone(); + entity.setCreateBySid(dto.getUserSid()); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + if (StringUtils.isNotBlank(dto.getZoneCode()) && !dto.getZoneCode().equals("由系统自动生成")) { + WarehouseZone zone = baseMapper.checkForInsert(dto.getZoneCode(), dto.getWarehouseSid()); + if (null != zone) { + return rb.setMsg("同一个仓库下的区域编码不能重复。"); + } + } else { + WarehouseInfo warehouseInfo = warehouseInfoService.fetchBySid(dto.getWarehouseSid()); + if (null != warehouseInfo) { + String warehouseCode = warehouseInfo.getWarehouseCode(); + int i = baseMapper.selectNum(warehouseCode); + String code = Rule.getBillNo3(warehouseCode, i); + entity.setZoneCode(code); + } + } + baseMapper.insert(entity); + } + return rb.success(); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseZoneInitVo vo = baseMapper.initialization(sid); + return rb.success().setData(vo); + } + + public ResultBean delete(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseZone wmsWarehouseZone = fetchBySid(sid); + if (null != wmsWarehouseZone) { + baseMapper.deleteById(wmsWarehouseZone.getId()); + } + return rb.success(); + } + + 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(); + WarehouseZone wmsWarehouseZone = fetchBySid(sid); + if (null != wmsWarehouseZone) { + wmsWarehouseZone.setIsEnable(Integer.parseInt(isEnable)); + baseMapper.updateById(wmsWarehouseZone); + } + return rb.success().setMsg("成功"); + } + + public List selectAll(String ckSid) { + return baseMapper.selectAll(ckSid); + } +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneVo.java b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneVo.java new file mode 100644 index 0000000..3fce389 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehousezone/WarehouseZoneVo.java @@ -0,0 +1,25 @@ +package com.yxt.warehouse.biz.warehousezone; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/9/14 14:24 + */ +@Data +public class WarehouseZoneVo implements Vo { + + private String sid; + private String remarks; + private String isEnable; + private String isDelete; + private String zoneName;//区域名称 + private String zoneCode;//区域编码 + private String volume;//区域面积 + private String unit;//计量单位 + private String warehouseName;//仓库名称 + private String useOrgSid;//使用组织sid + private String createOrgSid;//创建组织sid +} diff --git a/src/main/java/com/yxt/warehouse/utils/Rule.java b/src/main/java/com/yxt/warehouse/utils/Rule.java index 0506657..6d913a7 100644 --- a/src/main/java/com/yxt/warehouse/utils/Rule.java +++ b/src/main/java/com/yxt/warehouse/utils/Rule.java @@ -12,4 +12,9 @@ public class Rule { String billNo = bill + num; return billNo; } + public static String getBillNo3(String bill, int i) { + String num = String.format("%03d", i + 1); // 不足4位补0 + String billNo = bill + num; + return billNo; + } }