From 80b247558c683ab7f7b007f9d06545df19666da2 Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Fri, 23 Aug 2024 17:59:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiadmin/PurchaseInventoryBillRest.java | 4 +- .../apiadmin/WarehouseInventoryRest.java | 35 ++- .../PurchaseInventoryBillMapper.xml | 1 + .../PurchaseInventoryBillQuery.java | 2 + .../PurchaseInventoryBillService.java | 30 ++- .../PurchaseInventoryBillDetailService.java | 13 ++ .../WarehouseAnsBillDetail.java | 2 + .../WarehouseAnsBillDetailDto.java | 2 + .../WarehouseAnsBillDetailMapper.java | 2 + .../WarehouseAnsBillDetailMapper.xml | 13 ++ .../WarehouseAnsBillDetailService.java | 9 + .../WarehouseAnsBillDetailVo.java | 2 + .../WarehouseAnsListDetailsVo.java | 2 + .../WarehouseInventoryMapper.java | 3 + .../WarehouseInventoryMapper.xml | 72 ++++++- .../WarehouseInventoryQuery.java | 30 ++- .../WarehouseInventoryRackCountQuery.java | 15 ++ .../WarehouseInventoryService.java | 200 +++++++++++++++--- .../WarehouseInventoryVo.java | 43 +++- 19 files changed, 397 insertions(+), 83 deletions(-) create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java diff --git a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java index f063cab..a514e15 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java @@ -27,9 +27,7 @@ public class PurchaseInventoryBillRest { @ApiOperation("分页列表") @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq) { - ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = purchaseInventoryBillService.listPage(pq); - return rb.success().setData(pv); + return purchaseInventoryBillService.listPage(pq); } @ApiOperation("新增修改保存") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index ede9e24..15bca15 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -42,34 +42,31 @@ public class WarehouseInventoryRest { @ApiOperation("分页列表") @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq) { - ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = WarehouseInventoryService.listPage(pq); - return rb.success().setData(pv); + return WarehouseInventoryService.listPage(pq); } - - @ApiOperation("删除/批量删除") - @DeleteMapping("/delBySids") - ResultBean delBySids(@RequestBody String[] sids) { - return WarehouseInventoryService.delAllBySids(sids); + @ApiOperation("库位库存分页列表") + @PostMapping("/locationListPage") + public ResultBean> locationListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.locationListPage(pq); } - // @ApiOperation("入库") -// @GetMapping("/warehousing") - public ResultBean warehousing(WarehouseInventoryDto dto) { - return WarehouseInventoryService.warehousing(dto); - } - /* @ApiOperation("编辑") - @PostMapping("/updateWarehouseInventory") - ResultBean updateWarehouseInventory(@RequestBody WarehouseInventoryUpdateDto dto) { - return WarehouseInventoryService.updateWarehouseInventory(dto); - } + @ApiOperation("查询库位商品数量") + @PostMapping("/getRackCountBySid") + ResultBean getRackCountBySid(@RequestBody WarehouseInventoryRackCountQuery query) { + return WarehouseInventoryService.getRackCountBySid(query); + } + @ApiOperation("根据商品查询库存变化") + @PostMapping("/getInventoryRecordBySid") + ResultBean getInventoryRecordBySid(@RequestBody WarehouseInventoryRackCountQuery query) { + return WarehouseInventoryService.getInventoryRecordBySid(query); + } @ApiOperation("新增") @PostMapping("/saveWarehouseInventory") ResultBean saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) { return WarehouseInventoryService.saveWarehouseInventory(dto); - }*/ + } diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml index c7d406b..7854a89 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml @@ -4,6 +4,7 @@ + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java index 6b31977..0696ec5 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java @@ -137,4 +137,13 @@ public class WarehouseAnsBillDetailService extends MybatisBaseService { IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + List getListBySpuSid(@Param("spuSid")String spuSid); + List getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid); + List getRackCountBySid1(@Param("sid")String sid,@Param("orgSid") String orgSid); WarehouseInventoryVo initialization(@Param("sid") String sid); 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 9d830ae..94359ec 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -5,23 +5,53 @@ + + + + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java index ecddc37..cd0baef 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java @@ -10,23 +10,33 @@ import lombok.Data; */ @Data public class WarehouseInventoryQuery implements Query { - @ApiModelProperty("goodsID") - private String goodsID; - - @ApiModelProperty("商品名称") - private String goodsSpuName; @ApiModelProperty("商品编码") private String goodsSkuCode; @ApiModelProperty("仓库") - private String warehouseName; + private String warehouseSid; + @ApiModelProperty("商品名称") + private String goodsSpuSid; + private String brandSid; + private String spec; + private String countStart; + private String countEnd; + + + @ApiModelProperty("条码") + private String barCode; + private String hh; + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; - @ApiModelProperty("库位编码") - private String warehouseRackCode; - @ApiModelProperty("批次号") - private String batchNumber; //供应商 } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java new file mode 100644 index 0000000..b9c4c95 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java @@ -0,0 +1,15 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/8/23 11:02 + */ +@Data +public class WarehouseInventoryRackCountQuery { + private String sid; + private String type;//1 spu 2sku + private String orgSid; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java index 2d4d08d..94b6514 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java @@ -10,13 +10,16 @@ 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.purchaseinventorybill.PurchaseInventoryBillPageVo; +import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService; +import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService; +import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @author wangpengfei @@ -24,31 +27,149 @@ import java.util.List; */ @Service public class WarehouseInventoryService extends MybatisBaseService { - public PagerVo listPage(PagerQuery pq) { + + @Autowired + WarehouseAnsBillDetailService warehouseAnsBillDetailService; + @Autowired + WarehouseInventoryRecordService warehouseInventoryRecordService; + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb =new ResultBean().fail(); WarehouseInventoryQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); - if (StringUtils.isNotBlank(query.getGoodsID())) { - qw.like("a.goodsID", query.getGoodsID()); - } - if (StringUtils.isNotBlank(query.getWarehouseName())) { - qw.like("a.warehouseName", query.getWarehouseName()); - } - if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { - qw.like("a.goodsSkuCode", query.getGoodsSkuCode()); - } - if (StringUtils.isNotBlank(query.getGoodsSpuName())) { - qw.like("a.goodsSpuName", query.getGoodsSpuName()); - } - if (StringUtils.isNotBlank(query.getBatchNumber())) { - qw.like("a.batchNumber", query.getBatchNumber()); +// 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("wab.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.getWarehouseSid())) { + qw.like("a.warehouseNameSid", query.getWarehouseSid()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { + qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(query.getBrandSid())) { + qw.like("a.brandSid", query.getBrandSid()); + } + if (StringUtils.isNotBlank(query.getSpec())) { + qw.like("a.goodsSkuOwnSpec", query.getSpec()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { + qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); + } + qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()). + apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd() + ); + qw.eq("1",1); + qw.groupBy("a.goodsSpuSid"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + for (WarehouseInventoryVo record : pagging.getRecords()) { + List vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid()); + WarehouseAnsListDetailsVo vo2=warehouseAnsBillDetailService.selCountBySpuSid(record.getGoodsSpuSid()); + record.setProcurementInTransit(new BigDecimal(vo2.getWaitInCount())); + record.setInTransitSummary(record.getInTransitSummary() + .add(record.getProcurementInTransit()) + .add(record.getSalesReturnInTransit()) + .add(record.getTransferInTransit()) + .add(record.getOtherOnTheWay()) + .add(record.getWorkOrderInTransit())); + for (WarehouseInventoryVo vo : vos) { + vo.setMainSid(record.getGoodsSpuSid()); + WarehouseAnsListDetailsVo vo1=warehouseAnsBillDetailService.selCountBySkuSid(vo.getGoodsSkuSid()); + vo.setProcurementInTransit(new BigDecimal(vo1.getWaitInCount())); + vo.setInTransitSummary(vo.getInTransitSummary() + .add(vo.getProcurementInTransit()) + .add(vo.getSalesReturnInTransit()) + .add(vo.getTransferInTransit()) + .add(vo.getOtherOnTheWay()) + .add(vo.getWorkOrderInTransit())); + } + record.setWarehouseInventorys(vos); } - + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + public ResultBean> locationListPage(PagerQuery pq) { + ResultBean rb =new ResultBean().fail(); + WarehouseInventoryQuery 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("wab.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.getWarehouseSid())) { + qw.like("a.warehouseNameSid", query.getWarehouseSid()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { + qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(query.getBrandSid())) { + qw.like("a.brandSid", query.getBrandSid()); + } + if (StringUtils.isNotBlank(query.getSpec())) { + qw.like("a.goodsSkuOwnSpec", query.getSpec()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { + qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); + } + qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()). + apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd() + ); + qw.eq("1",1); + qw.groupBy("a.goodsSpuSid"); IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); + for (WarehouseInventoryVo record : pagging.getRecords()) { + List vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid()); + for (WarehouseInventoryVo vo : vos) { + vo.setMainSid(record.getGoodsSpuSid()); + } + record.setWarehouseInventorys(vos); + } PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; + return rb.success().setData(p); } + /** * 入库 * @@ -113,16 +234,25 @@ public class WarehouseInventoryService extends MybatisBaseService warehouseInventoryVos=new ArrayList<>(); + if (query.getType().equals("1")){ + warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid()); + }else if(query.getType().equals("2")){ + warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid()); } - BeanUtil.copyProperties(dto, WarehouseInventory, "sid"); - baseMapper.updateById(WarehouseInventory); - return rb.success(); + return rb.success().setData(warehouseInventoryVos); + } + public ResultBean getInventoryRecordBySid(WarehouseInventoryRackCountQuery query) { + ResultBean rb = ResultBean.fireFail(); + List warehouseInventoryVos=new ArrayList<>(); + if (query.getType().equals("1")){ +// warehouseInventoryVos=warehouseInventoryRecordService.getRackCountBySid(query.getSid(),query.getOrgSid()); + }else if(query.getType().equals("2")){ +// warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid()); + } + return rb.success().setData(warehouseInventoryVos); } public ResultBean delAllBySids(String[] sids) { @@ -198,12 +328,12 @@ public class WarehouseInventoryService extends MybatisBaseService listExcel(WarehouseInventoryQuery query) { QueryWrapper qw = new QueryWrapper<>(); if (query != null) { - if (StringUtils.isNotBlank(query.getGoodsSpuName())) { - qw.like("goodsSpuName", query.getGoodsSpuName()); - } - if (StringUtils.isNotBlank(query.getWarehouseName())) { - qw.like("warehouseName", query.getWarehouseName()); - } +// if (StringUtils.isNotBlank(query.getGoodsSpuName())) { +// qw.like("goodsSpuName", query.getGoodsSpuName()); +// } +// if (StringUtils.isNotBlank(query.getWarehouseName())) { +// qw.like("warehouseName", query.getWarehouseName()); +// } } List list = baseMapper.listExcel(qw); list.removeAll(Collections.singleton(null)); diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java index 4750328..2d133e8 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java @@ -4,18 +4,24 @@ import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + /** * @author wangpengfei * @date 2024/2/26 13:37 */ @Data public class WarehouseInventoryVo implements Vo { - + private String mainSid="0"; private String sid; @ApiModelProperty("商品ID") private String goodsID; + private String goodsSpuSid; @ApiModelProperty("商品名称") private String goodsSpuName; + private String goodsSkuSid; @ApiModelProperty("商品编码") private String goodsSkuCode; @ApiModelProperty("规格型号") @@ -27,16 +33,35 @@ public class WarehouseInventoryVo implements Vo { @ApiModelProperty("库位名称") private String warehouseRackCode; @ApiModelProperty("现有库存") - private String count; + private BigDecimal count=new BigDecimal(0); @ApiModelProperty("分配库存") - private String allocateCount; + private BigDecimal allocateCount=new BigDecimal(0); @ApiModelProperty("可用库存") - private String useCount; - @ApiModelProperty("批次号") + private BigDecimal useCount=new BigDecimal(0); + @ApiModelProperty("冻结") + private BigDecimal freezeCount=new BigDecimal(0); + @ApiModelProperty("在途汇总") + private BigDecimal inTransitSummary=new BigDecimal(0); + @ApiModelProperty("采购在途") + private BigDecimal procurementInTransit=new BigDecimal(0); + @ApiModelProperty("销退在途") + private BigDecimal salesReturnInTransit=new BigDecimal(0); + @ApiModelProperty("调拨在途") + private BigDecimal transferInTransit=new BigDecimal(0); + @ApiModelProperty("其他在途") + private BigDecimal otherOnTheWay=new BigDecimal(0); + @ApiModelProperty("工单在途") + private BigDecimal workOrderInTransit=new BigDecimal(0); + @ApiModelProperty("箱单位") + private String boxUnit; + @ApiModelProperty("体积m3") + private String volume; + @ApiModelProperty("重量kg") + private String weight; + @ApiModelProperty("批次") private String batchNumber; - @ApiModelProperty("首次入库日期") - private String firstInDate; - @ApiModelProperty("库龄") - private String dateAge; + @ApiModelProperty("序列号") + private String serialNumber; + private List warehouseInventorys=new ArrayList<>(); }