Browse Source

库存

master
wangpengfei 9 months ago
parent
commit
80b247558c
  1. 4
      src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java
  2. 35
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java
  3. 1
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml
  4. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java
  5. 30
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java
  6. 13
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java
  7. 2
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java
  8. 2
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailDto.java
  9. 2
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.java
  10. 13
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml
  11. 9
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java
  12. 2
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailVo.java
  13. 2
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsListDetailsVo.java
  14. 3
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java
  15. 72
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml
  16. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java
  17. 15
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java
  18. 200
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java
  19. 43
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java

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

@ -27,9 +27,7 @@ public class PurchaseInventoryBillRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<PurchaseInventoryBillPageVo>> listPage(@RequestBody PagerQuery<PurchaseInventoryBillQuery> pq) {
ResultBean<PagerVo<PurchaseInventoryBillPageVo>> rb = ResultBean.fireFail();
PagerVo<PurchaseInventoryBillPageVo> pv = purchaseInventoryBillService.listPage(pq);
return rb.success().setData(pv);
return purchaseInventoryBillService.listPage(pq);
}
@ApiOperation("新增修改保存")

35
src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java

@ -42,34 +42,31 @@ public class WarehouseInventoryRest {
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WarehouseInventoryVo>> listPage(@RequestBody PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean<PagerVo<WarehouseInventoryVo>> rb = ResultBean.fireFail();
PagerVo<WarehouseInventoryVo> pv = WarehouseInventoryService.listPage(pq);
return rb.success().setData(pv);
return WarehouseInventoryService.listPage(pq);
}
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids) {
return WarehouseInventoryService.delAllBySids(sids);
@ApiOperation("库位库存分页列表")
@PostMapping("/locationListPage")
public ResultBean<PagerVo<WarehouseInventoryVo>> locationListPage(@RequestBody PagerQuery<WarehouseInventoryQuery> pq) {
return WarehouseInventoryService.locationListPage(pq);
}
// @ApiOperation("入库")
// @GetMapping("/warehousing")
public ResultBean warehousing(WarehouseInventoryDto dto) {
return WarehouseInventoryService.warehousing(dto);
}
/* @ApiOperation("编辑")
@PostMapping("/updateWarehouseInventory")
ResultBean updateWarehouseInventory(@RequestBody WarehouseInventoryUpdateDto dto) {
return WarehouseInventoryService.updateWarehouseInventory(dto);
}
@ApiOperation("查询库位商品数量")
@PostMapping("/getRackCountBySid")
ResultBean getRackCountBySid(@RequestBody WarehouseInventoryRackCountQuery query) {
return WarehouseInventoryService.getRackCountBySid(query);
}
@ApiOperation("根据商品查询库存变化")
@PostMapping("/getInventoryRecordBySid")
ResultBean getInventoryRecordBySid(@RequestBody WarehouseInventoryRackCountQuery query) {
return WarehouseInventoryService.getInventoryRecordBySid(query);
}
@ApiOperation("新增")
@PostMapping("/saveWarehouseInventory")
ResultBean<String> saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) {
return WarehouseInventoryService.saveWarehouseInventory(dto);
}*/
}

1
src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml

@ -4,6 +4,7 @@
<select id="listPage" resultType="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo">
select wrb.*
from purchase_inventory_bill wrb
LEFT JOIN ss_user.sys_organization as s ON wrb.useOrgSid = s.sid
<where>
${ew.sqlSegment}
</where>

2
src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java

@ -33,11 +33,13 @@ public class PurchaseInventoryBillQuery implements Query {
private String goodsSkuSid;
@ApiModelProperty("供应商")
private String supplierName;
private String orgLevelKey;//权限等级
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
private int index;
}

30
src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java

