Browse Source

库存

master
wangpengfei 8 months ago
parent
commit
8b5ea0d7c6
  1. 2
      wms/src/main/java/com/yxt/wms/biz/func/purchaseinventorybill/PurchaseInventoryBillDto2.java
  2. 10
      wms/src/main/java/com/yxt/wms/biz/func/purchaseinventorybill/PurchaseInventoryBillService.java
  3. 2
      wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventory.java
  4. 98
      wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventoryDto.java
  5. 132
      wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventoryService.java
  6. 9
      wms/src/main/java/com/yxt/wms/biz/func/warehouseinventoryrecord/WarehouseInventoryRecordListVo.java

2
wms/src/main/java/com/yxt/wms/biz/func/purchaseinventorybill/PurchaseInventoryBillDto2.java

@ -25,6 +25,8 @@ public class PurchaseInventoryBillDto2 {
private String billNo;
@ApiModelProperty("状态")
private String billState;
@ApiModelProperty("单据类型")
private String billType;
@ApiModelProperty("商品总额")
private double total;
@ApiModelProperty("商品总重量(kg)")

10
wms/src/main/java/com/yxt/wms/biz/func/purchaseinventorybill/PurchaseInventoryBillService.java

@ -91,11 +91,17 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
SysStaffinfo sysStaffinfoDetailsVo=sysStaffinfoFeign.fetchBySidP(dto.getUserSid()).getData();
dto.setUserName(sysStaffinfoDetailsVo.getName());
for (PurchaseInventoryBillDetailDto2 dto2 : dto.getList()) {
BaseGoodsSkuDetailsVo vo=goodsSkuFeign.getDetails(dto2.getGoodsSkuSid()).getData();
BaseGoodsSkuVo vo=goodsSkuFeign.initialization(dto2.getGoodsSkuSid()).getData();
BaseGoodsSpuVo vo1= goodsSpuFeign.initialization(vo.getGoodsSpuSid()).getData();
dto2.setGoodsSpuSid(vo1.getSid());
dto2.setGoodsSpuName(vo1.getGoodsName());
dto2.setSpecValue("");
dto2.setSpecValue(vo.getOwnSpec());
dto2.setGoodsBrandSid(vo1.getBrandSid());
dto2.setGoodsBrandName(vo1.getBrandName());
dto2.setGoodsTypeSid(vo1.getGoodsTypeSid());
dto2.setGoodsTypeName(vo1.getTypeName());
dto2.setManufacturerName(vo1.getManufacturerName());
dto2.setManufacturerSid(vo1.getManufacturerSid());
}
return purchaseInventoryBillFeign.confirm(dto);

2
wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventory.java

@ -21,7 +21,7 @@ public class WarehouseInventory extends BaseEntity {
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
private String goodsSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")

98
wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventoryDto.java

@ -2,8 +2,10 @@ package com.yxt.wms.biz.func.warehouseinventory;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -12,37 +14,71 @@ import java.util.Date;
*/
@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;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("厂家")
private String manufacturerSid;
@ApiModelProperty("厂家")
private String manufacturerName;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodsSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
private String batch;
private String supplierName;
private String supplierSid;
private String billNo;
private String billSid;
private String detailSid;
private String userName;
private String userSid;
private String billType;
private String busTypeKey; // 业务类型key(采购入库、维修出入库、销售出入库等)
private String busTypeValue;
private String sourceBillSid;
private String sourceBillNo;
private String goodsBrandSid;
private String goodsBrandName;
private String goodsTypeSid;
private String goodsTypeName;
}

132
wms/src/main/java/com/yxt/wms/biz/func/warehouseinventory/WarehouseInventoryService.java

@ -68,58 +68,27 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
return rb.success().setData(warehouseInventoryVoPagerVo);
}
public ResultBean<PagerVo<WarehouseInventoryVo>> locationListPage(PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean rb=new ResultBean().fail();
WarehouseInventoryQuery query=pq.getParams();
DataRule dataRule=commonMethod.dataRule(query.getOrgPath(),query.getMenuUrl(),query.getUserSid()).getData();
pq.getParams().setOrgLevelKey(dataRule.getDataRuleId());
pq.getParams().setIndex(dataRule.getIndex());
return warehouseInventoryFeign.locationListPage(pq);
PagerVo<WarehouseInventoryVo>warehouseInventoryVoPagerVo=warehouseInventoryFeign.locationListPage(pq).getData();
for (WarehouseInventoryVo record : warehouseInventoryVoPagerVo.getRecords()) {
BaseGoodsSpuVo v=baseGoodsSpuFeign.initialization(record.getGoodsSpuSid()).getData();
record.setSid(record.getGoodsSpuSid());
record.setBarCode(v.getBarCode());
record.setGoodsSpuCode(v.getGoodsCode());
for (WarehouseInventoryVo child : record.getChildren()) {
child.setSid(child.getGoodsSkuSid());
}
}
return rb.success().setData(warehouseInventoryVoPagerVo);
}
public ResultBean getRackCountBySid(WarehouseInventoryRackCountQuery query) {
return warehouseInventoryFeign.getRackCountBySid(query);
}
/**
* 入库
*
* @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();
@ -165,85 +134,10 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
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) {
return warehouseInventoryFeign.delBySids(sids);
}
/* 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 void listExcel(WarehouseInventoryQuery query) {
warehouseInventoryFeign.exportExcel(query);
}

9
wms/src/main/java/com/yxt/wms/biz/func/warehouseinventoryrecord/WarehouseInventoryRecordListVo.java

@ -29,15 +29,16 @@ public class WarehouseInventoryRecordListVo {
@ApiModelProperty("操作员")
private String operator;
@ApiModelProperty("单价")
private BigDecimal price;
private BigDecimal cost;
@ApiModelProperty("spuname")
private String goodsSpuName;
@ApiModelProperty("skutitle")
private String goodsTitle;
private String goodsSkuTitle;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("发生成本")
private BigDecimal costIncurred;
private BigDecimal costIncurred=new BigDecimal(0);
@ApiModelProperty("库存成本")
private BigDecimal inventoryCost;
private BigDecimal inventoryCost=new BigDecimal(0);
private String warehouseName;
}

Loading…
Cancel
Save