Browse Source

6/19

master
wangpengfei 12 months ago
parent
commit
ccaeef7bba
  1. 2
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseAnsBillRest.java
  2. 4
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java
  3. 4
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java
  4. 4
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java
  5. 2
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryCheckbillRest.java
  6. 156
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java
  7. 13
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java
  8. 4
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java
  9. 2
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseReceiptBillRest.java
  10. 2
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseShelfBillRest.java
  11. 3
      src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaQuery.java
  12. 51
      src/main/java/com/yxt/warehouse/biz/warehousearea/WarehouseAreaService.java
  13. 4
      src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeQuery.java
  14. 40
      src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java
  15. 5
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoQuery.java
  16. 47
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java
  17. 19
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseGoodsInventoryVo.java
  18. 6
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java
  19. 37
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeExportVo.java
  20. 26
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeQuery.java
  21. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAgeVo.java
  22. 39
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectList.java
  23. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryAlloSelectQuery.java
  24. 21
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListQuery.java
  25. 53
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryBillListVo.java
  26. 48
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java
  27. 35
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectList.java
  28. 26
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryHandleSelectQuery.java
  29. 49
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInitVo.java
  30. 37
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectList.java
  31. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryInvenSelectQuery.java
  32. 36
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java
  33. 288
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml
  34. 29
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageQuery.java
  35. 44
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryPackageVo.java
  36. 21
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectList.java
  37. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryReturnSelectQuery.java
  38. 16
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesQuery.java
  39. 29
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventorySalesVo.java
  40. 407
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java
  41. 29
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdateDto.java
  42. 25
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryUpdatePrice.java
  43. 54
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVoExcelVo.java
  44. 17
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseUpdateCountQuery.java
  45. 35
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java
  46. 51
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java
  47. 10
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java
  48. 27
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java
  49. 173
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java
  50. 22
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java
  51. 17
      src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java
  52. 3
      src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java
  53. 11
      src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml
  54. 28
      src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java
  55. 4
      src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackQuery.java
  56. 51
      src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java
  57. 2
      src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java

2
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

4
src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaRest.java