@ -18,6 +18,7 @@ import com.yxt.warehouse.biz.purchaseinventorybilldetail.PurchaseInventoryBillDe
import com.yxt.warehouse.biz.purchaseinventorybilldetail.PurchaseInventoryBillDetailVo;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBill;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillVo;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo;
@ -71,10 +72,35 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
@Autowired
WarehouseInfoService warehouseInfoService;
public PagerVo<PurchaseInventoryBillPageVo> listPage(PagerQuery<PurchaseInventoryBillQuery> pq) {
public ResultBean<PagerVo<PurchaseInventoryBillPageVo>> listPage(PagerQuery<PurchaseInventoryBillQuery> pq) {
PurchaseInventoryBillQuery query = pq.getParams();
ResultBean rb =new ResultBean().fail();
QueryWrapper<PurchaseInventoryBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
//数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
String orgLevelKey=query.getOrgLevelKey();
String orgSidPath=query.getOrgPath();
int index=query.getIndex();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, index);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, index);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, index);
qw.apply("s.orgSidPath like('"+orgSidPath+"')");
} else if ("4".equals(orgLevelKey)) {
qw.eq("wrb.createBySid", query.getUserSid());
} else {
PagerVo<PurchaseInventoryBillPageVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<PurchaseInventoryBillPageVo> p = new PagerVo<>();
return rb.success().setData(p);
}
//状态
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wrb.billNo", query.getBillNo());
@ -112,7 +138,7 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
IPage<PurchaseInventoryBill> page = PagerUtil.queryToPage(pq);
IPage<PurchaseInventoryBillPageVo> pagging = baseMapper.listPage(page, qw);
PagerVo<PurchaseInventoryBillPageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
return rb.success().setData(p);
}
public ResultBean<String> saveBill(List<PurchaseInventoryBillDto2> dto,String userSid,String userName) {

13
src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java

@ -20,6 +20,8 @@ import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService;
import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatch;
import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatchService;
import com.yxt.warehouse.biz.warehouserack.WarehouseRack;
import com.yxt.warehouse.biz.warehouserack.WarehouseRackService;
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2;
@ -53,6 +55,8 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
WarehouseInventoryService warehouseInventoryService;
@Autowired
WarehouseRackService warehouseRackService;
@Autowired
WarehouseInventoryBatchService warehouseInventoryBatchService;
// public void saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list, List<WarehouseReceiptBillDetailBatchDto2> pcList) {
public ResultBean<String> saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list) {
@ -113,6 +117,15 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
}
warehouseInventory.setGoodsID(billNo);
warehouseInventoryService.save(warehouseInventory);
WarehouseInventoryBatch batch=new WarehouseInventoryBatch();
batch.setInventorySid(warehouseInventory.getSid());
batch.setBatchNumber(v.getBatch());
batch.setSupplierName(p.getSupplierName());
batch.setSupplierSid(p.getSupplierSid());
batch.setBillNo(p.getBillNo());
batch.setBillSid(p.getSid());
batch.setBillDetailSid(wmsReceiptBillDetail.getSid());
warehouseInventoryBatchService.save(batch);
baseMapper.insert(wmsReceiptBillDetail);
}
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()

2
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java

@ -19,6 +19,8 @@ public class WarehouseAnsBillDetail extends BaseEntity {
private String sourceBillSid;
@ApiModelProperty("图示")
private String illustration;
@ApiModelProperty("商品Spusid")
private String goodsSpuSid;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")

2
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailDto.java

@ -16,6 +16,8 @@ public class WarehouseAnsBillDetailDto {
private String sourceBillSid;
@ApiModelProperty("图示")
private String illustration;
@ApiModelProperty("商品Spusid")
private String goodsSpuSid;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")

2
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.java

@ -23,4 +23,6 @@ public interface WarehouseAnsBillDetailMapper extends BaseMapper<WarehouseAnsBil
@Delete("delete from wms_ans_bill_details where sid = #{sid}")
void delByMainSid(String billSid);
List<WarehouseAnsListDetailsVo> selectByBillSid(String sid);
WarehouseAnsListDetailsVo selCountBySkuSid(String sid);
WarehouseAnsListDetailsVo selCountBySpuSid(String sid);
}

13
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml

@ -27,4 +27,17 @@
from warehouse_ans_bill_detail a
where a.sid =#{sid}
</select>
<select id="selCountBySkuSid" resultType="com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo">
select
sum(waitInCount) as waitInCount
from warehouse_ans_bill_detail a
where a.goodsSkusid =#{sid}
</select>
<select id="selCountBySpuSid" resultType="com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo">
select
sum(waitInCount) as waitInCount
from warehouse_ans_bill_detail a
where a.goodsSpusid =#{sid}
</select>
</mapper>

9
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailService.java

@ -137,4 +137,13 @@ public class WarehouseAnsBillDetailService extends MybatisBaseService<WarehouseA
return vo;
}
public WarehouseAnsListDetailsVo selCountBySkuSid(String sid) {
WarehouseAnsListDetailsVo vo=baseMapper.selCountBySkuSid(sid);
return vo;
}
public WarehouseAnsListDetailsVo selCountBySpuSid(String sid) {
WarehouseAnsListDetailsVo vo=baseMapper.selCountBySpuSid(sid);
return vo;
}
}

