From ccaeef7bbacc353fb2981c20a78e058c3af1dcde Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Mon, 24 Jun 2024 17:47:17 +0800 Subject: [PATCH] 6/19 --- .../apiadmin/WarehouseAnsBillRest.java | 2 +- .../warehouse/apiadmin/WarehouseAreaRest.java | 4 +- .../apiadmin/WarehouseAreaTypeRest.java | 4 +- .../warehouse/apiadmin/WarehouseInfoRest.java | 4 +- .../WarehouseInventoryCheckbillRest.java | 2 +- .../apiadmin/WarehouseInventoryRest.java | 156 ++++++- .../apiadmin/WarehouseOutBillRest.java | 13 + .../warehouse/apiadmin/WarehouseRackRest.java | 4 +- .../apiadmin/WarehouseReceiptBillRest.java | 2 +- .../apiadmin/WarehouseShelfBillRest.java | 2 +- .../biz/warehousearea/WarehouseAreaQuery.java | 3 +- .../warehousearea/WarehouseAreaService.java | 51 ++- .../WarehouseAreaTypeQuery.java | 4 +- .../WarehouseAreaTypeService.java | 40 +- .../biz/warehouseinfo/WarehouseInfoQuery.java | 5 +- .../warehouseinfo/WarehouseInfoService.java | 47 +- .../WarehouseGoodsInventoryVo.java | 19 + .../WarehouseInventory.java | 6 +- .../WarehouseInventoryAgeExportVo.java | 37 ++ .../WarehouseInventoryAgeQuery.java | 26 ++ .../WarehouseInventoryAgeVo.java | 30 ++ .../WarehouseInventoryAlloSelectList.java | 39 ++ .../WarehouseInventoryAlloSelectQuery.java | 30 ++ .../WarehouseInventoryBillListQuery.java | 21 + .../WarehouseInventoryBillListVo.java | 53 +++ .../WarehouseInventoryDto.java | 48 +++ .../WarehouseInventoryHandleSelectList.java | 35 ++ .../WarehouseInventoryHandleSelectQuery.java | 26 ++ .../WarehouseInventoryInitVo.java | 49 +++ .../WarehouseInventoryInvenSelectList.java | 37 ++ .../WarehouseInventoryInvenSelectQuery.java | 30 ++ .../WarehouseInventoryMapper.java | 36 ++ .../WarehouseInventoryMapper.xml | 288 ++++++++++++- .../WarehouseInventoryPackageQuery.java | 29 ++ .../WarehouseInventoryPackageVo.java | 44 ++ .../WarehouseInventoryReturnSelectList.java | 21 + .../WarehouseInventoryReturnSelectQuery.java | 30 ++ .../WarehouseInventorySalesQuery.java | 16 + .../WarehouseInventorySalesVo.java | 29 ++ .../WarehouseInventoryService.java | 407 +++++++++++++++++- .../WarehouseInventoryUpdateDto.java | 29 ++ .../WarehouseInventoryUpdatePrice.java | 25 ++ .../WarehouseInventoryVoExcelVo.java | 54 +++ .../WarehouseUpdateCountQuery.java | 17 + .../WarehouseOutBillInventoryQuery.java | 35 ++ .../WarehouseOutBillInventoryVo.java | 51 +++ .../WarehouseOutBillMapper.java | 10 + .../WarehouseOutBillQuery.java | 27 +- .../WarehouseOutBillService.java | 173 +++++++- .../warehouseoutbill/WarehouseOutBillVo.java | 22 +- .../WarehouseOutBillDetailDto.java | 17 + .../WarehouseOutBillDetailMapper.java | 3 + .../WarehouseOutBillDetailMapper.xml | 11 + .../WarehouseOutBillDetailService.java | 28 +- .../biz/warehouserack/WarehouseRackQuery.java | 4 +- .../warehouserack/WarehouseRackService.java | 51 ++- .../WarehouseShelfBillService.java | 2 +- 57 files changed, 2175 insertions(+), 113 deletions(-) create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseGoodsInventoryVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeExportVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectList.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectList.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInitVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectList.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectList.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdateDto.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdatePrice.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVoExcelVo.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseUpdateCountQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java create mode 100644 src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAnsBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAnsBillRest.java index f11ebca..80595e3 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAnsBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAnsBillRest.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; **/ @Api(tags = "预期到货通知单") @RestController -@RequestMapping("/apiadmin/WmsAnsBill") +@RequestMapping("/apiadmin/warehouseansbill") public class WarehouseAnsBillRest { @Autowired diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java index 6a712e2..85ffdf8 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java @@ -27,8 +27,8 @@ public class WarehouseAreaRest { @ApiOperation("分页列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody WarehouseAreaQuery query) { - return wmsWarehouseAreaService.listPage(query.getPage(),query.getQw()); + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return wmsWarehouseAreaService.listPage(pq); } @ApiOperation("查询所有的库区") @GetMapping("/listAll") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java index 8155891..d73b457 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java @@ -27,8 +27,8 @@ public class WarehouseAreaTypeRest { @ApiOperation("分页列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody WarehouseAreaTypeQuery query) { - return wmsWarehouseAreaTypeService.listPage(query.getPage(),query.getQw()); + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return wmsWarehouseAreaTypeService.listPage(pq); } @ApiOperation("查询所有的") @GetMapping("/listAll/{useOrgSid}") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java index f22458e..261302a 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java @@ -29,8 +29,8 @@ public class WarehouseInfoRest { @ApiOperation("分页列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody WarehouseInfoQuery query) { - return wmsWarehouseService.listPage(query.getPage(), query.getQw()); + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return wmsWarehouseService.listPage(pq); } @ApiOperation("查询所有的仓库") @GetMapping("/listAll/{useOrgSid}") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryCheckbillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryCheckbillRest.java index 61d8685..487ba8a 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryCheckbillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryCheckbillRest.java @@ -49,7 +49,7 @@ import org.springframework.web.bind.annotation.*; */ @Api(tags = "库存盘点") @RestController -@RequestMapping("v1/wmsinventorycheckbill") +@RequestMapping("apiadmin/wmsinventorycheckbill") public class WarehouseInventoryCheckbillRest { @Autowired diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index 3203ada..291e348 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -1,17 +1,19 @@ package com.yxt.warehouse.apiadmin; +import com.yxt.common.base.utils.ExportExcelUtils; 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.warehouseinventory.WarehouseInventoryQuery; -import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; -import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo; +import com.yxt.warehouse.biz.warehouseinventory.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.List; /** * @author wangpengfei @@ -19,28 +21,168 @@ import javax.servlet.http.HttpServletResponse; */ @Api(tags = "库存信息") @RestController -@RequestMapping("/apiadmin/inventory/wmsinventory") +@RequestMapping("/apiadmin/inventory/Warehouseinventory") public class WarehouseInventoryRest { @Autowired - WarehouseInventoryService wmsInventoryService; + WarehouseInventoryService WarehouseInventoryService; @Autowired HttpServletResponse response; + @ApiOperation("分页列表") @PostMapping("/listPage") public ResultBean> listPage(@RequestBody PagerQuery pq) { ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = wmsInventoryService.listPage(pq); + PagerVo pv = WarehouseInventoryService.listPage(pq); return rb.success().setData(pv); } @ApiOperation("删除/批量删除") @DeleteMapping("/delBySids") ResultBean delBySids(@RequestBody String[] sids) { - return wmsInventoryService.delAllBySids(sids); + return WarehouseInventoryService.delAllBySids(sids); + } + + // @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("/saveWarehouseInventory") + ResultBean saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) { + return WarehouseInventoryService.saveWarehouseInventory(dto); + }*/ + + + + /*@ApiOperation("初始化") + @PostMapping("/init") + ResultBean init(@RequestParam("sid") String sid) { + return WarehouseInventoryService.init(sid); + }*/ + + /* @ApiOperation("批量修改销售价") + @PostMapping("/updatePrice") + ResultBean updatePrice(@RequestBody WarehouseInventoryUpdatePrice WarehouseInventoryUpdatePrice) { + return WarehouseInventoryService.updatePrice(WarehouseInventoryUpdatePrice); + }*/ + + /* @ApiOperation("收发存") + @PostMapping("/getBillList") + ResultBean> getBillList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = WarehouseInventoryService.getBillList(pagerQuery); + return rb.success().setData(pv); + }*/ + + @PostMapping("/exportExcel") + @ApiOperation(value = "导出") + public void exportExcel(@RequestBody WarehouseInventoryQuery query) { + //得到所有要导出的数据 + List exportVoList = WarehouseInventoryService.listExcel(query); + //定义导出的excel名字 + String excelName = "库存列表"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, WarehouseInventoryVoExcelVo.class, response); + + } + + @ApiOperation("修改库存数量") + @PostMapping("/updateInventoryCount") + ResultBean updateInventoryCount(@RequestBody WarehouseUpdateCountQuery query) { + return WarehouseInventoryService.updateInventoryCount(query); + } + + @ApiOperation("销售开单选择商品分页列表") + @PostMapping("/listPageSales") + public ResultBean> listPageSales(@RequestBody PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = WarehouseInventoryService.listPageSales(pq); + return rb.success().setData(pv); } + @ApiOperation("查询部门下所有的商品信息") + @PostMapping("/getPackageGoodsVo") + public ResultBean> getPackageGoodsVo(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.getPackageGoodsVo(pq); + } + + @ApiOperation("库龄查询") + @PostMapping("/inventoryAgeList") + public ResultBean> inventoryAgeList(@RequestBody PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = WarehouseInventoryService.inventoryAgeList(pq); + return rb.success().setData(pv); + } + + @PostMapping("/ageExportExcel") + @ApiOperation(value = "库龄查询导出") + public void ageExportExcel(@RequestBody WarehouseInventoryAgeQuery query) { + //得到所有要导出的数据 + List exportVoList = WarehouseInventoryService.ageExportExcel(query); + //定义导出的excel名字 + String excelName = "库领查询列表"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, WarehouseInventoryAgeExportVo.class, response); + + } + + @ApiOperation("根据商品sid查询库存信息") + @PostMapping("/selectInvenBySkuSid") + public ResultBean selectInvenBySkuSid(@RequestParam("skuSid") String skuSid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseGoodsInventoryVo WarehouseGoodsInventoryVo = WarehouseInventoryService.selectInvenBySkuSid(skuSid); + return rb.success().setData(WarehouseGoodsInventoryVo); + } + + @ApiOperation("盘库商品分页列表") + @PostMapping("/invenGoodsListPage") + public ResultBean> invenGoodsListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.invenGoodsListPage(pq); + } + + @ApiOperation("调拨商品分页列表") + @PostMapping("/alloGoodsListPage") + public ResultBean> alloGoodsListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.alloGoodsListPage(pq); + } + + @ApiOperation("旧件返厂商品分页列表") + @PostMapping("/returnGoodsListPage") + public ResultBean> returnGoodsListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.returnGoodsListPage(pq); + } + + @ApiOperation("旧件处理商品分页列表") + @PostMapping("/handleGoodsListPage") + public ResultBean> handleGoodsListPage(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.handleGoodsListPage(pq); + } + + @ApiOperation("根据Sid获取库存实体") + @PostMapping("/fetchEntityBySid") + ResultBean fetchEntityBySid(@RequestParam("sid") String sid) { + return WarehouseInventoryService.fetchEntityBySid(sid); + } } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java index 476ceca..17c425e 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java @@ -41,4 +41,17 @@ public class WarehouseOutBillRest { ResultBean details(@RequestParam("sid") String sid) { return wmsOutBillService.details(sid); } + @ApiOperation("选择商品分页列表") + @PostMapping("/getInventoryList") + ResultBean> getInventoryList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsOutBillService.getInventoryList(pagerQuery); + return rb.success().setData(pv); + } + + @ApiOperation("确认") + @PostMapping("/confirm") + ResultBean confirm(@RequestBody WarehouseOutBillDto dto) { + return wmsOutBillService.confirm(dto); + } } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java index b0a5835..5e229ce 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java @@ -25,8 +25,8 @@ public class WarehouseRackRest { @ApiOperation("分页列表") @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody WarehouseRackQuery query) { - return wmsWarehouseRackService.listPage(query); + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return wmsWarehouseRackService.listPage(pq); } @ApiOperation("查询所有的库区") @GetMapping("/getAllType") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseReceiptBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseReceiptBillRest.java index 86c98e1..104c835 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseReceiptBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseReceiptBillRest.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; **/ @Api(tags = "收货单据") @RestController -@RequestMapping("/apiadmin/inventory/WmsReceiptBill") +@RequestMapping("/apiadmin/inventory/warehousereceiptbill") public class WarehouseReceiptBillRest { @Autowired diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseShelfBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseShelfBillRest.java index d3231c0..a51e675 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseShelfBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseShelfBillRest.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*; **/ @Api(tags = "上货架") @RestController -@RequestMapping("/apiadmin/WmsShelfBill") +@RequestMapping("/apiadmin/warehouseshelfbill") public class WarehouseShelfBillRest { @Autowired diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaQuery.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaQuery.java index bfc439e..eb7b860 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaQuery.java @@ -16,6 +16,7 @@ public class WarehouseAreaQuery implements Query { private String code;//编码 private String warehouseSid;//仓库 private String areaTypeSid;//库区类型 + private String orgLevelKey;// @ApiModelProperty("菜单路由") private String menuUrl; @@ -23,6 +24,4 @@ public class WarehouseAreaQuery implements Query { private String orgPath; @ApiModelProperty("用户sid") private String userSid; - private QueryWrapper qw; - private IPage page; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaService.java b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaService.java index 8f2e58c..aafd09e 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaService.java @@ -11,7 +11,6 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestBody; import java.util.Arrays; import java.util.Date; @@ -26,8 +25,56 @@ import java.util.stream.Collectors; public class WarehouseAreaService extends MybatisBaseService { - public ResultBean> listPage( IPage page , QueryWrapper qw) { + public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); + WarehouseAreaQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = query.getOrgLevelKey(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".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.areaName", query.getName()); + } + if (StringUtils.isNotBlank(query.getCode())) { + qw.like("a.areaCode", query.getCode()); + } + if (StringUtils.isNotBlank(query.getWarehouseSid())) { + qw.eq("b.sid", query.getWarehouseSid()); + } + if (StringUtils.isNotBlank(query.getAreaTypeSid())) { + qw.eq("c.sid", query.getAreaTypeSid()); + } + qw.ne("a.isDelete", "1"); + IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); return rb.success().setData(pagging); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeQuery.java index 802e4ee..cddc660 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeQuery.java @@ -13,13 +13,11 @@ import lombok.Data; @Data public class WarehouseAreaTypeQuery implements Query { private String name; - + private String orgLevelKey;// @ApiModelProperty("菜单路由") private String menuUrl; @ApiModelProperty("组织全路径sid") private String orgPath; @ApiModelProperty("用户sid") private String userSid; - private IPage page; - private QueryWrapper qw; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java b/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java index b7542dd..2f687bb 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java @@ -26,8 +26,46 @@ import java.util.stream.Collectors; public class WarehouseAreaTypeService extends MybatisBaseService { - public ResultBean> listPage(IPage page, QueryWrapper qw) { + public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); + WarehouseAreaTypeQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = query.getOrgLevelKey(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".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.warehouseAreaTypeName",query.getName()); + } + qw.ne("a.isDelete","1"); + IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); return rb.success().setData(pagging); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoQuery.java index bdee9b9..07bf43a 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoQuery.java @@ -21,8 +21,5 @@ public class WarehouseInfoQuery implements Query { private String orgPath; @ApiModelProperty("用户sid") private String userSid; - - private IPage page; - - private QueryWrapper qw; + private String orgLevelKey;// } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java index 368e8aa..559bde7 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java @@ -36,8 +36,53 @@ public class WarehouseInfoService extends MybatisBaseService> listPage(IPage page, QueryWrapper qw) { + public ResultBean> listPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); + WarehouseInfoQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = query.getOrgLevelKey(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("w.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("w.warehouseName", query.getName()); + } + if (StringUtils.isNotBlank(query.getCode())) { + qw.like("w.warehouseCode", query.getCode()); + } + if (StringUtils.isNotBlank(query.getAddress())) { + qw.like("w.address", query.getAddress()); + } + qw.ne("isDelete",1); + qw.orderByDesc("sortNo"); + IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); return rb.success().setData(pagging); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseGoodsInventoryVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseGoodsInventoryVo.java new file mode 100644 index 0000000..d015c8d --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseGoodsInventoryVo.java @@ -0,0 +1,19 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/25 16:54 + */ +@Data +public class WarehouseGoodsInventoryVo implements Vo { + + private String goodsSkuOwnSpec;//型号 + private String warehouseSid;//仓库sid + private String warehouseName;//仓库名称 + private String warehouseRackName; //货位 + private String count;//库存数量 +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java index 8cee30e..da03d50 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java @@ -1,5 +1,6 @@ package com.yxt.warehouse.biz.warehouseinventory; +import com.baomidou.mybatisplus.annotation.TableName; import com.yxt.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,8 +13,9 @@ import java.util.Date; * @date 2024/2/28 8:38 */ @Data +@TableName("wms_inventory") public class WarehouseInventory extends BaseEntity { - + @ApiModelProperty("批次号") private String batchNumber; @ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)") @@ -40,6 +42,8 @@ public class WarehouseInventory extends BaseEntity { private BigDecimal pickCount; @ApiModelProperty("冻结量") private BigDecimal freezeCount; + @ApiModelProperty("入库单价") + private BigDecimal cost; @ApiModelProperty("仓库sid") private String warehouseSid; @ApiModelProperty("仓库名称") diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeExportVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeExportVo.java new file mode 100644 index 0000000..c27013e --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeExportVo.java @@ -0,0 +1,37 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/4/1 14:04 + */ +@Data +public class WarehouseInventoryAgeExportVo { + + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ExportEntityMap(CnName = "商品名称", EnName = "goodsSpuName") + private String goodsSpuName;//商品名称 + @ExportEntityMap(CnName = "商品Sku名称", EnName = "goodsSkuTitle") + private String goodsSkuTitle;//商品Sku名称 + @ExportEntityMap(CnName = "零件号", EnName = "goodsSkuCode") + private String goodsSkuCode;//零件号 + @ExportEntityMap(CnName = "规格型号", EnName = "goodsSkuOwnSpec") + private String goodsSkuOwnSpec; //规格型号 + @ExportEntityMap(CnName = "计量单位", EnName = "unit") + private String unit;//计量单位 + @ExportEntityMap(CnName = "仓库名称", EnName = "warehouseName") + private String warehouseName;//仓库名称 + @ExportEntityMap(CnName = "库位编码", EnName = "warehouseRackCode") + private String warehouseRackCode;//库位编码 + @ExportEntityMap(CnName = "库存数量", EnName = "count") + private String count;//库存数量 + @ExportEntityMap(CnName = "库龄", EnName = "age") + private String age;//库龄 + @ExportEntityMap(CnName = "入库日期", EnName = "firstInDate") + private String firstInDate; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeQuery.java new file mode 100644 index 0000000..ee744cb --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeQuery.java @@ -0,0 +1,26 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/25 16:54 + */ +@Data +public class WarehouseInventoryAgeQuery implements Query { + private String startDate; + private String endDate; + private String warehouseName;//仓库名称 +// @ApiModelProperty("商品类别名称") +// private String goodsTypeName; +// private String busTypeValue;//业务类型value(采购入库、维修出入库、销售出入库等) + private String goodsSpuName;//商品名称 + private String goodsSkuCode;//零件号 + private String ageStart;//库龄开始 + private String ageEnd;//库龄开始 + // private String queryName; //单号,来源单号,供应商 + private String orgPath; + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeVo.java new file mode 100644 index 0000000..9501b14 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeVo.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/25 16:54 + */ +@Data +public class WarehouseInventoryAgeVo implements Vo { + + private String sid; + private String goodsSpuName;//商品名称 + private String goodsSkuTitle;//商品Sku名称 + private String goodsSkuCode;//零件号 + private String goodsSkuOwnSpec; //规格型号 + private String unit;//计量单位 + private String warehouseName;//仓库名称 +// private String warehouseArea;//库区名称 + private String warehouseRackCode;//库位编码 + private String count;//库存数量 + private String age;//库龄 + //来源单号 + @ApiModelProperty("首次入库日期-计算库龄的依据") + private String firstInDate; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectList.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectList.java new file mode 100644 index 0000000..a8025b8 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectList.java @@ -0,0 +1,39 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryAlloSelectList { + + //sid + private String sid; + //商品名称 + private String goodsSpuName; + //零件号 + private String goodsSkuCode; + //规格 + private String goodsSkuOwnSpec; + //车型 + private String carModel; + //商品单位 + private String unit; + //仓库sid + private String warehouseSid; + //仓库名称 + private String warehouseName; + //库位sid + private String warehouseRackSid; + //库位编码 + private String warehouseRackCode; + //库位名称 + private String areaName; + //含税价 + private String taxPrice; + //库存数量 + private String count; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectQuery.java new file mode 100644 index 0000000..1858759 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectQuery.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryAlloSelectQuery implements Query { + + //组织sid + private String orgSid; + //商品名称 + private String goodsName; + //商品类别sid + private String goodsTypeSid; + //商品拼音 + private String goodsPY; + //品牌sid + private String brandSid; + //零件号 + private String goodsSkuCode; + //规格 + private String title; + //其他查询条件 + private String otherQuery; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListQuery.java new file mode 100644 index 0000000..60330bf --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListQuery.java @@ -0,0 +1,21 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/19 + **/ +@Data +public class WarehouseInventoryBillListQuery implements Query { + //创建时间开始 + private String createTimeStart; + //创建时间结束 + private String createTimeEnd; + //业务类型 + private String busTypeKey; + + private String sid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListVo.java new file mode 100644 index 0000000..481c60b --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListVo.java @@ -0,0 +1,53 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/19 + **/ +@Data +public class WarehouseInventoryBillListVo { + + //商品名称 + private String goodsSpuName; + //商品标题 + private String goodsSkuTitle; + //商品编码 + private String goodsSkuCode; + //规格型号 + private String goodsSkuOwnSpec; + //计量单位 + private String unit; + //仓库名称 + private String warehouseName; + + //库区名称 + private String warehouseArea; + //货架名称 + private String warehouseRackName; + //业务类型 + private String busTypeValue; + //单位成本 + private String cost; + //销售价1 + private String price1; + //销售价2: + private String price2; + //科目 + private String subject; + //制单人 + private String createByName; + //创建时间 + private String createTime; + + //单号 + private String billNo; + //来源单号 + private String sourceBillNo; + //供应商 + private String billObjName; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java new file mode 100644 index 0000000..0ce33a6 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java @@ -0,0 +1,48 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/2/26 13:38 + */ +@Data +public class WarehouseInventoryDto implements Dto { + private String id; + private String sid; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + private String remarks; + private String isEnable; + private String goodsID;//商品ID(唯一编码,入库时生成) + private String goodsSid;//商品sid + private String billSid;//入库单sid + private String billDetailSid;//入库单明细sid + private String price1;//销售价格1 + private String price2;//销售价格2 + private String price3;//销售价格3 + private String price4;//销售价格4 + private String price5;//销售价格5 + private String unit;//计量单位 + private String count;//库存数量 + private String minimumPrice;//销售底价 + private String freePrice;//三包价格 + private String firstMaintainPrice;//首保价格 + private String warehouseSid;//仓库sid + private String warehouseName;//仓库名称 + private String warehouseArea;//货位 + private String isShowDiscount;//是否显示折扣标志 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date firstInDate;//首次入库日期-计算库龄的依据 + private String lockCount;//锁定数量,计算字段,出库申请通过,但未实际出库 + private String sortNo;//排序 + private String useOrgSid;//使用组织sid + private String createOrgSid;//创建组织sid + + private String goodSpuSid; + private String goodsSkuSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectList.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectList.java new file mode 100644 index 0000000..ba1ae12 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectList.java @@ -0,0 +1,35 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryHandleSelectList { + + //商品ID + private String goodsID; + //商品名称 + private String goodsSpuName; + //图号 + private String goodsSkuCode; + //供应商 + private String supplierName; + //规格 + private String goodsSkuOwnSpec; + //商品单位 + private String unit; + //仓库sid + private String warehouseSid; + //仓库名称 + private String warehouseName; + //库位sid + private String warehouseRackSid; + //库位编码 + private String warehouseRackCode; + //库存数量 + private String count; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectQuery.java new file mode 100644 index 0000000..b90ed3b --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectQuery.java @@ -0,0 +1,26 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryHandleSelectQuery implements Query { + + //组织sid + private String orgSid; + //商品名称 + private String goodsName; + //图号 + private String goodsSkuCode; + //仓库 + private String warehouseName; + //库位编码 + private String warehouseRackCode; + //供应商 + private String supplierName; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInitVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInitVo.java new file mode 100644 index 0000000..40caa9b --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInitVo.java @@ -0,0 +1,49 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/18 + **/ +@Data +public class WarehouseInventoryInitVo { + + private String sid; + + //仓库 + private String warehouseName; + //供应商 + private String billObjName; + //最近采购时间 + //最近销售时间 + //数量 + private String count; + //进价 + //税额 + //含税价 + //销售价格1 + private String price1; + //销售价格2 + private String price2; + //销售价格3 + private String price3; + //销售价格4 + private String price4; + //销售价格5 + private String price5; + //销售底价 + private String minimumPrice; + //货位 + private String warehouseArea; + //折扣标志 + private int isShowDiscount; + //三包价格 + private String freePrice; + //首保价格 + private String firstMaintainPrice; + //排序 + private int sortNo; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectList.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectList.java new file mode 100644 index 0000000..cd3d491 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectList.java @@ -0,0 +1,37 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryInvenSelectList { + + //sid + private String sid; + //商品名称 + private String goodsSpuName; + //商品编码 + private String goodsSkuCode; + //型号 + private String goodsSkuOwnSpec; + //商品单位 + private String unit; + //仓库sid + private String warehouseSid; + //仓库名称 + private String warehouseName; + //库位sid + private String warehouseRackSid; + //库位编码 + private String warehouseRackCode; + //库位名称 + private String areaName; + //账面数量 + private String count; + //销售单价 + private String salesPrice; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectQuery.java new file mode 100644 index 0000000..e5428d8 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectQuery.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryInvenSelectQuery implements Query { + + //组织sid + private String orgSid; + //商品名称 + private String goodsName; + //商品类别sid + private String goodsTypeSid; + //商品拼音 + private String goodsPY; + //品牌sid + private String brandSid; + //零件号 + private String goodsSkuCode; + //规格 + private String title; + //其他查询条件 + private String otherQuery; +} 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 ed509e6..1e7f16f 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java @@ -7,6 +7,8 @@ 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 @@ -16,4 +18,38 @@ public interface WarehouseInventoryMapper extends BaseMapper IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + WarehouseInventoryVo initialization(@Param("sid") String sid); + + int updatePrice1(@Param("price") String price, @Param("list") List stringList); + + int updatePrice2(@Param("price") String price, @Param("list") List stringList); + + int updatePrice3(@Param("price") String price, @Param("list") List stringList); + + int updatePrice4(@Param("price") String price, @Param("list") List stringList); + + int updatePrice5(@Param("price") String price, @Param("list") List stringList); + + IPage getBillList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("sid") String sid); + + List listExcel(@Param(Constants.WRAPPER) QueryWrapper qw); + + IPage listPageSales(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage getPackageGoodsVo(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); + + IPage inventoryAgeList(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); + + List ageExportExcel(@Param(Constants.WRAPPER) QueryWrapper qw); + + WarehouseGoodsInventoryVo selectInvenBySkuSid(String skuSid); + + IPage invenGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage alloGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage returnGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage handleGoodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + } 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 a9c8939..4f7d14c 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -6,20 +6,286 @@ + + + + update warehouse_inventory + set price1 = #{price} where sid in + + #{item} + + + + + update warehouse_inventory + set price2 = #{price} where sid in + + #{item} + + + + + update warehouse_inventory + set price3 = #{price} where sid in + + #{item} + + + + + update warehouse_inventory + set price4 = #{price} where sid in + + #{item} + + + + + update warehouse_inventory + set price5 = #{price} where sid in + + #{item} + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageQuery.java new file mode 100644 index 0000000..e47c363 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageQuery.java @@ -0,0 +1,29 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/12 15:33 + */ +@Data +public class WarehouseInventoryPackageQuery implements Query { + private String orgPath; + @ApiModelProperty("商品名称") + private String goodsName; // 商品名称 + @ApiModelProperty("零件号") + private String goodsCode; // 商品编码(图号) + @ApiModelProperty("库存") + private String kuCun; + @ApiModelProperty("仓库名称") + private String warehouse; // 仓库名称 + @ApiModelProperty("货位") + private String warehouseArea; + @ApiModelProperty("商品分类") + private String goodsTypeName; + private String name; + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageVo.java new file mode 100644 index 0000000..9622af7 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageVo.java @@ -0,0 +1,44 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/12 10:00 + */ +@Data +public class WarehouseInventoryPackageVo { + + @ApiModelProperty("商品sid") + private String goodsSid; // 商品sid + @ApiModelProperty("商品名称") + private String goodsName; // 商品名称 + @ApiModelProperty("商品编码(图号)") + private String goodsCode; // 商品编码(图号) + @ApiModelProperty("车型sid") + private String goodsModelSid; // 车型sid + @ApiModelProperty("车型") + private String goodsModel; // 车型 + @ApiModelProperty("单位") + private String unit; // 单位 + @ApiModelProperty("规格") + private String specification; // 规格 + @ApiModelProperty("数量") + private String count; // 数量 + @ApiModelProperty("销售价") + private String price; // 销售价 + @ApiModelProperty("仓库名称") + private String warehouse; // 仓库名称 + @ApiModelProperty("仓库sid") + private String warehouseSid; // 仓库sid + @ApiModelProperty("货位") + private String warehouseArea; + @ApiModelProperty("备注") + private String remarks; // 备注 + @ApiModelProperty("三包价") + private String freePrice; // 三包价 + @ApiModelProperty("商品分类") + private String goodsTypeName; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectList.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectList.java new file mode 100644 index 0000000..451bffd --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectList.java @@ -0,0 +1,21 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryReturnSelectList { + + //商品名称 + private String goodsName; + //零件号 + private String goodsSkuCode; + //规格 + private String goodsSkuOwnSpec; + //单位 + private String unit; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectQuery.java new file mode 100644 index 0000000..6105ee2 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectQuery.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/21 + **/ +@Data +public class WarehouseInventoryReturnSelectQuery implements Query { + + //组织sid + private String orgSid; + //商品名称 + private String goodsName; + //商品类别sid + private String goodsTypeSid; + //商品拼音 + private String goodsPY; + //品牌sid + private String brandSid; + //零件号 + private String goodsSkuCode; + //规格 + private String title; + //其他查询条件 + private String otherQuery; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesQuery.java new file mode 100644 index 0000000..c38f77d --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesQuery.java @@ -0,0 +1,16 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/20 15:14 + */ +@Data +public class WarehouseInventorySalesQuery implements Query { + + private String queryName; //名称 + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesVo.java new file mode 100644 index 0000000..caf7990 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesVo.java @@ -0,0 +1,29 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/20 15:14 + */ +@Data +public class WarehouseInventorySalesVo implements Vo { + + private String inventorySid; + private String goodsID; + private String goodSpuSid;//商品基础信息sid + private String goodsSpuName;//商品名称 + private String goodsSkuSid;//商品Skusid + private String goodsSkuTitle;//商品Sku名称 + private String goodsSkuCode;//商品编码(图号) + private String unit;//计量单位 + private String currentCount;//库存数量 + private String warehouseSid;//仓库sid + private String warehouse;//仓库名称 + private String price;//销售价 + +} + + 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 348ddf9..519339b 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java @@ -1,6 +1,7 @@ package com.yxt.warehouse.biz.warehouseinventory; 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; @@ -11,7 +12,10 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; 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; /** @@ -45,29 +49,406 @@ public class WarehouseInventoryService extends MybatisBaseService saveWmsInventory(WarehouseInventorySaveDto dto) { + /** + * 入库 + * + * @param dto + * @return + */ + public ResultBean warehousing(WarehouseInventoryDto dto) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper().eq("goodsSid", dto.getGoodsSid()).eq("warehouseSid", dto.getWarehouseSid())); + if (null == WarehouseInventory) { + WarehouseInventory Warehouse = new WarehouseInventory(); + BeanUtil.copyProperties(dto, Warehouse, "sid", "id"); + Warehouse.setFirstInDate(new Date()); + baseMapper.insert(Warehouse); + return rb.success().setData(Warehouse); + } else { + WarehouseInventory.setCount(new BigDecimal(Double.valueOf(dto.getCount()) + Double.valueOf(WarehouseInventory.getCount().toString()))); + baseMapper.updateById(WarehouseInventory); + } + return rb.success().setData(WarehouseInventory); + } + + /** + * 出库 + * + * @param dto + * @return + */ + public ResultBean outWarehousing(WarehouseInventoryDto dto) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper().eq("goodsSid", dto.getGoodsSid()).eq("warehouseSid", dto.getWarehouseSid())); + double exisInventory = Double.valueOf(WarehouseInventory.getCount().toString()); + double out = Double.valueOf(dto.getCount()); + if (null == WarehouseInventory) { + return rb.setMsg("此仓库没有相应的商品库存"); + } + if (exisInventory < -out) { + return rb.setMsg("库存不足"); + } + WarehouseInventory.setCount(new BigDecimal(exisInventory + out)); + baseMapper.updateById(WarehouseInventory); + return rb.success().setData(WarehouseInventory); + } + + public ResultBean saveOrUpdate(WarehouseInventoryDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; + if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); + WarehouseInventory WarehouseWarehouseRack = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, WarehouseWarehouseRack, "id", "sid"); + baseMapper.updateById(WarehouseWarehouseRack); + } else { + WarehouseInventory WarehouseWarehouseRack = new WarehouseInventory(); + sid = WarehouseWarehouseRack.getSid(); + BeanUtil.copyProperties(dto, WarehouseWarehouseRack, "id", "sid"); + WarehouseWarehouseRack.setCreateTime(new DateTime()); + baseMapper.insert(WarehouseWarehouseRack); + } + return rb.success().setMsg("成功"); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventoryVo vo = baseMapper.initialization(sid); + return rb.success().setData(vo); + } + + + public ResultBean delete(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory WarehouseWarehouseRack = fetchBySid(sid); + if (null != WarehouseWarehouseRack) { + baseMapper.deleteById(WarehouseWarehouseRack.getId()); + } + return rb.success(); + } + + public ResultBean updateIsEnable(String sid, String isEnable) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory WarehouseWarehouseRack = fetchBySid(sid); + if (null != WarehouseWarehouseRack) { + WarehouseWarehouseRack.setIsEnable(Integer.parseInt(isEnable)); + baseMapper.updateById(WarehouseWarehouseRack); + } + return rb.success().setMsg("成功"); + } + + public ResultBean updateWarehouseInventory(WarehouseInventoryUpdateDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + WarehouseInventory WarehouseInventory = fetchBySid(sid); + if (WarehouseInventory == null) { + return rb.setMsg("该库存信息不存在"); + } + BeanUtil.copyProperties(dto, WarehouseInventory, "sid"); + baseMapper.updateById(WarehouseInventory); + return rb.success(); + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + List sidss = Arrays.asList(sids); + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + /* public ResultBean init(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory WarehouseInventory = fetchBySid(sid); + if (WarehouseInventory == null) { + return rb.setData(new WarehouseInventoryInitVo()).setMsg("该库存信息不存在"); + } + WarehouseInventoryInitVo WarehouseInventoryInitVo = new WarehouseInventoryInitVo(); + BeanUtil.copyProperties(WarehouseInventory, WarehouseInventoryInitVo); + WarehouseInventoryBill WarehouseInventoryBill = WarehouseInventoryBillService.fetchBySid(WarehouseInventory.getBillSid()); + if (WarehouseInventoryBill != null) { + WarehouseInventoryInitVo.setBillObjName(WarehouseInventoryBill.getBillObjName()); + } + return rb.success().setData(WarehouseInventoryInitVo); + }*/ + + /* public ResultBean updatePrice(WarehouseInventoryUpdatePrice WarehouseInventoryUpdatePrice) { + ResultBean rb = ResultBean.fireFail(); + List stringList = WarehouseInventoryUpdatePrice.getSidsList(); + stringList.removeAll(Collections.singleton(null)); + String price = WarehouseInventoryUpdatePrice.getPrice(); + if (!stringList.isEmpty()) { + int type = WarehouseInventoryUpdatePrice.getType(); + switch (type) { + case 1: + baseMapper.updatePrice1(price, stringList); + break; + case 2: + baseMapper.updatePrice2(price, stringList); + break; + case 3: + baseMapper.updatePrice3(price, stringList); + break; + case 4: + baseMapper.updatePrice4(price, stringList); + break; + case 5: + baseMapper.updatePrice5(price, stringList); + break; + default: + break; + } + } + return rb.success(); + } + */ + /* public PagerVo getBillList(PagerQuery pagerQuery) { + WarehouseInventoryBillListQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (query != null) { + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (b.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (b.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + if (StringUtils.isNotBlank(query.getBusTypeKey())) { + qw.eq("b.busTypeKey", query.getBusTypeKey()); + } + } + + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.getBillList(page, qw, query.getSid()); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } +*/ + public List 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()); + } + } + List list = baseMapper.listExcel(qw); + list.removeAll(Collections.singleton(null)); + return list; + } + + public ResultBean updateInventoryCount(WarehouseUpdateCountQuery query) { + ResultBean rb = ResultBean.fireFail(); + String sid = query.getSid(); + WarehouseInventory inventory = fetchBySid(sid); + if (null != inventory) { + if (null != inventory.getCount()) { + BigDecimal inventoryCount = inventory.getCount(); + BigDecimal count = query.getCount(); + if (query.getAddOrReduce() == 0) { + //增加库存 + inventory.setCount(inventoryCount.add(count)); + } else if (query.getAddOrReduce() == 1) { + //减少库存 + inventory.setCount(inventoryCount.subtract(count)); + } + baseMapper.updateById(inventory); + } + } + return rb.success(); + } + + public PagerVo listPageSales(PagerQuery pq) { + WarehouseInventorySalesQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getQueryName())) { + qw.like("i.goodsSpuName", query.getQueryName()); + } + if (StringUtils.isNotBlank(query.getUseOrgSid())) { + qw.like("i.useOrgSid", query.getUseOrgSid()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPageSales(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean> getPackageGoodsVo(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventoryPackageQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getName())) { + qw.and(wrapper -> wrapper.like("v.goodsSpuName", query.getName()) + .or().like("v.goodsSkuCode", query.getName()) + ); + } + //商品名称 + if (StringUtils.isNotBlank(query.getGoodsName())) { + qw.like("v.goodsSpuName", query.getGoodsName()); + } + //零件号 + if (StringUtils.isNotBlank(query.getGoodsCode())) { + qw.like("v.goodsSkuCode", query.getGoodsCode()); + } + //库存 + if (StringUtils.isNotBlank(query.getKuCun())) { + if (query.getKuCun().equals("有库存")) { + qw.apply("v.count > 0"); + } else if (query.getKuCun().equals("无库存")) { + qw.apply("v.count <= 0"); + } + } + //仓库名称 + if (StringUtils.isNotBlank(query.getWarehouse())) { + qw.like("v.warehouseName", query.getWarehouse()); + } + //货位 + if (StringUtils.isNotBlank(query.getWarehouseArea())) { + qw.like("v.warehouseArea", query.getWarehouseArea()); + } + + if (StringUtils.isNotBlank(query.getUseOrgSid())) { + qw.eq("v.useOrgSid",query.getUseOrgSid()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.getPackageGoodsVo(page, qw); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + public PagerVo inventoryAgeList(PagerQuery pq) { + WarehouseInventoryAgeQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getUseOrgSid())) { + qw.eq("w.useOrgSid", query.getUseOrgSid()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuName())) { + qw.like("w.goodsSpuName", query.getGoodsSpuName()); + } + if (StringUtils.isNotBlank(query.getWarehouseName())) { + qw.like("w.warehouseName", query.getWarehouseName()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("w.goodsSkuCode", query.getGoodsSkuCode()); + } + qw.apply(StringUtils.isNotBlank(query.getStartDate()), "date_format (w.firstInDate,'%Y-%m-%d') >= date_format('" + query.getStartDate() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getEndDate()), "date_format (w.firstInDate,'%Y-%m-%d') <= date_format('" + query.getEndDate() + "','%Y-%m-%d')" + ); + qw.apply(StringUtils.isNotBlank(query.getAgeStart()), "w.age >=" + query.getAgeStart()). + apply(StringUtils.isNotBlank(query.getAgeEnd()), "w.age <=" + query.getAgeStart() + ); + qw.orderByDesc("w.firstInDate"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.inventoryAgeList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List ageExportExcel(WarehouseInventoryAgeQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getUseOrgSid())) { + qw.eq("w.useOrgSid", query.getUseOrgSid()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuName())) { + qw.like("w.goodsSpuName", query.getGoodsSpuName()); + } + if (StringUtils.isNotBlank(query.getWarehouseName())) { + qw.like("w.warehouseName", query.getWarehouseName()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("w.goodsSkuCode", query.getGoodsSkuCode()); + } + qw.apply(StringUtils.isNotBlank(query.getStartDate()), "date_format (w.firstInDate,'%Y-%m-%d') >= date_format('" + query.getStartDate() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getEndDate()), "date_format (w.firstInDate,'%Y-%m-%d') <= date_format('" + query.getEndDate() + "','%Y-%m-%d')" + ); + qw.apply(StringUtils.isNotBlank(query.getAgeStart()), "w.age >=" + query.getAgeStart()). + apply(StringUtils.isNotBlank(query.getAgeEnd()), "w.age <=" + query.getAgeStart() + ); + qw.orderByDesc("w.firstInDate"); + List list = baseMapper.ageExportExcel(qw); + return list; + } + + public WarehouseGoodsInventoryVo selectInvenBySkuSid(String skuSid) { + return baseMapper.selectInvenBySkuSid(skuSid); + } + + public ResultBean> invenGoodsListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventoryInvenSelectQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.invenGoodsListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + public ResultBean> alloGoodsListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventoryAlloSelectQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.alloGoodsListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + public ResultBean fetchEntityBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventory inventory = fetchBySid(sid); + return rb.success().setData(inventory); + } + + public ResultBean saveWarehouseInventory(WarehouseInventorySaveDto dto) { ResultBean rb = ResultBean.fireFail(); String sid = dto.getSid(); if (StringUtils.isBlank(sid)) { - WarehouseInventory wmsInventory = new WarehouseInventory(); - BeanUtil.copyProperties(dto, wmsInventory, "sid"); - sid = wmsInventory.getSid(); - baseMapper.insert(wmsInventory); + WarehouseInventory WarehouseInventory = new WarehouseInventory(); + BeanUtil.copyProperties(dto, WarehouseInventory, "sid"); + sid = WarehouseInventory.getSid(); + baseMapper.insert(WarehouseInventory); } else { - WarehouseInventory wmsInventory = fetchBySid(sid); - if (wmsInventory == null) { + WarehouseInventory WarehouseInventory = fetchBySid(sid); + if (WarehouseInventory == null) { return rb.setMsg("该商品库存不存在"); } - BeanUtil.copyProperties(dto, wmsInventory, "sid"); - baseMapper.updateById(wmsInventory); + BeanUtil.copyProperties(dto, WarehouseInventory, "sid"); + baseMapper.updateById(WarehouseInventory); } return rb.success().setData(sid); } - public ResultBean delAllBySids(String[] sids) { + public ResultBean> returnGoodsListPage(PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); - List sidss = Arrays.asList(sids); - delBySids(sids); - return rb.success().setMsg("删除成功"); + WarehouseInventoryReturnSelectQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.returnGoodsListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + public ResultBean> handleGoodsListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInventoryHandleSelectQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getGoodsName())) { + qw.like("wi.goodsSpuName", query.getGoodsName()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("wi.goodsSkuCode", query.getGoodsSkuCode()); + } + if (StringUtils.isNotBlank(query.getWarehouseName())) { + qw.like("wi.warehouseName", query.getWarehouseName()); + } + if (StringUtils.isNotBlank(query.getWarehouseRackCode())) { + qw.like("wi.warehouseRackCode", query.getWarehouseRackCode()); + } + if (StringUtils.isNotBlank(query.getSupplierName())) { + qw.like("wb.supplierName", query.getSupplierName()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.handleGoodsListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdateDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdateDto.java new file mode 100644 index 0000000..6bc08d1 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdateDto.java @@ -0,0 +1,29 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/18 + **/ +@Data +public class WarehouseInventoryUpdateDto { + private String sid; + private String price1;//销售价格1 + private String price2;//销售价格2 + private String price3;//销售价格3 + private String price4;//销售价格4 + private String price5;//销售价格5 + + private String minimumPrice;//销售底价 + private String warehouseAreaSid;//库区sid + private String warehouseArea;//库区名称 + + private int isShowDiscount;//是否显示折扣标志,1是。0否 + + private String freePrice;//三包价格 + private String firstMaintainPrice;//首保价格 + + private int sortNo;//排序 +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdatePrice.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdatePrice.java new file mode 100644 index 0000000..52fbf62 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdatePrice.java @@ -0,0 +1,25 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/19 + **/ +@Data +public class WarehouseInventoryUpdatePrice { + + @ApiModelProperty("销售价1/2/3/4/5") + private int type; + + private List sidsList = new ArrayList<>(); + + private String price; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVoExcelVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVoExcelVo.java new file mode 100644 index 0000000..19c60b2 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVoExcelVo.java @@ -0,0 +1,54 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/19 + **/ +@Data +public class WarehouseInventoryVoExcelVo { + + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ExportEntityMap(CnName = "商品名称", EnName = "goodsSpuName") + private String goodsSpuName; + @ExportEntityMap(CnName = "商品编码(图号)", EnName = "goodsSkuCode") + private String goodsSkuCode; + @ExportEntityMap(CnName = "规格型号", EnName = "goodsSkuOwnSpec") + private String goodsSkuOwnSpec;//规格型号 + @ExportEntityMap(CnName = "销售价格1", EnName = "price1") + private String price1;//销售价格1 + @ExportEntityMap(CnName = "销售价格2", EnName = "price2") + private String price2;//销售价格2 + @ExportEntityMap(CnName = "销售价格3", EnName = "price3") + private String price3;//销售价格3 + @ExportEntityMap(CnName = "销售价格4", EnName = "price4") + private String price4;//销售价格4 + @ExportEntityMap(CnName = "销售价格5", EnName = "price5") + private String price5;//销售价格5 + @ExportEntityMap(CnName = "计量单位", EnName = "unit") + private String unit;//计量单位 + @ExportEntityMap(CnName = "库存数量", EnName = "count") + private String count;//库存数量 + @ExportEntityMap(CnName = "销售底价", EnName = "minimumPrice") + private String minimumPrice;//销售底价 + @ExportEntityMap(CnName = "三包价格", EnName = "freePrice") + private String freePrice;//三包价格 + @ExportEntityMap(CnName = "首保价格", EnName = "firstMaintainPrice") + private String firstMaintainPrice;//首保价格 + @ExportEntityMap(CnName = "仓库名称", EnName = "warehouseName") + private String warehouseName;//仓库名称 + @ExportEntityMap(CnName = "库区名称", EnName = "warehouseArea") + private String warehouseArea;//库区名称 + @ExportEntityMap(CnName = "货架名称", EnName = "warehouseRackName") + private String warehouseRackName;//warehouseRackName + @ExportEntityMap(CnName = "首次入库日期", EnName = "firstInDate") + private String firstInDate;//首次入库日期-计算库龄的依据 + @ExportEntityMap(CnName = "锁定数量", EnName = "lockCount") + private String lockCount;//锁定数量,计算字段,出库申请通过,但未实际出库 + @ExportEntityMap(CnName = "排序", EnName = "sortNo") + private String sortNo; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseUpdateCountQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseUpdateCountQuery.java new file mode 100644 index 0000000..587a017 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseUpdateCountQuery.java @@ -0,0 +1,17 @@ +package com.yxt.warehouse.biz.warehouseinventory; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author Fan + * @description + * @date 2024/3/20 9:14 + */ +@Data +public class WarehouseUpdateCountQuery { + private String sid; + private BigDecimal count; + private Integer addOrReduce; // 0增加 1减少 +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java new file mode 100644 index 0000000..2bac091 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java @@ -0,0 +1,35 @@ +package com.yxt.warehouse.biz.warehouseoutbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/26 + **/ +@Data +public class WarehouseOutBillInventoryQuery implements Query { + + //商品名称 + @ApiModelProperty("商品名称") + private String goodsSpuName; + + //商品编码 + private String goodsSkuCode; + + //仓库 + private String warehouseName; + + //库位 + private String warehouseRackCode; + + //供应商 + private String supplierName; + + private String orgPath; + + private String busrepairBillsid;//维修工单sid + private String name; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java new file mode 100644 index 0000000..c92b643 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java @@ -0,0 +1,51 @@ +package com.yxt.warehouse.biz.warehouseoutbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/26 + **/ +@Data +public class WarehouseOutBillInventoryVo { + private String sid; + private String inventorySid; + @ApiModelProperty("商品ID") + private String goodsID; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("图号") + private String goodsSkuCode; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编码") + private String warehouseRackCode; + + private String price;//销售单价 + private String outboundCount;// 已出库数量 + //入库单价 + private String money; + //库存数量 + private String count; + //供应商 + private String supplierSid; + private String supplierName; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java index 92aedcb..1e8e6d1 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java @@ -1,7 +1,11 @@ package com.yxt.warehouse.biz.warehouseoutbill; +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; /** * @description: @@ -10,4 +14,10 @@ import org.apache.ibatis.annotations.Mapper; **/ @Mapper public interface WarehouseOutBillMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + WarehouseOutBillDetailsVo details(String sid); + + IPage getInventoryList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); } + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java index 34e3592..386b522 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java @@ -12,33 +12,20 @@ import lombok.Data; @Data public class WarehouseOutBillQuery implements Query { - //单据编号 @ApiModelProperty("单据编号") private String billNo; - - //单据日期开始时间 + @ApiModelProperty("单据日期开始时间") private String createTimeStart; - - //单据日期结束时间 + @ApiModelProperty("单据日期结束时间") private String createTimeEnd; - - //外部单号 @ApiModelProperty("来源单号") private String sourceBillNo; - - //业务类型 @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") private String busTypeValue; - - //单据状态 - @ApiModelProperty("已完成/已发货") + @ApiModelProperty("单据状态") private String billState; - - //挂起状态 - @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") - private String isHandUp; - - //优先级 - @ApiModelProperty("优先级") - private String priority; + @ApiModelProperty("组织sid全路径") + private String orgPath; + @ApiModelProperty("用户sid") + private String createBySid; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java index b4e6436..9284876 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java @@ -1,11 +1,27 @@ package com.yxt.warehouse.biz.warehouseoutbill; +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.warehouseinventory.WarehouseInventory; +import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -13,15 +29,164 @@ import org.springframework.stereotype.Service; **/ @Service public class WarehouseOutBillService extends MybatisBaseService { + @Autowired + private WarehouseOutBillDetailService warehouseOutBillDetailService; + @Autowired + private WarehouseInventoryService warehouseInventoryService; + @Autowired + private WarehouseInventoryRecordService warehouseInventoryRecordService; + + + public PagerVo listPage(PagerQuery pagerQuery) { - return null; + WarehouseOutBillQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("wob.billNo", query.getBillNo()); + } + //单据日期开始时间-单据日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wob.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wob.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //来源单号 + if (StringUtils.isNotBlank(query.getSourceBillNo())) { + qw.like("wob.sourceBillNo", query.getSourceBillNo()); + } + //业务类型 + if (StringUtils.isNotBlank(query.getBusTypeValue())) { + qw.like("wob.busTypeValue", query.getBusTypeValue()); + } + //单据类型 + if (StringUtils.isNotBlank(query.getBillState())) { + qw.like("wob.billState", query.getBillState()); + } + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; } - public ResultBean saveOrUpdateOutBill(WarehouseOutBillDto dto) { - return null; + public ResultBean saveOrUpdateOutBill(WarehouseOutBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + WarehouseOutBill WarehouseOutBill = new WarehouseOutBill(); + BeanUtil.copyProperties(dto, WarehouseOutBill, "sid"); + sid = WarehouseOutBill.getSid(); + List detailsList = dto.getDetailsList(); + detailsList.removeAll(Collections.singleton(null)); + if (detailsList.size() > 0) { + warehouseOutBillDetailService.saveOrUpdateBillDetails(sid, detailsList); + } + baseMapper.insert(WarehouseOutBill); + } else { + WarehouseOutBill WarehouseOutBill = fetchBySid(sid); + if (WarehouseOutBill == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(dto, WarehouseOutBill, "sid"); + List detailsList = dto.getDetailsList(); + detailsList.removeAll(Collections.singleton(null)); + if (detailsList.size() > 0) { + warehouseOutBillDetailService.saveOrUpdateBillDetails(sid, detailsList); + } + baseMapper.updateById(WarehouseOutBill); + } + return rb.success().setData(sid); } public ResultBean details(String sid) { - return null; + ResultBean rb = ResultBean.fireFail(); + WarehouseOutBillDetailsVo WarehouseOutBillDetailsVo = baseMapper.details(sid); + if (WarehouseOutBillDetailsVo == null) { + return rb.setMsg("该单据不存在"); + } + //ToDo:需补充仓库等信息 + List detailsList = warehouseOutBillDetailService.selectDetailsList(sid); + detailsList.removeAll(Collections.singleton(null)); + if (!detailsList.isEmpty()) { + WarehouseOutBillDetailsVo.setDetailsList(detailsList); + } + return rb.success().setData(WarehouseOutBillDetailsVo); + } + + public PagerVo getInventoryList(PagerQuery pagerQuery) { + WarehouseOutBillInventoryQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getGoodsSpuName())) { + qw.like("wi.goodsSpuName", query.getGoodsSpuName()); + } + if (StringUtils.isNotBlank(query.getName())) { + qw.like("wi.goodsSpuName", query.getName()); + } + //商品编码 + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("wi.goodsSkuCode", query.getGoodsSkuCode()); + } + //仓库 + if (StringUtils.isNotBlank(query.getWarehouseName())) { + qw.like("wi.warehouseName", query.getWarehouseName()); + } + //库位 + if (StringUtils.isNotBlank(query.getWarehouseRackCode())) { + qw.like("wi.warehouseRackCode", query.getWarehouseRackCode()); + } + //ToDo:供应商 + /* if (StringUtils.isNotBlank(query.getSupplierName())) { + qw.like("supplierName", query.getSupplierName()); + }*/ + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.getInventoryList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean confirm(WarehouseOutBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = saveOrUpdateOutBill(dto).getData(); + List detailsList = dto.getDetailsList(); + detailsList.removeAll(Collections.singleton(null)); + if (!detailsList.isEmpty()) { + for (int i = 0; i < detailsList.size(); i++) { + WarehouseOutBillDetailDto WarehouseOutBillDetailDto = detailsList.get(i); + WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(WarehouseOutBillDetailDto.getInventorySid()); + //减去出库的数量 + WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(new BigDecimal(WarehouseOutBillDetailDto.getOutCount()))); + warehouseInventoryService.updateById(WarehouseInventory); + } + saveWarehouseInventory(dto.getSid()); + } + return rb.success(); + } + + public void saveWarehouseInventory(String sid) { + WarehouseOutBill WarehouseOutBill = fetchBySid(sid); + List detailList = warehouseOutBillDetailService.selectDetailsList(sid); + detailList.removeAll(Collections.singleton(null)); + if (!detailList.isEmpty()) { + for (int i = 0; i < detailList.size(); i++) { + WarehouseOutBillDetailDto WarehouseOutBillDetailDto = detailList.get(i); + WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto(); + WarehouseInventoryRecordDto.setInventorySid(WarehouseOutBillDetailDto.getInventorySid()); + WarehouseInventoryRecordDto.setGoodsID(WarehouseInventoryRecordDto.getGoodsID()); + WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid()); + WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo()); + WarehouseInventoryRecordDto.setBillType("0"); + WarehouseInventoryRecordDto.setBatchNumber(WarehouseInventoryRecordDto.getBatchNumber()); + WarehouseInventoryRecordDto.setGoodSpuSid(WarehouseInventoryRecordDto.getGoodSpuSid()); + WarehouseInventoryRecordDto.setGoodsSpuName(WarehouseInventoryRecordDto.getGoodsSpuName()); + WarehouseInventoryRecordDto.setGoodsSkuSid(WarehouseInventoryRecordDto.getGoodsSkuSid()); + WarehouseInventoryRecordDto.setGoodsSkuCode(WarehouseInventoryRecordDto.getGoodsSkuCode()); + WarehouseInventoryRecordDto.setUnit(WarehouseInventoryRecordDto.getUnit()); +// WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(WarehouseInventoryRecordDto.getCount().toString()) ? new BigDecimal(WarehouseInventoryRecordDto.getCount().toString()) : BigDecimal.ZERO); + WarehouseInventoryRecordDto.setWarehouseSid(WarehouseInventoryRecordDto.getWarehouseSid()); + WarehouseInventoryRecordDto.setWarehouseName(WarehouseInventoryRecordDto.getWarehouseName()); + WarehouseInventoryRecordDto.setWarehouseRackSid(WarehouseInventoryRecordDto.getWarehouseRackSid()); + WarehouseInventoryRecordDto.setWarehouseRackCode(WarehouseInventoryRecordDto.getWarehouseRackCode()); + warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto); + } + } } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java index dfbc95a..8c3c26c 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java @@ -13,36 +13,18 @@ public class WarehouseOutBillVo { private String sid; - //单据编号 @ApiModelProperty("单据编号") private String billNo; - - //单据日期 + @ApiModelProperty("单据日期") private String createTime; - - //制单人 @ApiModelProperty("制单人") private String createByName; - - //外部单号 @ApiModelProperty("来源单号") private String sourceBillNo; - - //业务类型 @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") private String busTypeValue; - - //单据状态 - @ApiModelProperty("已完成/已发货") + @ApiModelProperty("单据状态:已完成/已发货") private String billState; - //优先级 - @ApiModelProperty("优先级") - private String priority; - - //挂起状态 - @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") - private String isHandUp; - } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java index 402ae54..7769240 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java @@ -11,6 +11,9 @@ import lombok.Data; @Data public class WarehouseOutBillDetailDto { private String sid; + @ApiModelProperty("库存商品sid") + private String inventorySid; + @ApiModelProperty("商品基础信息Sid") private String goodSpuSid; @ApiModelProperty("商品名称") @@ -25,8 +28,22 @@ public class WarehouseOutBillDetailDto { private String goodsSkuOwnSpec; @ApiModelProperty("计量单位") private String unit; + + @ApiModelProperty("出库数量") private String outCount; + @ApiModelProperty("仓库sid") + private String warehouseSid; + //仓库名称 + private String warehouseName; + //库位sid + private String warehouseRackSid; + //库位编码 + private String warehouseRackCode; + //销售单价 + private String money; + //金额 + private String moneyAll; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java index c4e016e..79c75fd 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java @@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @description: * @author: dimengzhe @@ -21,5 +23,6 @@ public interface WarehouseOutBillDetailMapper extends BaseMapper selectDetailsList(String sid); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml index 765aead..48f092d 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml @@ -16,4 +16,15 @@ from warehouse_out_bill_detail a where a.sid =#{sid} + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java index 8ee822d..193bc00 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java @@ -50,19 +50,19 @@ public class WarehouseOutBillDetailService extends MybatisBaseService detailsList) { + //删除 + baseMapper.delByMainSid(sid); + for (int i = 0; i < detailsList.size(); i++) { + WarehouseOutBillDetailDto WarehouseOutBillDetailDto = detailsList.get(i); + WarehouseOutBillDetail WarehouseOutBillDetail = new WarehouseOutBillDetail(); + BeanUtil.copyProperties(WarehouseOutBillDetailDto, WarehouseOutBillDetail, "sid"); + WarehouseOutBillDetail.setBillSid(sid); + baseMapper.insert(WarehouseOutBillDetail); + } + } + public List selectDetailsList(String sid) { + return baseMapper.selectDetailsList(sid); + } } 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 21eb99c..fc9baa9 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java @@ -13,6 +13,8 @@ import lombok.Data; @Data public class WarehouseRackQuery implements Query { private String name;//名字 + private String orgLevelKey;// + private String code;//编码 private String warehouseSid;//仓库 private String areaTypeSid;//库区类型 @@ -22,6 +24,4 @@ public class WarehouseRackQuery implements Query { private String orgPath; @ApiModelProperty("用户sid") private String userSid; - private IPage page; - private QueryWrapper qw; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java index 5a4466a..a3053b5 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java @@ -26,9 +26,56 @@ import java.util.stream.Collectors; public class WarehouseRackService extends MybatisBaseService { - public ResultBean> listPage(WarehouseRackQuery query) { + public ResultBean> listPage( PagerQuery pq) { ResultBean rb = ResultBean.fireFail(); - IPage pagging = baseMapper.listPage(query.getPage(), query.getQw()); + WarehouseRackQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = query.getOrgLevelKey(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".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("rackName", query.getName()); + } + if (StringUtils.isNotBlank(query.getCode())) { + qw.like("rackCode", query.getCode()); + } + if (StringUtils.isNotBlank(query.getAreaTypeSid())) { + qw.eq("b.sid", query.getAreaTypeSid()); + } + if (StringUtils.isNotBlank(query.getWarehouseSid())) { + qw.eq("c.sid", query.getWarehouseSid()); + } + qw.ne("a.isDelete", "1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page,qw); return rb.success().setData(pagging); } public ResultBean getAllType() { diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java index a236428..47563a7 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java @@ -138,7 +138,7 @@ public class WarehouseShelfBillService extends MybatisBaseService