@ -27,8 +27,8 @@ public class WarehouseAreaRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<IPage<WarehouseAreaVo>> listPage(@RequestBody WarehouseAreaQuery query) {
return wmsWarehouseAreaService.listPage(query.getPage(),query.getQw());
public ResultBean<IPage<WarehouseAreaVo>> listPage(@RequestBody PagerQuery<WarehouseAreaQuery> pq) {
return wmsWarehouseAreaService.listPage(pq);
}
@ApiOperation("查询所有的库区")
@GetMapping("/listAll")

4
src/main/java/com/yxt/warehouse/apiadmin/WarehouseAreaTypeRest.java

@ -27,8 +27,8 @@ public class WarehouseAreaTypeRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<IPage<WarehouseAreaTypeVo>> listPage(@RequestBody WarehouseAreaTypeQuery query) {
return wmsWarehouseAreaTypeService.listPage(query.getPage(),query.getQw());
public ResultBean<IPage<WarehouseAreaTypeVo>> listPage(@RequestBody PagerQuery<WarehouseAreaTypeQuery> pq) {
return wmsWarehouseAreaTypeService.listPage(pq);
}
@ApiOperation("查询所有的")
@GetMapping("/listAll/{useOrgSid}")

4
src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java

@ -29,8 +29,8 @@ public class WarehouseInfoRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<IPage<WarehouseInfoVo>> listPage(@RequestBody WarehouseInfoQuery query) {
return wmsWarehouseService.listPage(query.getPage(), query.getQw());
public ResultBean<IPage<WarehouseInfoVo>> listPage(@RequestBody PagerQuery<WarehouseInfoQuery> pq) {
return wmsWarehouseService.listPage(pq);
}
@ApiOperation("查询所有的仓库")
@GetMapping("/listAll/{useOrgSid}")

2
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

156
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<PagerVo<WarehouseInventoryVo>> listPage(@RequestBody PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean<PagerVo<WarehouseInventoryVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseInventoryVo> pv = wmsInventoryService.listPage(pq);
PagerVo<WarehouseInventoryVo> 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<String> saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) {
return WarehouseInventoryService.saveWarehouseInventory(dto);
}*/
/*@ApiOperation("初始化")
@PostMapping("/init")
ResultBean<WarehouseInventoryInitVo> 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<PagerVo<WarehouseInventoryBillListVo>> getBillList(@RequestBody PagerQuery<WarehouseInventoryBillListQuery> pagerQuery) {
ResultBean<PagerVo<WarehouseInventoryBillListVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseInventoryBillListVo> pv = WarehouseInventoryService.getBillList(pagerQuery);
return rb.success().setData(pv);
}*/
@PostMapping("/exportExcel")
@ApiOperation(value = "导出")
public void exportExcel(@RequestBody WarehouseInventoryQuery query) {
//得到所有要导出的数据
List<WarehouseInventoryVoExcelVo> 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<PagerVo<WarehouseInventorySalesVo>> listPageSales(@RequestBody PagerQuery<WarehouseInventorySalesQuery> pq) {
ResultBean<PagerVo<WarehouseInventorySalesVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseInventorySalesVo> pv = WarehouseInventoryService.listPageSales(pq);
return rb.success().setData(pv);
}
@ApiOperation("查询部门下所有的商品信息")
@PostMapping("/getPackageGoodsVo")
public ResultBean<PagerVo<WarehouseInventoryPackageVo>> getPackageGoodsVo(@RequestBody PagerQuery<WarehouseInventoryPackageQuery> pq) {
return WarehouseInventoryService.getPackageGoodsVo(pq);
}
@ApiOperation("库龄查询")
@PostMapping("/inventoryAgeList")
public ResultBean<PagerVo<WarehouseInventoryAgeVo>> inventoryAgeList(@RequestBody PagerQuery<WarehouseInventoryAgeQuery> pq) {
ResultBean<PagerVo<WarehouseInventoryAgeVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseInventoryAgeVo> pv = WarehouseInventoryService.inventoryAgeList(pq);
return rb.success().setData(pv);
}
@PostMapping("/ageExportExcel")
@ApiOperation(value = "库龄查询导出")
public void ageExportExcel(@RequestBody WarehouseInventoryAgeQuery query) {
//得到所有要导出的数据
List<WarehouseInventoryAgeExportVo> 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<WarehouseGoodsInventoryVo> selectInvenBySkuSid(@RequestParam("skuSid") String skuSid) {
ResultBean rb = ResultBean.fireFail();
WarehouseGoodsInventoryVo WarehouseGoodsInventoryVo = WarehouseInventoryService.selectInvenBySkuSid(skuSid);
return rb.success().setData(WarehouseGoodsInventoryVo);
}
@ApiOperation("盘库商品分页列表")
@PostMapping("/invenGoodsListPage")
public ResultBean<PagerVo<WarehouseInventoryInvenSelectList>> invenGoodsListPage(@RequestBody PagerQuery<WarehouseInventoryInvenSelectQuery> pq) {
return WarehouseInventoryService.invenGoodsListPage(pq);
}
@ApiOperation("调拨商品分页列表")
@PostMapping("/alloGoodsListPage")
public ResultBean<PagerVo<WarehouseInventoryAlloSelectList>> alloGoodsListPage(@RequestBody PagerQuery<WarehouseInventoryAlloSelectQuery> pq) {
return WarehouseInventoryService.alloGoodsListPage(pq);
}
@ApiOperation("旧件返厂商品分页列表")
@PostMapping("/returnGoodsListPage")
public ResultBean<PagerVo<WarehouseInventoryReturnSelectList>> returnGoodsListPage(@RequestBody PagerQuery<WarehouseInventoryReturnSelectQuery> pq) {
return WarehouseInventoryService.returnGoodsListPage(pq);
}
@ApiOperation("旧件处理商品分页列表")
@PostMapping("/handleGoodsListPage")
public ResultBean<PagerVo<WarehouseInventoryHandleSelectList>> handleGoodsListPage(@RequestBody PagerQuery<WarehouseInventoryHandleSelectQuery> pq) {
return WarehouseInventoryService.handleGoodsListPage(pq);
}
@ApiOperation("根据Sid获取库存实体")
@PostMapping("/fetchEntityBySid")
ResultBean<WarehouseInventory> fetchEntityBySid(@RequestParam("sid") String sid) {
return WarehouseInventoryService.fetchEntityBySid(sid);
}
}

13
src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java

@ -41,4 +41,17 @@ public class WarehouseOutBillRest {
ResultBean<WarehouseOutBillDetailsVo> details(@RequestParam("sid") String sid) {
return wmsOutBillService.details(sid);
}
@ApiOperation("选择商品分页列表")
@PostMapping("/getInventoryList")
ResultBean<PagerVo<WarehouseOutBillInventoryVo>> getInventoryList(@RequestBody PagerQuery<WarehouseOutBillInventoryQuery> pagerQuery) {
ResultBean<PagerVo<WarehouseOutBillInventoryVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseOutBillInventoryVo> pv = wmsOutBillService.getInventoryList(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("确认")
@PostMapping("/confirm")
ResultBean confirm(@RequestBody WarehouseOutBillDto dto) {
return wmsOutBillService.confirm(dto);
}
}

4
src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java

@ -25,8 +25,8 @@ public class WarehouseRackRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<IPage<WarehouseRackVo>> listPage(@RequestBody WarehouseRackQuery query) {
return wmsWarehouseRackService.listPage(query);
public ResultBean<IPage<WarehouseRackVo>> listPage(@RequestBody PagerQuery<WarehouseRackQuery> pq) {
return wmsWarehouseRackService.listPage(pq);
}
@ApiOperation("查询所有的库区")
@GetMapping("/getAllType")

2
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

2
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

3
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<WarehouseArea> qw;
private IPage<WarehouseArea> page;
}

51
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<WarehouseAreaMapper, WarehouseArea> {
public ResultBean<IPage<WarehouseAreaVo>> listPage( IPage<WarehouseArea> page , QueryWrapper<WarehouseArea> qw) {
public ResultBean<IPage<WarehouseAreaVo>> listPage(PagerQuery<WarehouseAreaQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseAreaQuery query = pq.getParams();
QueryWrapper<WarehouseArea> 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<WarehouseAreaVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<WarehouseAreaVo> 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<WarehouseArea> page = PagerUtil.queryToPage(pq);
IPage<WarehouseAreaVo> pagging = baseMapper.listPage(page, qw);
return rb.success().setData(pagging);
}

4
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<WarehouseAreaType> page;
private QueryWrapper<WarehouseAreaType> qw;
}

40
src/main/java/com/yxt/warehouse/biz/warehouseareatype/WarehouseAreaTypeService.java

@ -26,8 +26,46 @@ import java.util.stream.Collectors;
public class WarehouseAreaTypeService extends MybatisBaseService<WarehouseAreaTypeMapper, WarehouseAreaType> {
public ResultBean<IPage<WarehouseAreaTypeVo>> listPage(IPage<WarehouseAreaType> page, QueryWrapper<WarehouseAreaType> qw) {
public ResultBean<IPage<WarehouseAreaTypeVo>> listPage(PagerQuery<WarehouseAreaTypeQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseAreaTypeQuery query = pq.getParams();
QueryWrapper<WarehouseAreaType> 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<WarehouseAreaTypeVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<WarehouseAreaTypeVo> 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<WarehouseAreaType> page = PagerUtil.queryToPage(pq);
IPage<WarehouseAreaTypeVo> pagging = baseMapper.listPage(page, qw);
return rb.success().setData(pagging);
}

5
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<WarehouseInfo> page;
private QueryWrapper<WarehouseInfo> qw;
private String orgLevelKey;//
}

47
src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java

@ -36,8 +36,53 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
@Autowired
WarehouseExtendService wmsWarehouseExtendService;
public ResultBean<IPage<WarehouseInfoVo>> listPage(IPage<WarehouseInfo> page, QueryWrapper<WarehouseInfo> qw) {
public ResultBean<IPage<WarehouseInfoVo>> listPage(PagerQuery<WarehouseInfoQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseInfoQuery query = pq.getParams();
QueryWrapper<WarehouseInfo> 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<WarehouseInfoVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<WarehouseInfoVo> 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<WarehouseInfo> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInfoVo> pagging = baseMapper.listPage(page, qw);
return rb.success().setData(pagging);
}

19
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;//库存数量
}

6
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("仓库名称")

37
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;
}

26
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;
}

30
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;
}

39
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;
}

30
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;
}

21
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;
}

53
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;
}

48
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;
}