2
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailVo.java

@ -15,6 +15,8 @@ public class WarehouseAnsBillDetailVo {
private String sourceBillSid;
@ApiModelProperty("图示")
private String illustration;
@ApiModelProperty("商品Spusid")
private String goodsSpuSid;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")

2
src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsListDetailsVo.java

@ -14,6 +14,8 @@ public class WarehouseAnsListDetailsVo {
private String sourceBillSid;
@ApiModelProperty("图示")
private String illustration;
@ApiModelProperty("商品Spusid")
private String goodsSpuSid;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")

3
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java

@ -17,6 +17,9 @@ import java.util.List;
public interface WarehouseInventoryMapper extends BaseMapper<WarehouseInventory> {
IPage<WarehouseInventoryVo> listPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
List<WarehouseInventoryVo> getListBySpuSid(@Param("spuSid")String spuSid);
List<WarehouseInventoryVo> getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid);
List<WarehouseInventoryVo> getRackCountBySid1(@Param("sid")String sid,@Param("orgSid") String orgSid);
WarehouseInventoryVo initialization(@Param("sid") String sid);

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

@ -5,23 +5,53 @@
<!-- ${ew.customSqlSegment} -->
<select id="listPage" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
select a.goodsID,
select
a.goodsID,
a.sid,
a.goodsSpuName,
a.goodsSpuSid,
a.goodsSkuSid,
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
sum(a.count) as count ,
sum(a.allocateCount) as allocateCount,
sum(a.count-a.allocateCount) as useCount,
sum(a.freezeCount) as freezeCount,
a.batchNumber
from warehouse_inventory a
LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getListBySpuSid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
select
a.goodsID,
a.sid,
a.goodsSpuName,
a.goodsSkuTitle,
a.goodsSpuSid,
a.goodsSkuSid,
a.goodsSkuCode,
a.goodsSkuOwnSpec,
a.unit,
a.warehouseName,
a.warehouseRackCode,
a.count as count ,
a.allocateCount as allocateCount,
a.count-a.allocateCount as useCount,
a.freezeCount as freezeCount,
a.batchNumber
from warehouse_inventory a
<where>
a.goodsSpuSid=#{spuSid}
</where>
group by a.goodsSkuSid
</select>
<select id="initialization" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
select a.*,
b.goodsName as goodsName
@ -328,5 +358,37 @@
a.goodsSkuSid = #{skuSid} and
a.useOrgSid=#{orgSid}
</select>
<select id="getRackCountBySid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
SELECT
b.rackName,
b.rackCode,
a.count - a.allocateCount AS useCount,
a.count,
a.allocateCount,
a.freezeCount
FROM
warehouse_inventory a
LEFT JOIN warehouse_rack b ON a.warehouseRackSid = b.sid
LEFT JOIN warehouse_area c ON c.sid = b.locationSid
WHERE
a.goodsSpuSid = #{sid} and
a.useOrgSid=#{orgSid}
</select>
<select id="getRackCountBySid1" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
SELECT
b.rackName,
b.rackCode,
a.count - a.allocateCount AS useCount,
a.count,
a.allocateCount,
a.freezeCount
FROM
warehouse_inventory a
LEFT JOIN warehouse_rack b ON a.warehouseRackSid = b.sid
LEFT JOIN warehouse_area c ON c.sid = b.locationSid
WHERE
a.goodsSkuSid = #{sid} and
a.useOrgSid=#{orgSid}
</select>
</mapper>

30
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryQuery.java

@ -10,23 +10,33 @@ import lombok.Data;
*/
@Data
public class WarehouseInventoryQuery implements Query {
@ApiModelProperty("goodsID")
private String goodsID;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("仓库")
private String warehouseName;
private String warehouseSid;
@ApiModelProperty("商品名称")
private String goodsSpuSid;
private String brandSid;
private String spec;
private String countStart;
private String countEnd;
@ApiModelProperty("条码")
private String barCode;
private String hh;
private String orgLevelKey;//权限等级
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
private int index;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("批次号")
private String batchNumber;
//供应商
}

15
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackCountQuery.java

@ -0,0 +1,15 @@
package com.yxt.warehouse.biz.warehouseinventory;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/8/23 11:02
*/
@Data
public class WarehouseInventoryRackCountQuery {
private String sid;
private String type;//1 spu 2sku
private String orgSid;
}

200
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java

@ -10,13 +10,16 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo;
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* @author wangpengfei
@ -24,31 +27,149 @@ import java.util.List;
*/
@Service
public class WarehouseInventoryService extends MybatisBaseService<WarehouseInventoryMapper, WarehouseInventory> {
public PagerVo<WarehouseInventoryVo> listPage(PagerQuery<WarehouseInventoryQuery> pq) {
@Autowired
WarehouseAnsBillDetailService warehouseAnsBillDetailService;
@Autowired
WarehouseInventoryRecordService warehouseInventoryRecordService;
public ResultBean<PagerVo<WarehouseInventoryVo>> listPage(PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean rb =new ResultBean().fail();
WarehouseInventoryQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getGoodsID())) {
qw.like("a.goodsID", query.getGoodsID());
}
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("a.warehouseName", query.getWarehouseName());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("a.goodsSkuCode", query.getGoodsSkuCode());
}
if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("a.goodsSpuName", query.getGoodsSpuName());
}
if (StringUtils.isNotBlank(query.getBatchNumber())) {
qw.like("a.batchNumber", query.getBatchNumber());
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
// String orgLevelKey=query.getOrgLevelKey();
// String orgSidPath=query.getOrgPath();
// int index=query.getIndex();
// if ("1".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath);
// } else if ("2".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath);
// } else if ("3".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.apply("s.orgSidPath like('"+orgSidPath+"')");
// } else if ("4".equals(orgLevelKey)) {
// qw.eq("wab.createBySid", query.getUserSid());
// } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p);
// }
// } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p);
// }
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.like("a.warehouseNameSid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) {
qw.like("a.goodsSpuSid", query.getGoodsSpuSid());
}
if (StringUtils.isNotBlank(query.getBrandSid())) {
qw.like("a.brandSid", query.getBrandSid());
}
if (StringUtils.isNotBlank(query.getSpec())) {
qw.like("a.goodsSkuOwnSpec", query.getSpec());
}
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) {
qw.like("a.goodsSpuSid", query.getGoodsSpuSid());
}
qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()).
apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd()
);
qw.eq("1",1);
qw.groupBy("a.goodsSpuSid");
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryVo> pagging = baseMapper.listPage(page, qw);
for (WarehouseInventoryVo record : pagging.getRecords()) {
List<WarehouseInventoryVo> vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid());
WarehouseAnsListDetailsVo vo2=warehouseAnsBillDetailService.selCountBySpuSid(record.getGoodsSpuSid());
record.setProcurementInTransit(new BigDecimal(vo2.getWaitInCount()));
record.setInTransitSummary(record.getInTransitSummary()
.add(record.getProcurementInTransit())
.add(record.getSalesReturnInTransit())
.add(record.getTransferInTransit())
.add(record.getOtherOnTheWay())
.add(record.getWorkOrderInTransit()));
for (WarehouseInventoryVo vo : vos) {
vo.setMainSid(record.getGoodsSpuSid());
WarehouseAnsListDetailsVo vo1=warehouseAnsBillDetailService.selCountBySkuSid(vo.getGoodsSkuSid());
vo.setProcurementInTransit(new BigDecimal(vo1.getWaitInCount()));
vo.setInTransitSummary(vo.getInTransitSummary()
.add(vo.getProcurementInTransit())
.add(vo.getSalesReturnInTransit())
.add(vo.getTransferInTransit())
.add(vo.getOtherOnTheWay())
.add(vo.getWorkOrderInTransit()));
}
record.setWarehouseInventorys(vos);
}
PagerVo<WarehouseInventoryVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<PagerVo<WarehouseInventoryVo>> locationListPage(PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean rb =new ResultBean().fail();
WarehouseInventoryQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
// String orgLevelKey=query.getOrgLevelKey();
// String orgSidPath=query.getOrgPath();
// int index=query.getIndex();
// if ("1".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath);
// } else if ("2".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath);
// } else if ("3".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index);
// qw.apply("s.orgSidPath like('"+orgSidPath+"')");
// } else if ("4".equals(orgLevelKey)) {
// qw.eq("wab.createBySid", query.getUserSid());
// } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p);
// }
// } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p);
// }
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.like("a.warehouseNameSid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) {
qw.like("a.goodsSpuSid", query.getGoodsSpuSid());
}
if (StringUtils.isNotBlank(query.getBrandSid())) {
qw.like("a.brandSid", query.getBrandSid());
}
if (StringUtils.isNotBlank(query.getSpec())) {
qw.like("a.goodsSkuOwnSpec", query.getSpec());
}
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) {
qw.like("a.goodsSpuSid", query.getGoodsSpuSid());
}
qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()).
apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd()
);
qw.eq("1",1);
qw.groupBy("a.goodsSpuSid");
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq);
IPage<WarehouseInventoryVo> pagging = baseMapper.listPage(page, qw);
for (WarehouseInventoryVo record : pagging.getRecords()) {
List<WarehouseInventoryVo> vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid());
for (WarehouseInventoryVo vo : vos) {
vo.setMainSid(record.getGoodsSpuSid());
}
record.setWarehouseInventorys(vos);
}
PagerVo<WarehouseInventoryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
return rb.success().setData(p);
}
/**
* 入库
*
@ -113,16 +234,25 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
return rb.success().setMsg("成功");
}
public ResultBean updateWarehouseInventory(WarehouseInventoryUpdateDto dto) {
public ResultBean getRackCountBySid(WarehouseInventoryRackCountQuery query) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
WarehouseInventory WarehouseInventory = fetchBySid(sid);
if (WarehouseInventory == null) {
return rb.setMsg("该库存信息不存在");
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>();
if (query.getType().equals("1")){
warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid());
}else if(query.getType().equals("2")){
warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid());
}
BeanUtil.copyProperties(dto, WarehouseInventory, "sid");
baseMapper.updateById(WarehouseInventory);
return rb.success();
return rb.success().setData(warehouseInventoryVos);
}
public ResultBean getInventoryRecordBySid(WarehouseInventoryRackCountQuery query) {
ResultBean rb = ResultBean.fireFail();
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>();
if (query.getType().equals("1")){
// warehouseInventoryVos=warehouseInventoryRecordService.getRackCountBySid(query.getSid(),query.getOrgSid());
}else if(query.getType().equals("2")){
// warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid());
}
return rb.success().setData(warehouseInventoryVos);
}
public ResultBean delAllBySids(String[] sids) {
@ -198,12 +328,12 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
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());
}
// 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));

43
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryVo.java

@ -4,18 +4,24 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* @author wangpengfei
* @date 2024/2/26 13:37
*/
@Data
public class WarehouseInventoryVo implements Vo {
private String mainSid="0";
private String sid;
@ApiModelProperty("商品ID")
private String goodsID;
private String goodsSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
private String goodsSkuSid;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
@ -27,16 +33,35 @@ public class WarehouseInventoryVo implements Vo {
@ApiModelProperty("库位名称")
private String warehouseRackCode;
@ApiModelProperty("现有库存")
private String count;
private BigDecimal count=new BigDecimal(0);
@ApiModelProperty("分配库存")
private String allocateCount;
private BigDecimal allocateCount=new BigDecimal(0);
@ApiModelProperty("可用库存")
private String useCount;
@ApiModelProperty("批次号")
private BigDecimal useCount=new BigDecimal(0);
@ApiModelProperty("冻结")
private BigDecimal freezeCount=new BigDecimal(0);
@ApiModelProperty("在途汇总")
private BigDecimal inTransitSummary=new BigDecimal(0);
@ApiModelProperty("采购在途")
private BigDecimal procurementInTransit=new BigDecimal(0);
@ApiModelProperty("销退在途")
private BigDecimal salesReturnInTransit=new BigDecimal(0);
@ApiModelProperty("调拨在途")
private BigDecimal transferInTransit=new BigDecimal(0);
@ApiModelProperty("其他在途")
private BigDecimal otherOnTheWay=new BigDecimal(0);
@ApiModelProperty("工单在途")
private BigDecimal workOrderInTransit=new BigDecimal(0);
@ApiModelProperty("箱单位")
private String boxUnit;
@ApiModelProperty("体积m3")
private String volume;
@ApiModelProperty("重量kg")
private String weight;
@ApiModelProperty("批次")
private String batchNumber;
@ApiModelProperty("首次入库日期")
private String firstInDate;
@ApiModelProperty("库龄")
private String dateAge;
@ApiModelProperty("序列号")
private String serialNumber;
private List<WarehouseInventoryVo> warehouseInventorys=new ArrayList<>();
}

Loading…
Cancel
Save