35
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;
}

26
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;
}

49
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;
}

37
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;
}

30
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;
}

36
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<WarehouseInventory>
IPage<WarehouseInventoryVo> listPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
WarehouseInventoryVo initialization(@Param("sid") String sid);
int updatePrice1(@Param("price") String price, @Param("list") List<String> stringList);
int updatePrice2(@Param("price") String price, @Param("list") List<String> stringList);
int updatePrice3(@Param("price") String price, @Param("list") List<String> stringList);
int updatePrice4(@Param("price") String price, @Param("list") List<String> stringList);
int updatePrice5(@Param("price") String price, @Param("list") List<String> stringList);
IPage<WarehouseInventoryBillListVo> getBillList(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw, @Param("sid") String sid);
List<WarehouseInventoryVoExcelVo> listExcel(@Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryVoExcelVo> qw);
IPage<WarehouseInventorySalesVo> listPageSales(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
IPage<WarehouseInventoryPackageVo> getPackageGoodsVo(IPage<WarehouseInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
IPage<WarehouseInventoryAgeVo> inventoryAgeList(IPage<WarehouseInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
List<WarehouseInventoryAgeExportVo> ageExportExcel(@Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
WarehouseGoodsInventoryVo selectInvenBySkuSid(String skuSid);
IPage<WarehouseInventoryInvenSelectList> invenGoodsListPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
IPage<WarehouseInventoryAlloSelectList> alloGoodsListPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
IPage<WarehouseInventoryReturnSelectList> returnGoodsListPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
IPage<WarehouseInventoryHandleSelectList> handleGoodsListPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
}

288
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml

@ -6,20 +6,286 @@
<select id="listPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
select a.goodsID,
a.sid,
a.goodsSpuName,
a.goodsSkuCode,
a.goodsSkuOwnSpec,
a.unit,
a.warehouseName,
a.warehouseRackCode,
a.count,
a.allocateCount,
a.batchNumber,
DATE_FORMAT(a.firstInDate, '%Y-%m-%d') as firstInDate
a.sid,
a.goodsSpuName,
a.goodsSkuCode,
a.goodsSkuOwnSpec,
a.unit,
a.warehouseName,
a.warehouseRackCode,
a.count,
a.allocateCount,
a.batchNumber,
DATE_FORMAT(a.firstInDate, '%Y-%m-%d') as firstInDate
from warehouse_inventory a
<where>
${ew.sqlSegment}
</where>
</select>
<select id="initialization" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
select a.*,
b.goodsName as goodsName
from warehouse_inventory a
left join Warehouse_goods b on b.sid = a.goodsSid
where a.sid = #{sid}
</select>
<update id="updatePrice1">
update warehouse_inventory
set price1 = #{price} where sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<update id="updatePrice2">
update warehouse_inventory
set price2 = #{price} where sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<update id="updatePrice3">
update warehouse_inventory
set price3 = #{price} where sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<update id="updatePrice4">
update warehouse_inventory
set price4 = #{price} where sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<update id="updatePrice5">
update warehouse_inventory
set price5 = #{price} where sid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</update>
<select id="getBillList" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryBillListVo">
select *
from (select wd.goodsSpuName,
wd.goodsSkuTitle,
wd.goodsSkuCode,
wd.goodsSkuOwnSpec,
wd.unit,
wd.warehouseName,
wd.warehouseArea,
wd.warehouseRackName,
wb.busTypeValue,
wd.cost,
wd.price1,
wd.price2,
wd.subject,
wb.createByName,
DATE_FORMAT(wb.createTime, '%Y-%m-%d') as createTime,
wb.billNo,
wb.sourceBillSid sourceBillNo,
wb.billObjName,
wb.busTypeKey
from warehouse_inventory a
left join warehouse_inventory_bill wb on wb.sid = a.billSid
left join warehouse_inventory_bill_detail wd on wd.sid = a.billDetailSid
where a.sid = #{sid}
union all
select wd.goodsSpuName,
wd.goodsSkuTitle,
wd.goodsSkuCode,
wd.goodsSkuOwnSpec,
wd.unit,
wd.warehouseName,
wd.warehouseArea,
wd.warehouseRackName,
wb.busTypeValue,
wd.cost,
wd.price1,
wd.price2,
wd.subject,
wb.createByName,
DATE_FORMAT(wb.createTime, '%Y-%m-%d') as createTime,
wb.billNo,
wb.sourceBillSid sourceBillNo,
wb.billObjName,
wb.busTypeKey
from warehouse_inventory_bill_detail wd
left join warehouse_inventory_bill wb on wb.sid = wd.billSid
where wd.inventorySid = #{sid}) b
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listExcel" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVoExcelVo">
select a.*,
(@rank := @rank + 1) rankNo
from (SELECT @rank := 0) t,
warehouse_inventory a
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listPageSales" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventorySalesVo">
SELECT i.sid AS inventorySid,
i.goodsID,
i.goodSpuSid,
i.goodsSpuName,
i.goodsSkuSid,
i.goodsSkuTitle,
i.goodsSkuCode,
i.unit,
i.warehouseSid,
i.warehouseName AS warehouse,
i.count as currentCount,
i.minimumPrice as price
FROM warehouse_inventory AS i
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getPackageGoodsVo" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryPackageVo">
SELECT v.goodSpuSid goodsSid,
v.goodsSpuName goodsName,
v.goodsSkuCode goodsCode,
v.unit,
v.goodsSkuOwnSpec specification,
v.count,
v.minimumPrice price,
v.warehouseName warehouse,
v.warehouseSid,
v.warehouseArea,
v.remarks,
v.freePrice
FROM warehouse_inventory AS v
<where>
${ew.sqlSegment}
</where>
</select>
<select id="inventoryAgeList" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryAgeVo">
SELECT sid,
goodsSpuName,
goodsSkuTitle,
goodsSkuCode,
goodsSkuOwnSpec,
unit,
warehouseName,
warehouseRackCode,
count,
date_format (w.firstInDate,'%Y-%m-%d') as firstInDate,
useOrgSid,
DATEDIFF(NOW(), firstInDate) age
FROM warehouse_inventory as w
<where>
${ew.sqlSegment}
</where>
</select>
<select id="ageExportExcel" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryAgeExportVo">
SELECT
( @rank := @rank + 1 ) rankNo,
w.sid,
w.goodsSpuName,
w.goodsSkuTitle,
w.goodsSkuCode,
w.goodsSkuOwnSpec,
w.unit,
w.warehouseName,
w.warehouseRackCode,
w.count,
date_format (w.firstInDate,'%Y-%m-%d') as firstInDate,
DATEDIFF(NOW(), w.firstInDate) as age
FROM warehouse_inventory as w,
( SELECT @rank := 0 ) t
<where>${ew.sqlSegment}</where>
</select>
<select id="selectInvenBySkuSid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseGoodsInventoryVo">
SELECT goodsSkuOwnSpec,
warehouseSid,
warehouseName,
warehouseRackName,
COUNT
FROM warehouse_inventory
WHERE goodsSkuSid = #{skuSid}
</select>
<select id="invenGoodsListPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryInvenSelectList">
SELECT wi.sid,
wi.goodsSpuName,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.unit,
wi.warehouseSid,
wi.warehouseName,
wi.warehouseRackSid,
wi.warehouseRackCode,
wwa.areaName,
wi.count
FROM warehouse_inventory wi
LEFT JOIN warehouse_warehouse_area wwa
ON wi.`warehouseRackSid` = wwa.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="alloGoodsListPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryAlloSelectList">
SELECT wi.sid,
wi.goodsSpuName,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.unit,
wi.warehouseSid,
wi.warehouseName,
wi.warehouseRackSid,
wi.warehouseRackCode,
wwa.areaName,
wi.count
FROM warehouse_inventory wi
LEFT JOIN Warehouse_warehouse_area wwa
ON wi.`warehouseRackSid` = wwa.`sid`
<where>
${ew.sqlSegment}
</where>
</select>
<select id="returnGoodsListPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryReturnSelectList">
SELECT
wi.goodsSpuName,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.unit
FROM
warehouse_inventory wi
<where>
${ew.sqlSegment}
</where>
</select>
<select id="handleGoodsListPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryHandleSelectList">
SELECT
wi.goodsID,
wi.goodsSpuName,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.unit,
wi.warehouseSid,
wi.warehouseName,
wi.warehouseRackSid,
wi.warehouseRackCode,
wi.count,
wb.supplierName
FROM warehouse_inventory wi
LEFT JOIN warehouse_inventory_batch wb
ON wi.sid = wb.inventorySid
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

29
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;
}

44
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;
}

21
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;
}

30
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;
}

16
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;
}

29
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;//销售价
}

407
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<WarehouseInven
return p;
}
public ResultBean<String> saveWmsInventory(WarehouseInventorySaveDto dto) {
/**
* 入库
*
* @param dto
* @return
*/
public ResultBean<WarehouseInventory> warehousing(WarehouseInventoryDto dto) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper<WarehouseInventory>().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<WarehouseInventory> outWarehousing(WarehouseInventoryDto dto) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper<WarehouseInventory>().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<String> 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<WarehouseInventoryVo> 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<String> sidss = Arrays.asList(sids);
delBySids(sids);
return rb.success().setMsg("删除成功");
}
/* public ResultBean<WarehouseInventoryInitVo> init(String sid) {
ResultBean<WarehouseInventoryInitVo> 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<String> 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<WarehouseInventoryBillListVo> getBillList(PagerQuery<WarehouseInventoryBillListQuery> pagerQuery) {
WarehouseInventoryBillListQuery query = pagerQuery.getParams();
QueryWrapper<WarehouseInventory> 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<WarehouseInventory> page = PagerUtil.queryToPage(pagerQuery);
IPage<WarehouseInventoryBillListVo> pagging = baseMapper.getBillList(page, qw, query.getSid());
PagerVo<WarehouseInventoryBillListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
*/
public List<WarehouseInventoryVoExcelVo> listExcel(WarehouseInventoryQuery query) {
QueryWrapper<WarehouseInventoryVoExcelVo> 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<WarehouseInventoryVoExcelVo> 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<WarehouseInventorySalesVo> listPageSales(PagerQuery<WarehouseInventorySalesQuery> pq) {
WarehouseInventorySalesQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> 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<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventorySalesVo> pagging = baseMapper.listPageSales(page, qw);
PagerVo<WarehouseInventorySalesVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<PagerVo<WarehouseInventoryPackageVo>> getPackageGoodsVo(PagerQuery<WarehouseInventoryPackageQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventoryPackageQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> 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<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryPackageVo> pagging = baseMapper.getPackageGoodsVo(page, qw);
List<WarehouseInventoryPackageVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
PagerVo<WarehouseInventoryPackageVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public PagerVo<WarehouseInventoryAgeVo> inventoryAgeList(PagerQuery<WarehouseInventoryAgeQuery> pq) {
WarehouseInventoryAgeQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> 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<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryAgeVo> pagging = baseMapper.inventoryAgeList(page, qw);
PagerVo<WarehouseInventoryAgeVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<WarehouseInventoryAgeExportVo> ageExportExcel(WarehouseInventoryAgeQuery query) {
QueryWrapper<WarehouseInventory> 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<WarehouseInventoryAgeExportVo> list = baseMapper.ageExportExcel(qw);
return list;
}
public WarehouseGoodsInventoryVo selectInvenBySkuSid(String skuSid) {
return baseMapper.selectInvenBySkuSid(skuSid);
}
public ResultBean<PagerVo<WarehouseInventoryInvenSelectList>> invenGoodsListPage(PagerQuery<WarehouseInventoryInvenSelectQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventoryInvenSelectQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryInvenSelectList> pagging = baseMapper.invenGoodsListPage(page, qw);
PagerVo<WarehouseInventoryInvenSelectList> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<PagerVo<WarehouseInventoryAlloSelectList>> alloGoodsListPage(PagerQuery<WarehouseInventoryAlloSelectQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventoryAlloSelectQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryAlloSelectList> pagging = baseMapper.alloGoodsListPage(page, qw);
PagerVo<WarehouseInventoryAlloSelectList> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<WarehouseInventory> fetchEntityBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventory inventory = fetchBySid(sid);
return rb.success().setData(inventory);
}
public ResultBean<String> 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<PagerVo<WarehouseInventoryReturnSelectList>> returnGoodsListPage(PagerQuery<WarehouseInventoryReturnSelectQuery> pq) {
ResultBean rb = ResultBean.fireFail();
List<String> sidss = Arrays.asList(sids);
delBySids(sids);
return rb.success().setMsg("删除成功");
WarehouseInventoryReturnSelectQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryReturnSelectList> pagging = baseMapper.returnGoodsListPage(page, qw);
PagerVo<WarehouseInventoryReturnSelectList> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<PagerVo<WarehouseInventoryHandleSelectList>> handleGoodsListPage(PagerQuery<WarehouseInventoryHandleSelectQuery> pq) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventoryHandleSelectQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> 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<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryHandleSelectList> pagging = baseMapper.handleGoodsListPage(page, qw);
PagerVo<WarehouseInventoryHandleSelectList> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
}

29
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;//排序
}

25
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<String> sidsList = new ArrayList<>();
private String price;
}

54
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;
}

17
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减少
}

35
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;
}

51
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;
}

10
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<WarehouseOutBill> {
IPage<WarehouseOutBillVo> listPage(IPage<WarehouseOutBill> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseOutBill> qw);
WarehouseOutBillDetailsVo details(String sid);
IPage<WarehouseOutBillInventoryVo> getInventoryList(IPage<WarehouseOutBill> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseOutBill> qw);
}

27
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;
}

173
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<WarehouseOutBillMapper, WarehouseOutBill> {
@Autowired
private WarehouseOutBillDetailService warehouseOutBillDetailService;
@Autowired
private WarehouseInventoryService warehouseInventoryService;
@Autowired
private WarehouseInventoryRecordService warehouseInventoryRecordService;
public PagerVo<WarehouseOutBillVo> listPage(PagerQuery<WarehouseOutBillQuery> pagerQuery) {
return null;
WarehouseOutBillQuery query = pagerQuery.getParams();
QueryWrapper<WarehouseOutBill> 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<WarehouseOutBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<WarehouseOutBillVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WarehouseOutBillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateOutBill(WarehouseOutBillDto dto) {
return null;
public ResultBean<String> saveOrUpdateOutBill(WarehouseOutBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
WarehouseOutBill WarehouseOutBill = new WarehouseOutBill();
BeanUtil.copyProperties(dto, WarehouseOutBill, "sid");
sid = WarehouseOutBill.getSid();
List<WarehouseOutBillDetailDto> 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<WarehouseOutBillDetailDto> 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<WarehouseOutBillDetailsVo> details(String sid) {
return null;
ResultBean<WarehouseOutBillDetailsVo> rb = ResultBean.fireFail();
WarehouseOutBillDetailsVo WarehouseOutBillDetailsVo = baseMapper.details(sid);
if (WarehouseOutBillDetailsVo == null) {
return rb.setMsg("该单据不存在");
}
//ToDo:需补充仓库等信息
List<WarehouseOutBillDetailDto> detailsList = warehouseOutBillDetailService.selectDetailsList(sid);
detailsList.removeAll(Collections.singleton(null));
if (!detailsList.isEmpty()) {
WarehouseOutBillDetailsVo.setDetailsList(detailsList);
}
return rb.success().setData(WarehouseOutBillDetailsVo);
}
public PagerVo<WarehouseOutBillInventoryVo> getInventoryList(PagerQuery<WarehouseOutBillInventoryQuery> pagerQuery) {
WarehouseOutBillInventoryQuery query = pagerQuery.getParams();
QueryWrapper<WarehouseOutBill> 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<WarehouseOutBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<WarehouseOutBillInventoryVo> pagging = baseMapper.getInventoryList(page, qw);
PagerVo<WarehouseOutBillInventoryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean confirm(WarehouseOutBillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = saveOrUpdateOutBill(dto).getData();
List<WarehouseOutBillDetailDto> 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<WarehouseOutBillDetailDto> 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);
}
}
}
}

22
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;
}

17
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;
}

3
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<WarehouseOutBil
@Delete("delete from warehouse_out_bill_detail where sid = #{sid}")
void delByMainSid(String billSid);
List<WarehouseOutBillDetailDto> selectDetailsList(String sid);
}

11
src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml

@ -16,4 +16,15 @@
from warehouse_out_bill_detail a
where a.sid =#{sid}
</select>
<select id="selectDetailsList" resultType="com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto">
select wbd.goodSpuSid,
wbd.goodsSpuName,
wbd.goodsSkuSid,
wbd.goodsSkuTitle,
wbd.goodsSkuCode,
wbd.goodsSkuOwnSpec,
wbd.unit
from warehouse_out_bill_detail wbd
where wbd.billSid = #{sid}
</select>
</mapper>

28
src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java

@ -50,19 +50,19 @@ public class WarehouseOutBillDetailService extends MybatisBaseService<WarehouseO
public ResultBean delete(String sid) {
ResultBean rb = ResultBean.fireFail();
WarehouseOutBillDetail wmsWarehouseRack = fetchBySid(sid);
if (null != wmsWarehouseRack) {
baseMapper.deleteById(wmsWarehouseRack.getId());
WarehouseOutBillDetail WarehouseWarehouseRack = fetchBySid(sid);
if (null != WarehouseWarehouseRack) {
baseMapper.deleteById(WarehouseWarehouseRack.getId());
}
return rb.success();
}
public ResultBean updateIsEnable(String sid, String isEnable) {
ResultBean rb = ResultBean.fireFail();
WarehouseOutBillDetail wmsWarehouseRack = fetchBySid(sid);
if (null != wmsWarehouseRack) {
wmsWarehouseRack.setIsEnable(Integer.parseInt(isEnable));
baseMapper.updateById(wmsWarehouseRack);
WarehouseOutBillDetail WarehouseWarehouseRack = fetchBySid(sid);
if (null != WarehouseWarehouseRack) {
WarehouseWarehouseRack.setIsEnable(Integer.parseInt(isEnable));
baseMapper.updateById(WarehouseWarehouseRack);
}
return rb.success().setMsg("成功");
}
@ -99,4 +99,18 @@ public class WarehouseOutBillDetailService extends MybatisBaseService<WarehouseO
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void saveOrUpdateBillDetails(String sid, List<WarehouseOutBillDetailDto> 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<WarehouseOutBillDetailDto> selectDetailsList(String sid) {
return baseMapper.selectDetailsList(sid);
}
}

4
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<WarehouseRack> page;
private QueryWrapper<WarehouseRack> qw;
}

51
src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java

@ -26,9 +26,56 @@ import java.util.stream.Collectors;
public class WarehouseRackService extends MybatisBaseService<WarehouseRackMapper, WarehouseRack> {
public ResultBean<IPage<WarehouseRackVo>> listPage(WarehouseRackQuery query) {
public ResultBean<IPage<WarehouseRackVo>> listPage( PagerQuery<WarehouseRackQuery> pq) {
ResultBean rb = ResultBean.fireFail();
IPage<WarehouseRackVo> pagging = baseMapper.listPage(query.getPage(), query.getQw());
WarehouseRackQuery query = pq.getParams();
QueryWrapper<WarehouseRack> 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<WarehouseRackVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<WarehouseRackVo> 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<WarehouseRack> page = PagerUtil.queryToPage(pq);
IPage<WarehouseRackVo> pagging = baseMapper.listPage(page,qw);
return rb.success().setData(pagging);
}
public ResultBean<WarehouseRackVo> getAllType() {

2
src/main/java/com/yxt/warehouse/biz/warehouseshelfbill/WarehouseShelfBillService.java

@ -138,7 +138,7 @@ public class WarehouseShelfBillService extends MybatisBaseService<WarehouseShelf
// dto.setCreateOrgSid(wmsShelfBill.getCreateOrgSid());
// dto.setUseOrgSid(wmsShelfBill.getUseOrgSid());
dto.setSid(s.getInventorySid());
String inventorySid = wmsInventoryService.saveWmsInventory(dto).getData();
String inventorySid = wmsInventoryService.saveWarehouseInventory(dto).getData();
WarehouseShelfBillDetail wmsShelfBillDetail = wmsShelfBillDetailService.fetchBySid(s.getDetailsSid());
// wmsShelfBillDetail.setInventorySid(inventorySid);
wmsShelfBillDetailService.updateById(wmsShelfBillDetail);

Loading…
Cancel
Save