9/1
This commit is contained in:
@@ -33,6 +33,10 @@ public class WarehouseInfoRest {
|
||||
public ResultBean<PagerVo<WarehouseInfoVo>> listPage(@RequestBody PagerQuery<WarehouseInfoQuery> pq) {
|
||||
return wmsWarehouseService.listPage(pq);
|
||||
}
|
||||
@PostMapping("/list")
|
||||
public ResultBean<List<WarehouseInfo>> list(@RequestBody WarehouseInfoMapQuery query) {
|
||||
return wmsWarehouseService.listQuery(query);
|
||||
}
|
||||
@ApiOperation("查询所有的仓库")
|
||||
@PostMapping("/listAll")
|
||||
public ResultBean<List<WarehouseInfo>> listAll(@RequestBody OrgPathQuery query) {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.yxt.warehouse.apiadmin;
|
||||
|
||||
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.warehouseinventoryhistory.WarehouseInventoryHistoryQuery;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistoryService;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistoryVo;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.report.WarehouseInventoryDetailsRecordQuery;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.report.WarehouseInventoryDetailsRecordVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/8/30 9:23
|
||||
*/
|
||||
@Api(tags = "历史库存")
|
||||
@RestController
|
||||
@RequestMapping("/apiadmin/warehouseinventoryhistory")
|
||||
public class WarehouseInventoryHistoryRest {
|
||||
@Autowired
|
||||
WarehouseInventoryHistoryService warehouseInventoryHistoryService;
|
||||
|
||||
@ApiOperation("分页列表")
|
||||
@PostMapping("/listPage")
|
||||
public ResultBean<PagerVo<WarehouseInventoryHistoryVo>> listPage(@RequestBody PagerQuery<WarehouseInventoryHistoryQuery> pq){
|
||||
return warehouseInventoryHistoryService.listPage(pq);
|
||||
}
|
||||
}
|
||||
@@ -144,10 +144,15 @@ public class WarehouseInventoryRecordRest {
|
||||
ResultBean<List<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecordList(@RequestParam("sid")String sid){
|
||||
return warehouseInventoryRecordService.getWarehouseInventoryRecordList(sid);
|
||||
}
|
||||
@ApiOperation("库存出入库记录")
|
||||
@PostMapping("/getWarehouseInventoryRecord")
|
||||
ResultBean<PagerVo<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecord(@RequestBody PagerQuery<WarehouseInventoryRecordQuery1> pq){
|
||||
return warehouseInventoryRecordService.getWarehouseInventoryRecord(pq);
|
||||
}
|
||||
|
||||
@ApiOperation("出入库查询")
|
||||
@PostMapping("/pageList")
|
||||
ResultBean<PagerVo<WarehouseInventoryRecordsVo>> pageList(@RequestBody PagerQuery<WarehouseInventoryRecordsQuery> pagerQuery){
|
||||
ResultBean<PagerVo<WarehouseInventoryRecordsVo>> pageList(@RequestBody PagerQuery<WarehouseInventoryRecordsQuery> pagerQuery){
|
||||
ResultBean<PagerVo<WarehouseInventoryRecordsVo>> rb = ResultBean.fireFail();
|
||||
PagerVo<WarehouseInventoryRecordsVo> pv = warehouseInventoryRecordService.listPage(pagerQuery);
|
||||
return rb.success().setData(pv);
|
||||
|
||||
@@ -57,11 +57,7 @@ public class WarehouseInventoryRest {
|
||||
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) {
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillMapper">
|
||||
<select id="listPage" resultType="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo">
|
||||
select wrb.*
|
||||
select DISTINCT wrb.*
|
||||
from purchase_inventory_bill wrb
|
||||
LEFT JOIN ss_user.sys_organization as s ON wrb.useOrgSid = s.sid
|
||||
left JOIN purchase_inventory_bill_detail a ON a.sourceBillSid = wrb.sid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
</where>
|
||||
|
||||
@@ -127,13 +127,13 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
qw.like("wrb.waybillNumber", query.getWaybillNumber());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getGoodsSkuSid())) {
|
||||
qw.like("wrb.goodsSkuSid", query.getGoodsSkuSid());
|
||||
qw.eq("a.goodsSkuSid", query.getGoodsSkuSid());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getSupplierName())) {
|
||||
qw.like("wrb.supplierName", query.getSupplierName());
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getBillType())) {
|
||||
qw.like("wrb.billType", query.getBillType());
|
||||
qw.eq("wrb.billType", query.getBillType());
|
||||
}
|
||||
IPage<PurchaseInventoryBill> page = PagerUtil.queryToPage(pq);
|
||||
IPage<PurchaseInventoryBillPageVo> pagging = baseMapper.listPage(page, qw);
|
||||
@@ -150,11 +150,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
c=c.add(purchaseInventoryBillDetailDto2.getCount());
|
||||
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
|
||||
}
|
||||
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill();
|
||||
String sid = wmsReceiptBill.getSid();
|
||||
BeanUtil.copyProperties(dto2, wmsReceiptBill, "sid");
|
||||
wmsReceiptBill.setBillState("1");
|
||||
wmsReceiptBill.setTotal(total);
|
||||
PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
|
||||
String sid = purchaseInventoryBill.getSid();
|
||||
BeanUtil.copyProperties(dto2, purchaseInventoryBill, "sid");
|
||||
purchaseInventoryBill.setBillState("1");
|
||||
purchaseInventoryBill.setTotal(total);
|
||||
//生成单据编号
|
||||
String billNo = "";
|
||||
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
|
||||
@@ -165,10 +165,10 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
} else {
|
||||
billNo = Rule.getBillNo(billNo, 0);
|
||||
}
|
||||
wmsReceiptBill.setBillNo(billNo);
|
||||
wmsReceiptBill.setTotalQuantity(c);
|
||||
wmsReceiptBill.setBillType("0");
|
||||
baseMapper.insert(wmsReceiptBill);
|
||||
purchaseInventoryBill.setBillNo(billNo);
|
||||
purchaseInventoryBill.setTotalQuantity(c);
|
||||
purchaseInventoryBill.setBillType("0");
|
||||
baseMapper.insert(purchaseInventoryBill);
|
||||
List<PurchaseInventoryBillDetailDto2> list = dto2.getList();
|
||||
list.removeAll(Collections.singleton(null));
|
||||
if (!list.isEmpty()) {
|
||||
@@ -295,15 +295,15 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
c=c.add(purchaseInventoryBillDetailDto2.getCount());
|
||||
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
|
||||
}
|
||||
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill();
|
||||
String sid = wmsReceiptBill.getSid();
|
||||
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid");
|
||||
wmsReceiptBill.setBillState("1");
|
||||
wmsReceiptBill.setBillType("1");
|
||||
wmsReceiptBill.setOperatorName(dto.getUserName());
|
||||
wmsReceiptBill.setOperatorSid(dto.getUserSid());
|
||||
wmsReceiptBill.setOperatorTime(new Date());
|
||||
wmsReceiptBill.setTotal(total);
|
||||
PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
|
||||
String sid = purchaseInventoryBill.getSid();
|
||||
BeanUtil.copyProperties(dto, purchaseInventoryBill, "sid");
|
||||
purchaseInventoryBill.setBillState("1");
|
||||
purchaseInventoryBill.setBillType("1");
|
||||
purchaseInventoryBill.setOperatorName(dto.getUserName());
|
||||
purchaseInventoryBill.setOperatorSid(dto.getUserSid());
|
||||
purchaseInventoryBill.setOperatorTime(new Date());
|
||||
purchaseInventoryBill.setTotal(total);
|
||||
//生成单据编号
|
||||
String billNo = "";
|
||||
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
|
||||
@@ -314,13 +314,13 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
} else {
|
||||
billNo = Rule.getBillNo(billNo, 0);
|
||||
}
|
||||
wmsReceiptBill.setBillNo(billNo);
|
||||
wmsReceiptBill.setTotalQuantity(c);
|
||||
baseMapper.insert(wmsReceiptBill);
|
||||
purchaseInventoryBill.setBillNo(billNo);
|
||||
purchaseInventoryBill.setTotalQuantity(c);
|
||||
baseMapper.insert(purchaseInventoryBill);
|
||||
List<PurchaseInventoryBillDetailDto2> list = dto.getList();
|
||||
list.removeAll(Collections.singleton(null));
|
||||
for (PurchaseInventoryBillDetailDto2 dto2 : list) {
|
||||
dto2.setSourceBillSid(wmsReceiptBill.getSid());
|
||||
dto2.setSourceBillSid(purchaseInventoryBill.getSid());
|
||||
purchaseInventoryBillDetailService.saveOrUpdate(dto2);
|
||||
WarehouseInventory warehouseInventory=new WarehouseInventory();
|
||||
warehouseInventory.setBatchNumber(dto2.getBatch());
|
||||
@@ -410,6 +410,7 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
|
||||
}
|
||||
PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
|
||||
BeanUtil.copyProperties(ansBill,purchaseInventoryBill,"id","sid");
|
||||
String sid = purchaseInventoryBill.getSid();
|
||||
purchaseInventoryBill.setSourceBillSid("");
|
||||
purchaseInventoryBill.setSourceBillNo("");
|
||||
@@ -426,19 +427,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
purchaseInventoryBill.setBillState("1");
|
||||
purchaseInventoryBill.setBillType("0");
|
||||
purchaseInventoryBill.setTotal(total);
|
||||
purchaseInventoryBill.setSupplierSid(ansBill.getSupplierSid());
|
||||
purchaseInventoryBill.setSupplierName(ansBill.getSupplierName());
|
||||
purchaseInventoryBill.setCarrier(ansBill.getCarrier());
|
||||
purchaseInventoryBill.setWaybillNumber(ansBill.getWaybillNumber());
|
||||
purchaseInventoryBill.setExternalNo(ansBill.getSourceBillNo());
|
||||
purchaseInventoryBill.setStorageTime(DateUtil.parse(dto.getStorageTime()));
|
||||
purchaseInventoryBill.setOperatorSid(dto.getOperatorSid());
|
||||
purchaseInventoryBill.setOperatorName(dto.getOperatorName());
|
||||
purchaseInventoryBill.setOperatorTime(DateUtil.parse(dto.getOperatorTime()));
|
||||
purchaseInventoryBill.setUseOrgSid(ansBill.getUseOrgSid());
|
||||
purchaseInventoryBill.setCreateOrgSid(ansBill.getCreateOrgSid());
|
||||
purchaseInventoryBill.setWarehouseName(ansBill.getWarehouseName());
|
||||
purchaseInventoryBill.setWarehouseSid(ansBill.getWarehouseSid());
|
||||
purchaseInventoryBill.setTotalQuantity(c);
|
||||
|
||||
//生成单据编号
|
||||
@@ -447,22 +440,12 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
|
||||
for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : list) {
|
||||
for (WarehouseAnsBillDetail ansBillDetail : ansBillDetails) {
|
||||
if(purchaseInventoryBillDetailDto2.getGoodsSkuSid().equals(ansBillDetail.getGoodsSkuSid())){
|
||||
purchaseInventoryBillDetailDto2.setSourceBillSid(ansBillDetail.getSourceBillSid());
|
||||
purchaseInventoryBillDetailDto2.setIllustration(ansBillDetail.getIllustration());
|
||||
purchaseInventoryBillDetailDto2.setGoodsSpuSid(ansBillDetail.getGoodsSpuSid());
|
||||
purchaseInventoryBillDetailDto2.setGoodsSpuName(ansBillDetail.getGoodsSpuSid());
|
||||
purchaseInventoryBillDetailDto2.setGoodsSkuSid(ansBillDetail.getGoodsSkuSid());
|
||||
purchaseInventoryBillDetailDto2.setGoodsSkuTitle(ansBillDetail.getGoodsSkuTitle());
|
||||
purchaseInventoryBillDetailDto2.setGoodsSkuCode(ansBillDetail.getGoodsSkuCode());
|
||||
BeanUtil.copyProperties(ansBillDetail,purchaseInventoryBillDetailDto2,"sid","id");
|
||||
purchaseInventoryBillDetailDto2.setGoodsSpuName("");
|
||||
purchaseInventoryBillDetailDto2.setSpecValue(ansBillDetail.getGoodsSkuOwnSpec());
|
||||
purchaseInventoryBillDetailDto2.setOwnSpec(ansBillDetail.getGoodsSkuOwnSpec());
|
||||
purchaseInventoryBillDetailDto2.setUnit(ansBillDetail.getUnit());
|
||||
purchaseInventoryBillDetailDto2.setGoodsUnitName(ansBillDetail.getUnit());
|
||||
purchaseInventoryBillDetailDto2.setPrice(ansBillDetail.getPrice());
|
||||
purchaseInventoryBillDetailDto2.setCostPrice(ansBillDetail.getPrice());
|
||||
purchaseInventoryBillDetailDto2.setTotalPrice(ansBillDetail.getTotalPrice());
|
||||
purchaseInventoryBillDetailDto2.setCount(purchaseInventoryBillDetailDto2.getCount());
|
||||
purchaseInventoryBillDetailDto2.setBatch(ansBillDetail.getBatch());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,9 +19,11 @@ import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
|
||||
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.WarehouseInventoryDto;
|
||||
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.warehouseinventoryrecord.WarehouseInventoryRecordService;
|
||||
import com.yxt.warehouse.biz.warehouserack.WarehouseRack;
|
||||
import com.yxt.warehouse.biz.warehouserack.WarehouseRackService;
|
||||
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2;
|
||||
@@ -57,6 +59,8 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
|
||||
WarehouseRackService warehouseRackService;
|
||||
@Autowired
|
||||
WarehouseInventoryBatchService warehouseInventoryBatchService;
|
||||
@Autowired
|
||||
WarehouseInventoryRecordService warehouseInventoryRecordService;
|
||||
|
||||
// public void saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list, List<WarehouseReceiptBillDetailBatchDto2> pcList) {
|
||||
public ResultBean<String> saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list) {
|
||||
@@ -64,49 +68,33 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
|
||||
baseMapper.deleteByBillSid(sid);
|
||||
PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid));
|
||||
for (PurchaseInventoryBillDetailDto2 v : list) {
|
||||
PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail();
|
||||
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid");
|
||||
wmsReceiptBillDetail.setSourceBillSid(sid);
|
||||
wmsReceiptBillDetail.setSid(UUID.randomUUID().toString());
|
||||
wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle());
|
||||
wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode());
|
||||
// wmsReceiptBillDetail.setSpecValue(v.getSpecValue());
|
||||
wmsReceiptBillDetail.setBatchNumber(v.getBatch());
|
||||
PurchaseInventoryBillDetail purchaseInventoryBillDetail = new PurchaseInventoryBillDetail();
|
||||
BeanUtil.copyProperties(v, purchaseInventoryBillDetail, "sid");
|
||||
purchaseInventoryBillDetail.setSourceBillSid(sid);
|
||||
purchaseInventoryBillDetail.setSid(UUID.randomUUID().toString());
|
||||
purchaseInventoryBillDetail.setBatchNumber(v.getBatch());
|
||||
WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService
|
||||
.getOne(new QueryWrapper<WarehouseAnsBillDetail>()
|
||||
.eq("sourceBillSid",p.getSourceBillSid())
|
||||
.eq("goodsSkuSid",wmsReceiptBillDetail.getGoodsSkuSid()));
|
||||
if(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
|
||||
.eq("goodsSkuSid",purchaseInventoryBillDetail.getGoodsSkuSid()));
|
||||
if(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
|
||||
return rb.setMsg("入库数量大于预约数量");
|
||||
}
|
||||
|
||||
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-wmsReceiptBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-purchaseInventoryBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount());
|
||||
warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail);
|
||||
WarehouseInventory warehouseInventory=new WarehouseInventory();
|
||||
WarehouseInventoryDto warehouseInventory=new WarehouseInventoryDto();
|
||||
BeanUtil.copyProperties(v,warehouseInventory);
|
||||
warehouseInventory.setBatchNumber(v.getBatch());
|
||||
warehouseInventory.setGoodsSpuName("");
|
||||
warehouseInventory.setGoodsSkuSid(v.getGoodsSkuSid());
|
||||
warehouseInventory.setGoodsSkuTitle(v.getGoodsSkuTitle());
|
||||
warehouseInventory.setGoodsSkuCode(v.getGoodsSkuCode());
|
||||
warehouseInventory.setGoodsSkuOwnSpec("");
|
||||
warehouseInventory.setUnit(v.getUnit());
|
||||
warehouseInventory.setCount(v.getCount());
|
||||
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
|
||||
warehouseInventory.setAllocateCount(new BigDecimal(0));
|
||||
warehouseInventory.setPickCount(new BigDecimal(0));
|
||||
warehouseInventory.setFreezeCount(new BigDecimal(0));
|
||||
warehouseInventory.setCost(v.getPrice());
|
||||
warehouseInventory.setWarehouseSid(v.getWarehouseSid());
|
||||
warehouseInventory.setWarehouseName(v.getWarehouseName());
|
||||
warehouseInventory.setWarehouseRackSid(v.getWarehouseRackSid());
|
||||
WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
|
||||
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
|
||||
warehouseInventory.setFirstInDate(new Date());
|
||||
warehouseInventory.setUseOrgSid(p.getUseOrgSid());
|
||||
warehouseInventory.setCreateOrgSid(p.getCreateOrgSid());
|
||||
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
|
||||
warehouseInventory.setGoodsSpuName(v.getGoodsSpuName());
|
||||
warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid());
|
||||
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
|
||||
String billNo = v.getGoodsSkuCode() + date;
|
||||
String i = warehouseInventoryService.selectNum(billNo);
|
||||
@@ -116,17 +104,19 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
|
||||
billNo = Rule.getBillNo(billNo, 0);
|
||||
}
|
||||
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);
|
||||
warehouseInventory.setBatch(v.getBatch());
|
||||
warehouseInventory.setSupplierName(p.getSupplierName());
|
||||
warehouseInventory.setSupplierSid(p.getSupplierSid());
|
||||
warehouseInventory.setBillNo(p.getBillNo());
|
||||
warehouseInventory.setBillSid(p.getSid());
|
||||
warehouseInventory.setDetailSid(purchaseInventoryBillDetail.getSid());
|
||||
warehouseInventory.setBillType("1");
|
||||
warehouseInventory.setBusTypeKey("采购入库");
|
||||
warehouseInventory.setBusTypeValue("采购入库");
|
||||
warehouseInventory.setSourceBillNo(p.getSid());
|
||||
warehouseInventory.setSourceBillSid(p.getBillNo());
|
||||
warehouseInventoryService.saveInventory(warehouseInventory);
|
||||
baseMapper.insert(purchaseInventoryBillDetail);
|
||||
}
|
||||
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
|
||||
.eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00"));
|
||||
@@ -147,49 +137,32 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
|
||||
baseMapper.deleteByBillSid(sid);
|
||||
PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid));
|
||||
for (PurchaseInventoryBillDetailDto2 v : list) {
|
||||
PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail();
|
||||
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid");
|
||||
wmsReceiptBillDetail.setSourceBillSid(sid);
|
||||
wmsReceiptBillDetail.setSid(UUID.randomUUID().toString());
|
||||
wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle());
|
||||
wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode());
|
||||
// wmsReceiptBillDetail.setSpecValue(v.getSpecValue());
|
||||
wmsReceiptBillDetail.setBatchNumber(v.getBatch());
|
||||
PurchaseInventoryBillDetail purchaseInventoryBillDetail = new PurchaseInventoryBillDetail();
|
||||
BeanUtil.copyProperties(v, purchaseInventoryBillDetail, "sid","id");
|
||||
purchaseInventoryBillDetail.setSourceBillSid(sid);
|
||||
purchaseInventoryBillDetail.setSid(UUID.randomUUID().toString());
|
||||
purchaseInventoryBillDetail.setBatchNumber(v.getBatch());
|
||||
WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService
|
||||
.getOne(new QueryWrapper<WarehouseAnsBillDetail>()
|
||||
.eq("sourceBillSid",p.getSourceBillSid())
|
||||
.eq("goodsSkuSid",wmsReceiptBillDetail.getGoodsSkuSid()));
|
||||
if(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
|
||||
.eq("goodsSkuSid",purchaseInventoryBillDetail.getGoodsSkuSid()));
|
||||
if(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
|
||||
return rb.setMsg("入库数量大于预约数量");
|
||||
}
|
||||
|
||||
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-wmsReceiptBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-purchaseInventoryBillDetail.getCount());
|
||||
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount());
|
||||
warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail);
|
||||
WarehouseInventory warehouseInventory=new WarehouseInventory();
|
||||
WarehouseInventoryDto warehouseInventory=new WarehouseInventoryDto();
|
||||
BeanUtil.copyProperties(v,warehouseInventory);
|
||||
warehouseInventory.setBatchNumber(v.getBatch());
|
||||
warehouseInventory.setGoodsSpuName("");
|
||||
warehouseInventory.setGoodsSkuSid(v.getGoodsSkuSid());
|
||||
warehouseInventory.setGoodsSkuTitle(v.getGoodsSkuTitle());
|
||||
warehouseInventory.setGoodsSkuCode(v.getGoodsSkuCode());
|
||||
warehouseInventory.setGoodsSkuOwnSpec("");
|
||||
warehouseInventory.setUnit(v.getUnit());
|
||||
warehouseInventory.setCount(v.getCount());
|
||||
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
|
||||
warehouseInventory.setAllocateCount(new BigDecimal(0));
|
||||
warehouseInventory.setPickCount(new BigDecimal(0));
|
||||
warehouseInventory.setFreezeCount(new BigDecimal(0));
|
||||
warehouseInventory.setCost(v.getPrice());
|
||||
warehouseInventory.setWarehouseSid(v.getWarehouseSid());
|
||||
warehouseInventory.setWarehouseName(v.getWarehouseName());
|
||||
warehouseInventory.setWarehouseRackSid(v.getWarehouseRackSid());
|
||||
WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
|
||||
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
|
||||
warehouseInventory.setFirstInDate(new Date());
|
||||
warehouseInventory.setUseOrgSid(p.getUseOrgSid());
|
||||
warehouseInventory.setCreateOrgSid(p.getCreateOrgSid());
|
||||
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
|
||||
warehouseInventory.setGoodsSpuName(v.getGoodsSpuName());
|
||||
warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid());
|
||||
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
|
||||
String billNo = v.getGoodsSkuCode() + date;
|
||||
String i = warehouseInventoryService.selectNum(billNo);
|
||||
@@ -199,17 +172,19 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
|
||||
billNo = Rule.getBillNo(billNo, 0);
|
||||
}
|
||||
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);
|
||||
warehouseInventory.setBatch(v.getBatch());
|
||||
warehouseInventory.setSupplierName(p.getSupplierName());
|
||||
warehouseInventory.setSupplierSid(p.getSupplierSid());
|
||||
warehouseInventory.setBillNo(p.getBillNo());
|
||||
warehouseInventory.setBillSid(p.getSid());
|
||||
warehouseInventory.setDetailSid(purchaseInventoryBillDetail.getSid());
|
||||
warehouseInventory.setBillType("1");
|
||||
warehouseInventory.setBusTypeKey("采购入库");
|
||||
warehouseInventory.setBusTypeValue("采购入库");
|
||||
warehouseInventory.setSourceBillNo(p.getSid());
|
||||
warehouseInventory.setSourceBillSid(p.getBillNo());
|
||||
warehouseInventoryService.saveInventory(warehouseInventory);
|
||||
baseMapper.insert(purchaseInventoryBillDetail);
|
||||
}
|
||||
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
|
||||
.eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00"));
|
||||
|
||||
@@ -18,6 +18,7 @@ public class WarehouseInfo extends BaseEntity {
|
||||
private String manager;//主管
|
||||
private String areaSid;//地区sid
|
||||
private String address;//地址
|
||||
private String lngAndLat;//经纬度
|
||||
private String longitude;//经度
|
||||
private String latitude;//纬度
|
||||
private String warehouseTypeKey;//仓库类型Key
|
||||
|
||||
@@ -32,6 +32,7 @@ public class WarehouseInfoDto implements Dto {
|
||||
private String manager;//主管
|
||||
private String areaSid;//地区sid
|
||||
private String address;//地址
|
||||
private String lngAndLat;//经纬度
|
||||
private String longitude;//经度
|
||||
private String latitude;//纬度
|
||||
private String warehouseTypeKey;//仓库类型Key
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.yxt.warehouse.biz.warehouseinfo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/8/29 11:52
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInfoMapQuery {
|
||||
private String name;//仓库名称
|
||||
@ApiModelProperty("菜单路由")
|
||||
private String menuUrl;
|
||||
@ApiModelProperty("组织全路径sid")
|
||||
private String orgPath;
|
||||
@ApiModelProperty("用户sid")
|
||||
private String userSid;
|
||||
private String orgLevelKey;//
|
||||
private int index;//下标
|
||||
}
|
||||
@@ -82,6 +82,48 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
|
||||
PagerVo<WarehouseInfoVo> p = PagerUtil.pageToVo(pagging, null);
|
||||
return rb.success().setData(p);
|
||||
}
|
||||
|
||||
public ResultBean<List<WarehouseInfo>> listQuery(WarehouseInfoMapQuery query) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
QueryWrapper<WarehouseInfo> 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("a.createBySid", query.getUserSid());
|
||||
// } else {
|
||||
// PagerVo<WarehouseInfo> p = new PagerVo<>();
|
||||
// return rb.success().setData(p);
|
||||
// }
|
||||
// } else {
|
||||
// PagerVo<WarehouseInfo> p = new PagerVo<>();
|
||||
// return rb.success().setData(p);
|
||||
// }
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getName())) {
|
||||
qw.like("name", query.getName());
|
||||
}
|
||||
List<WarehouseInfo> storeInfos = baseMapper.selectList(qw);
|
||||
for (WarehouseInfo storeInfo : storeInfos) {
|
||||
if(StringUtils.isNotBlank(storeInfo.getLngAndLat())){
|
||||
String []w=storeInfo.getLngAndLat().split(",");
|
||||
storeInfo.setLatitude(w[1]);
|
||||
storeInfo.setLongitude(w[0]);
|
||||
}
|
||||
}
|
||||
return rb.success().setData(storeInfos);
|
||||
}
|
||||
|
||||
public ResultBean<List<WarehouseInfo>> listAll(OrgPathQuery query) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
List<WarehouseInfoVo> pagging = baseMapper.listAll(query.getOrgPath());
|
||||
@@ -91,18 +133,18 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
|
||||
public ResultBean<String> saveOrUpdate(WarehouseInfoDto dto) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
String sid = "";
|
||||
if(StringUtils.isBlank(dto.getTelephone())){
|
||||
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getSid())) {
|
||||
sid = dto.getSid();
|
||||
WarehouseInfo wmsWarehouse = fetchBySid(dto.getSid());
|
||||
BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid");
|
||||
wmsWarehouse.setModifyTime(new Date());
|
||||
if(StringUtils.isNotBlank(dto.getLngAndLat())){
|
||||
String []w=dto.getLngAndLat().split(",");
|
||||
wmsWarehouse.setLatitude(w[1]);
|
||||
wmsWarehouse.setLongitude(w[0]);
|
||||
}
|
||||
baseMapper.updateById(wmsWarehouse);
|
||||
// for (WmsWarehouseExtendDto wmsWarehouseExtendDto : dto.getWmsWarehouseExtendDtos()) {
|
||||
// wmsWarehouseExtendDto.setWarehouseSid(wmsWarehouse.getSid());
|
||||
// }
|
||||
if(dto.getWmsWarehouseExtendDto()!=null){
|
||||
dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid());
|
||||
wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto());
|
||||
@@ -113,10 +155,12 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
|
||||
BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid");
|
||||
wmsWarehouse.setCreateTime(new DateTime());
|
||||
wmsWarehouse.setCreateBySid(dto.getUserSid());
|
||||
if(StringUtils.isNotBlank(dto.getLngAndLat())){
|
||||
String []w=dto.getLngAndLat().split(",");
|
||||
wmsWarehouse.setLatitude(w[1]);
|
||||
wmsWarehouse.setLongitude(w[0]);
|
||||
}
|
||||
baseMapper.insert(wmsWarehouse);
|
||||
// for (WmsWarehouseExtendDto wmsWarehouseExtendDto : dto.getWmsWarehouseExtendDtos()) {
|
||||
// wmsWarehouseExtendDto.setWarehouseSid(wmsWarehouse.getSid());
|
||||
// }
|
||||
if(dto.getWmsWarehouseExtendDto()!=null){
|
||||
dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid());
|
||||
wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto());
|
||||
|
||||
@@ -33,6 +33,7 @@ public class WarehouseInfoVo implements Vo {
|
||||
private String manager;//主管
|
||||
private String areaSid;//地区sid
|
||||
private String address;//地址
|
||||
private String lngAndLat;//经纬度
|
||||
private String longitude;//经度
|
||||
private String latitude;//纬度
|
||||
private String warehouseTypeKey;//仓库类型Key
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.yxt.warehouse.biz.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,68 @@ 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
|
||||
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerSid;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerName;
|
||||
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
|
||||
private String goodsID;
|
||||
@ApiModelProperty("商品基础信息sid")
|
||||
private String goodSpuSid;
|
||||
@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;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ 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 com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistory;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -18,8 +19,8 @@ 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);
|
||||
List<WarehouseInventoryRackVo> getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid);
|
||||
List<WarehouseInventoryRackVo> getRackCountBySid1(@Param("sid")String sid,@Param("orgSid") String orgSid);
|
||||
|
||||
WarehouseInventoryVo initialization(@Param("sid") String sid);
|
||||
|
||||
@@ -60,5 +61,6 @@ public interface WarehouseInventoryMapper extends BaseMapper<WarehouseInventory>
|
||||
GoodsCountVo selCountsBySkuSid(@Param("skuSid") String skuSid);
|
||||
List<AvailableCountVo> selAvailableBySkuSid(@Param("skuSid") String skuSid,@Param("orgSid") String orgSid);
|
||||
String selectNum(String billNo);
|
||||
List<WarehouseInventoryHistory> totalInventoryByOrgSid(@Param("orgSid") String orgSid);
|
||||
|
||||
}
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
a.goodsSkuSid = #{skuSid} and
|
||||
a.useOrgSid=#{orgSid}
|
||||
</select>
|
||||
<select id="getRackCountBySid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
|
||||
<select id="getRackCountBySid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryRackVo">
|
||||
SELECT
|
||||
b.rackName,
|
||||
b.rackCode,
|
||||
@@ -374,7 +374,7 @@
|
||||
a.goodsSpuSid = #{sid} and
|
||||
a.useOrgSid=#{orgSid}
|
||||
</select>
|
||||
<select id="getRackCountBySid1" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo">
|
||||
<select id="getRackCountBySid1" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryRackVo">
|
||||
SELECT
|
||||
b.rackName,
|
||||
b.rackCode,
|
||||
@@ -391,10 +391,39 @@
|
||||
a.useOrgSid=#{orgSid}
|
||||
</select>
|
||||
<select id="selectNum" resultType="java.lang.String">
|
||||
select RIGHT (billNo, 4)
|
||||
from purchase_inventory_bill_detail
|
||||
where billNo LIKE concat(#{billNo}, '%')
|
||||
order by billNo desc
|
||||
select RIGHT (goodsID, 4)
|
||||
from warehouse_inventory
|
||||
where goodsID LIKE concat(#{billNo}, '%')
|
||||
order by goodsID desc
|
||||
limit 1
|
||||
</select>
|
||||
<select id="totalInventoryByOrgSid"
|
||||
resultType="com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistory">
|
||||
SELECT
|
||||
batchNumber,
|
||||
manufacturerSid,
|
||||
manufacturerName,
|
||||
goodsID,
|
||||
goodsTypeSid,
|
||||
goodsTypeName,
|
||||
goodsBrandSid,
|
||||
goodsBrandName,
|
||||
goodSpuSid,
|
||||
goodsSpuName,
|
||||
goodsSkuSid,
|
||||
goodsSkuTitle,
|
||||
goodsSkuCode,
|
||||
goodsSkuOwnSpec,
|
||||
unit,
|
||||
count,
|
||||
warehouseSid,
|
||||
warehouseName,
|
||||
warehouseRackSid,
|
||||
warehouseRackCode,
|
||||
createOrgSid,
|
||||
useOrgSid
|
||||
FROM
|
||||
warehouse_inventory
|
||||
WHERE useOrgSid=#{orgSid}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventory;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/8/28 14:47
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryRackVo {
|
||||
|
||||
private String rackName;
|
||||
private String rackCode;
|
||||
private BigDecimal useCount;
|
||||
private BigDecimal count;
|
||||
private BigDecimal allocateCount;
|
||||
private BigDecimal freezeCount;
|
||||
|
||||
}
|
||||
@@ -14,6 +14,10 @@ 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.warehouseinventorybatch.WarehouseInventoryBatch;
|
||||
import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatchService;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistory;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -32,34 +36,36 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
WarehouseAnsBillDetailService warehouseAnsBillDetailService;
|
||||
@Autowired
|
||||
WarehouseInventoryRecordService warehouseInventoryRecordService;
|
||||
@Autowired
|
||||
WarehouseInventoryBatchService warehouseInventoryBatchService;
|
||||
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.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.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());
|
||||
}
|
||||
@@ -112,30 +118,30 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
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.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());
|
||||
}
|
||||
@@ -170,23 +176,35 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 入库
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public ResultBean<WarehouseInventory> warehousing(WarehouseInventoryDto dto) {
|
||||
public ResultBean<String> saveInventory(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);
|
||||
}
|
||||
return rb.success().setData(WarehouseInventory);
|
||||
WarehouseInventory warehouseInventory=new WarehouseInventory();
|
||||
BeanUtil.copyProperties(dto,warehouseInventory);
|
||||
baseMapper.insert(warehouseInventory);
|
||||
|
||||
WarehouseInventoryRecordDto recordDto=new WarehouseInventoryRecordDto();
|
||||
BeanUtil.copyProperties(dto,recordDto);
|
||||
recordDto.setInventorySid(warehouseInventory.getSid());
|
||||
recordDto.setBillType(dto.getBillType());
|
||||
recordDto.setBusTypeKey(dto.getBusTypeKey());
|
||||
recordDto.setBusTypeValue(dto.getBusTypeValue());
|
||||
recordDto.setBillObjSid(dto.getSupplierSid());
|
||||
recordDto.setBillObjName(dto.getSupplierSid());
|
||||
recordDto.setCurrentCount(dto.getCount());
|
||||
recordDto.setOperator(dto.getUserName());
|
||||
recordDto.setOperatorSid(dto.getUserSid());
|
||||
warehouseInventoryRecordService.saveRecord(recordDto);
|
||||
|
||||
WarehouseInventoryBatch batch=new WarehouseInventoryBatch();
|
||||
batch.setInventorySid(warehouseInventory.getSid());
|
||||
batch.setBatchNumber(dto.getBatch());
|
||||
batch.setSupplierName(dto.getSupplierName());
|
||||
batch.setSupplierSid(dto.getSupplierSid());
|
||||
batch.setBillNo(dto.getBillNo());
|
||||
batch.setBillSid(dto.getBillSid());
|
||||
batch.setBillDetailSid(dto.getDetailSid());
|
||||
warehouseInventoryBatchService.save(batch);
|
||||
return rb.success().setData("");
|
||||
}
|
||||
|
||||
|
||||
@@ -236,7 +254,7 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
|
||||
public ResultBean getRackCountBySid(WarehouseInventoryRackCountQuery query) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>();
|
||||
List<WarehouseInventoryRackVo> warehouseInventoryVos=new ArrayList<>();
|
||||
if (query.getType().equals("1")){
|
||||
warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid());
|
||||
}else if(query.getType().equals("2")){
|
||||
@@ -244,16 +262,7 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
}
|
||||
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) {
|
||||
ResultBean rb = ResultBean.fireFail();
|
||||
@@ -571,4 +580,9 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
|
||||
public String selectNum(String billNo){
|
||||
return baseMapper.selectNum(billNo);
|
||||
}
|
||||
|
||||
public List<WarehouseInventoryHistory> totalInventoryByOrgSid(String orgSid){
|
||||
List<WarehouseInventoryHistory> vo=baseMapper.totalInventoryByOrgSid(orgSid);
|
||||
return vo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ import java.util.Date;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "商品库存-批次属性", description = "商品库存-批次属性")
|
||||
@TableName("wms_inventory_batch")
|
||||
@TableName("warehouse_inventory_batch")
|
||||
public class WarehouseInventoryBatch extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.yxt.common.core.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/28 8:38
|
||||
*/
|
||||
@Data
|
||||
@TableName("warehouse_inventory")
|
||||
public class WarehouseInventoryHistory extends BaseEntity {
|
||||
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerSid;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerName;
|
||||
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
|
||||
private String goodsID;
|
||||
@ApiModelProperty("分类sid")
|
||||
private String goodsTypeSid;
|
||||
@ApiModelProperty("分类名")
|
||||
private String goodsTypeName;
|
||||
@ApiModelProperty("品牌sid")
|
||||
private String goodsBrandSid;
|
||||
@ApiModelProperty("品牌名")
|
||||
private String goodsBrandName;
|
||||
@ApiModelProperty("商品基础信息sid")
|
||||
private String goodSpuSid;
|
||||
@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("仓库sid")
|
||||
private String warehouseSid;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
@ApiModelProperty("库位sid")
|
||||
private String warehouseRackSid;
|
||||
@ApiModelProperty("库位编码")
|
||||
private String warehouseRackCode;
|
||||
@ApiModelProperty("创建组织sid")
|
||||
private String createOrgSid;
|
||||
@ApiModelProperty("使用组织sid")
|
||||
private String useOrgSid;
|
||||
private Date orderDate;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/26 13:38
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryHistoryDto implements Dto {
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerSid;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerName;
|
||||
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
|
||||
private String goodsID;
|
||||
@ApiModelProperty("分类sid")
|
||||
private String goodsTypeSid;
|
||||
@ApiModelProperty("分类名")
|
||||
private String goodsTypeName;
|
||||
@ApiModelProperty("品牌sid")
|
||||
private String goodsBrandSid;
|
||||
@ApiModelProperty("品牌名")
|
||||
private String goodsBrandName;
|
||||
@ApiModelProperty("商品基础信息sid")
|
||||
private String goodSpuSid;
|
||||
@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("仓库sid")
|
||||
private String warehouseSid;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
@ApiModelProperty("库位sid")
|
||||
private String warehouseRackSid;
|
||||
@ApiModelProperty("库位编码")
|
||||
private String warehouseRackCode;
|
||||
@ApiModelProperty("创建组织sid")
|
||||
private String createOrgSid;
|
||||
@ApiModelProperty("使用组织sid")
|
||||
private String useOrgSid;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
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 com.yxt.warehouse.biz.warehouseinventory.*;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/26 13:40
|
||||
*/
|
||||
@Mapper
|
||||
public interface WarehouseInventoryHistoryMapper extends BaseMapper<WarehouseInventoryHistory> {
|
||||
|
||||
IPage<WarehouseInventoryHistoryVo> listPage(IPage<WarehouseInventoryHistory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryHistory> qw);
|
||||
List<WarehouseInventoryHistoryVo> getListBySpuSid(@Param("spuSid")String spuSid);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistoryMapper">
|
||||
<!-- <where> ${ew.sqlSegment} </where>-->
|
||||
<!-- ${ew.customSqlSegment} -->
|
||||
|
||||
<select id="listPage" resultType="com.yxt.warehouse.biz.warehouseinventoryhistory.WarehouseInventoryHistoryVo">
|
||||
select
|
||||
a.goodsSpuName,
|
||||
a.goodsSpuSid,
|
||||
a.goodsSkuSid,
|
||||
a.goodsSkuCode,
|
||||
a.goodsSkuOwnSpec,
|
||||
a.unit,
|
||||
sum(a.count) as count ,
|
||||
a.batchNumber
|
||||
from warehouse_inventory_history 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.warehouseinventoryhistory.WarehouseInventoryHistoryVo">
|
||||
select
|
||||
a.goodsSpuName,
|
||||
a.goodsSkuTitle,
|
||||
a.goodsSpuSid,
|
||||
a.goodsSkuSid,
|
||||
a.goodsSkuCode,
|
||||
a.goodsSkuOwnSpec,
|
||||
a.unit,
|
||||
a.count as count ,
|
||||
a.batchNumber
|
||||
from warehouse_inventory_history a
|
||||
<where>
|
||||
a.goodsSpuSid=#{spuSid}
|
||||
</where>
|
||||
group by a.goodsSkuSid
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
import com.yxt.common.core.query.Query;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/26 13:37
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryHistoryQuery implements Query {
|
||||
|
||||
@ApiModelProperty("商品编码")
|
||||
private String goodsSkuCode;
|
||||
|
||||
@ApiModelProperty("仓库")
|
||||
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;
|
||||
|
||||
|
||||
|
||||
//供应商
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/8/29 16:55
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryHistoryScheduledVo {
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerSid;
|
||||
@ApiModelProperty("厂家")
|
||||
private String manufacturerName;
|
||||
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
|
||||
private String goodsID;
|
||||
@ApiModelProperty("分类sid")
|
||||
private String goodsTypeSid;
|
||||
@ApiModelProperty("分类名")
|
||||
private String goodsTypeName;
|
||||
@ApiModelProperty("品牌sid")
|
||||
private String goodsBrandSid;
|
||||
@ApiModelProperty("品牌名")
|
||||
private String goodsBrandName;
|
||||
@ApiModelProperty("商品基础信息sid")
|
||||
private String goodSpuSid;
|
||||
@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("仓库sid")
|
||||
private String warehouseSid;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
@ApiModelProperty("库位sid")
|
||||
private String warehouseRackSid;
|
||||
@ApiModelProperty("库位编码")
|
||||
private String warehouseRackCode;
|
||||
@ApiModelProperty("创建组织sid")
|
||||
private String createOrgSid;
|
||||
@ApiModelProperty("使用组织sid")
|
||||
private String useOrgSid;
|
||||
private Date orderDate=new Date();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
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;
|
||||
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.warehouseansbilldetail.WarehouseAnsBillDetailService;
|
||||
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo;
|
||||
import com.yxt.warehouse.biz.warehouseinventory.*;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/26 13:40
|
||||
*/
|
||||
@Service
|
||||
public class WarehouseInventoryHistoryService extends MybatisBaseService<WarehouseInventoryHistoryMapper, WarehouseInventoryHistory> {
|
||||
|
||||
@Autowired
|
||||
WarehouseInventoryService warehouseInventoryService;
|
||||
@Autowired
|
||||
WarehouseInventoryHistoryService warehouseInventoryHistoryService;
|
||||
public ResultBean<PagerVo<WarehouseInventoryHistoryVo>> listPage(PagerQuery<WarehouseInventoryHistoryQuery> pq) {
|
||||
ResultBean rb =new ResultBean().fail();
|
||||
WarehouseInventoryHistoryQuery query = pq.getParams();
|
||||
QueryWrapper<WarehouseInventoryHistory> 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<WarehouseInventoryHistory> page = PagerUtil.queryToPage(pq);
|
||||
IPage<WarehouseInventoryHistoryVo> pagging = baseMapper.listPage(page, qw);
|
||||
for (WarehouseInventoryHistoryVo record : pagging.getRecords()) {
|
||||
List<WarehouseInventoryHistoryVo> vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid());
|
||||
record.setList(vos);
|
||||
}
|
||||
PagerVo<WarehouseInventoryHistoryVo> p = PagerUtil.pageToVo(pagging, null);
|
||||
return rb.success().setData(p);
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 0 0 * * ? ")
|
||||
public void saveHistory(){
|
||||
List<WarehouseInventory> warehouseOrgs=warehouseInventoryService.list(new QueryWrapper<WarehouseInventory>().groupBy("useOrgSid"));
|
||||
List<WarehouseInventoryHistory> warehouseInventoryHistories=new ArrayList<>();
|
||||
for (WarehouseInventory warehouseOrg : warehouseOrgs) {
|
||||
List<WarehouseInventoryHistory> warehouseInventoryHistories1=warehouseInventoryService.totalInventoryByOrgSid(warehouseOrg.getUseOrgSid());
|
||||
warehouseInventoryHistories.addAll(warehouseInventoryHistories1);
|
||||
}
|
||||
if(warehouseInventoryHistories.size()!=0){
|
||||
warehouseInventoryHistoryService.saveBatch(warehouseInventoryHistories);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryhistory;
|
||||
|
||||
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.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/2/26 13:37
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryHistoryVo implements Vo {
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@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;
|
||||
|
||||
private Date orderDate;
|
||||
private List<WarehouseInventoryHistoryVo> list=new ArrayList<>();
|
||||
|
||||
}
|
||||
@@ -100,12 +100,12 @@ public class WarehouseInventoryRecord extends BaseEntity {
|
||||
private String warehouseRackCode; // 库位编号
|
||||
@ApiModelProperty("入库单价")
|
||||
private BigDecimal cost;
|
||||
@ApiModelProperty("税率")
|
||||
private BigDecimal tax;
|
||||
@ApiModelProperty("入库金额")
|
||||
private BigDecimal amount;
|
||||
@ApiModelProperty("经办人sid")
|
||||
private String handlerSid; // 库位sid
|
||||
@ApiModelProperty("经办人")
|
||||
private String handlerName; // 库位编号
|
||||
|
||||
|
||||
@ApiModelProperty("操作人sid")
|
||||
private String operatorSid; // 库位sid
|
||||
@ApiModelProperty("操作人")
|
||||
private String operator; // 库位编号
|
||||
private String useOrgSid;
|
||||
private String createOrgSid;
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* Project: wms(yxt) <br/>
|
||||
* File: WmsInventoryRecordDto.java <br/>
|
||||
@@ -50,67 +52,61 @@ public class WarehouseInventoryRecordDto implements Dto {
|
||||
|
||||
private String sid; // sid
|
||||
|
||||
@ApiModelProperty("库存sid")
|
||||
@ApiModelProperty("库存sid")
|
||||
private String inventorySid; // 库存sid
|
||||
@ApiModelProperty("创建人sid")
|
||||
private String createBySid; // 商品ID
|
||||
@ApiModelProperty("商品ID")
|
||||
@ApiModelProperty("商品ID")
|
||||
private String goodsID; // 商品ID
|
||||
@ApiModelProperty("来源单sid(业务单sid)")
|
||||
@ApiModelProperty("来源单sid(业务单sid)")
|
||||
private String sourceBillSid; // 来源单sid(业务单sid)
|
||||
@ApiModelProperty("来源单据编号")
|
||||
@ApiModelProperty("来源单据编号")
|
||||
private String billNo; // 来源单据编号
|
||||
@ApiModelProperty("单据类型(1入库、0出库)")
|
||||
@ApiModelProperty("单据类型(1入库、0出库)")
|
||||
private String billType; // 单据类型(1入库、0出库)
|
||||
@ApiModelProperty("业务类型key(采购入库、维修出入库、销售出入库等)")
|
||||
@ApiModelProperty("业务类型key(采购入库、维修出入库、销售出入库等)")
|
||||
private String busTypeKey; // 业务类型key(采购入库、维修出入库、销售出入库等)
|
||||
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
|
||||
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
|
||||
private String busTypeValue; // 业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)
|
||||
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
|
||||
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
|
||||
private String billObjSid; // 客户/供应商sid,出库是为客户,入库时为供应商
|
||||
@ApiModelProperty("客户/供应商名称")
|
||||
@ApiModelProperty("客户/供应商名称")
|
||||
private String billObjName; // 客户/供应商名称
|
||||
@ApiModelProperty("批次号")
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber; // 批次号
|
||||
@ApiModelProperty("商品基础信息Sid")
|
||||
@ApiModelProperty("商品基础信息Sid")
|
||||
private String goodSpuSid; // 商品基础信息Sid
|
||||
@ApiModelProperty("商品名称")
|
||||
@ApiModelProperty("商品名称")
|
||||
private String goodsSpuName; // 商品名称
|
||||
@ApiModelProperty("商品Skusid")
|
||||
@ApiModelProperty("商品Skusid")
|
||||
private String goodsSkuSid; // 商品Skusid
|
||||
@ApiModelProperty("商品Sku名称")
|
||||
@ApiModelProperty("商品Sku名称")
|
||||
private String goodsSkuTitle; // 商品Sku名称
|
||||
@ApiModelProperty("商品编码(图号)")
|
||||
@ApiModelProperty("商品编码(图号)")
|
||||
private String goodsSkuCode; // 商品编码(图号)
|
||||
@ApiModelProperty("规格型号")
|
||||
@ApiModelProperty("规格型号")
|
||||
private String goodsSkuOwnSpec; // 规格型号
|
||||
@ApiModelProperty("出入库后的库存量")
|
||||
private String currentCount; // 出入库后的库存量
|
||||
@ApiModelProperty("计量单位")
|
||||
@ApiModelProperty("出入库后的库存量")
|
||||
private BigDecimal currentCount; // 出入库后的库存量
|
||||
@ApiModelProperty("计量单位")
|
||||
private String unit; // 计量单位
|
||||
@ApiModelProperty("数量")
|
||||
private String count; // 数量
|
||||
@ApiModelProperty("仓库sid")
|
||||
@ApiModelProperty("数量")
|
||||
private BigDecimal count; // 数量
|
||||
@ApiModelProperty("仓库sid")
|
||||
private String warehouseSid; // 仓库sid
|
||||
@ApiModelProperty("仓库名称")
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName; // 仓库名称
|
||||
@ApiModelProperty("库位sid")
|
||||
@ApiModelProperty("库位sid")
|
||||
private String warehouseRackSid; // 库位sid
|
||||
@ApiModelProperty("库位编号")
|
||||
@ApiModelProperty("库位编号")
|
||||
private String warehouseRackCode; // 库位编号
|
||||
@ApiModelProperty("入库单价")
|
||||
private String cost;
|
||||
@ApiModelProperty("税率")
|
||||
private String tax;
|
||||
@ApiModelProperty("入库金额")
|
||||
private String amount;
|
||||
@ApiModelProperty("经办人sid")
|
||||
private String handlerSid; // 库位sid
|
||||
@ApiModelProperty("经办人")
|
||||
private String handlerName; // 库位编号
|
||||
@ApiModelProperty("创建组织sid")
|
||||
private String createOrgSid;
|
||||
@ApiModelProperty("使用组织sid")
|
||||
private BigDecimal cost;
|
||||
|
||||
|
||||
@ApiModelProperty("操作人sid")
|
||||
private String operatorSid; // 库位sid
|
||||
@ApiModelProperty("操作人")
|
||||
private String operator; // 库位编号
|
||||
private String useOrgSid;
|
||||
private String createOrgSid;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.yxt.warehouse.biz.warehouseinventoryrecord;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @description: 库存出入库记录
|
||||
* @author: dimengzhe
|
||||
@@ -15,16 +17,27 @@ public class WarehouseInventoryRecordListVo {
|
||||
private String billNo;
|
||||
@ApiModelProperty("单据类型")
|
||||
private String billType;
|
||||
private String billTypeValue;
|
||||
@ApiModelProperty("发生时间")
|
||||
private String createTime;
|
||||
@ApiModelProperty("业务类型")
|
||||
private String busTypeValue;
|
||||
@ApiModelProperty("客户/供应商")
|
||||
private String billObjName;
|
||||
@ApiModelProperty("批次号")
|
||||
private String batchNumber;
|
||||
@ApiModelProperty("数量")
|
||||
private String count;
|
||||
@ApiModelProperty("出入库后的库存量")
|
||||
private String currentCount;
|
||||
private BigDecimal currentCount;
|
||||
@ApiModelProperty("操作员")
|
||||
private String operator;
|
||||
@ApiModelProperty("单价")
|
||||
private BigDecimal price;
|
||||
@ApiModelProperty("spuname")
|
||||
private String goodsSpuName;
|
||||
@ApiModelProperty("skutitle")
|
||||
private String goodsTitle;
|
||||
@ApiModelProperty("规格型号")
|
||||
private String goodsSkuOwnSpec;
|
||||
@ApiModelProperty("发生成本")
|
||||
private BigDecimal costIncurred=new BigDecimal(0);
|
||||
@ApiModelProperty("库存成本")
|
||||
private BigDecimal inventoryCost=new BigDecimal(0);
|
||||
}
|
||||
|
||||
@@ -75,6 +75,7 @@ public interface WarehouseInventoryRecordMapper extends BaseMapper<WarehouseInve
|
||||
IPage<WarehouseInventoryDetailsRecordVo> inventoryDetailsRecord(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw);
|
||||
|
||||
List<WarehouseInventoryRecordListVo> getWarehouseInventoryRecordList(String sid);
|
||||
IPage<WarehouseInventoryRecordListVo> getWarehouseInventoryRecord(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw);
|
||||
|
||||
IPage<WarehouseInventoryRecordsVo> listPage(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw);
|
||||
|
||||
|
||||
@@ -171,4 +171,19 @@
|
||||
WHERE
|
||||
r.sourceBillSid = #{sid} and r.goodsSkuCode = #{goodsSkuCode}
|
||||
</select>
|
||||
<select id="getWarehouseInventoryRecord" resultType="com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordListVo">
|
||||
select
|
||||
a.*,
|
||||
case a.billType
|
||||
when 0 then '出库'
|
||||
when 1 then '入库'
|
||||
end as billTypeValue,
|
||||
a.price * a.count as costIncurred,
|
||||
a.price * a.currentCount as inventoryCost
|
||||
from warehouse_inventory_record a
|
||||
LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid
|
||||
<where>
|
||||
${ew.sqlSegment}
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.yxt.warehouse.biz.warehouseinventoryrecord;
|
||||
|
||||
import com.yxt.common.core.query.Query;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author wangpengfei
|
||||
* @date 2024/8/28 16:45
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseInventoryRecordQuery1 implements Query {
|
||||
private String billSid;
|
||||
private String goodsSpuName;
|
||||
private String goodsSkuTitle;
|
||||
private String spec;
|
||||
private String warehouseName;
|
||||
private String billType;
|
||||
private String startTime;
|
||||
private String endTime;
|
||||
|
||||
private String orgLevelKey;//权限等级
|
||||
@ApiModelProperty("菜单路由")
|
||||
private String menuUrl;
|
||||
@ApiModelProperty("组织全路径sid")
|
||||
private String orgPath;
|
||||
@ApiModelProperty("用户sid")
|
||||
private String userSid;
|
||||
private int index;
|
||||
}
|
||||
@@ -28,6 +28,7 @@ package com.yxt.warehouse.biz.warehouseinventoryrecord;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sun.xml.bind.v2.TODO;
|
||||
import com.yxt.common.base.service.MybatisBaseService;
|
||||
import com.yxt.common.base.utils.PagerUtil;
|
||||
import com.yxt.common.core.query.PagerQuery;
|
||||
@@ -35,6 +36,7 @@ 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.warehouseinventory.WarehouseInventoryVo;
|
||||
import com.yxt.warehouse.biz.warehouseinventoryrecord.report.*;
|
||||
import com.yxt.warehouse.biz.warehouseoldinventory.WarehouseOldInventoryDetailsListVo;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -216,7 +218,58 @@ public class WarehouseInventoryRecordService extends MybatisBaseService<Warehous
|
||||
list.removeAll(Collections.singleton(null));
|
||||
return rb.success().setData(list);
|
||||
}
|
||||
|
||||
public ResultBean<PagerVo<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecord(PagerQuery<WarehouseInventoryRecordQuery1> pq) {
|
||||
ResultBean<PagerVo<WarehouseInventoryRecordListVo>> rb = ResultBean.fireFail();
|
||||
WarehouseInventoryRecordQuery1 query = pq.getParams();
|
||||
QueryWrapper<WarehouseInventoryRecord> qw = new QueryWrapper<>();
|
||||
if (com.yxt.common.base.utils.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<WarehouseInventoryRecordListVo> p = new PagerVo<>();
|
||||
return rb.success().setData(p);
|
||||
}
|
||||
} else {
|
||||
PagerVo<WarehouseInventoryRecordListVo> p = new PagerVo<>();
|
||||
return rb.success().setData(p);
|
||||
}
|
||||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getGoodsSkuTitle())) {
|
||||
qw.like("r.busTypeValue", query.getGoodsSkuTitle());
|
||||
}
|
||||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getGoodsSpuName())) {
|
||||
qw.like("r.goodsSpuName", query.getGoodsSpuName());
|
||||
}
|
||||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getWarehouseName())) {
|
||||
qw.like("r.warehouseName", query.getWarehouseName());
|
||||
}
|
||||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getSpec())) {
|
||||
qw.like("r.goodsSkuCode", query.getSpec());
|
||||
}
|
||||
if (com.yxt.common.base.utils.StringUtils.isNotBlank(query.getBillType())) {
|
||||
qw.like("r.goodsSkuCode", query.getBillType());
|
||||
}
|
||||
qw.apply(com.yxt.common.base.utils.StringUtils.isNotBlank(query.getStartTime()), "date_format (wab.createTime,'%Y-%m-%d') >= date_format('" + query.getStartTime() + "','%Y-%m-%d')").
|
||||
apply(com.yxt.common.base.utils.StringUtils.isNotBlank(query.getEndTime()), "date_format (wab.createTime,'%Y-%m-%d') <= date_format('" + query.getEndTime() + "','%Y-%m-%d')"
|
||||
);
|
||||
qw.eq("sourceBillSid",query.getBillSid());
|
||||
IPage<WarehouseInventoryRecord> page = PagerUtil.queryToPage(pq);
|
||||
IPage<WarehouseInventoryRecordListVo> pagging = baseMapper.getWarehouseInventoryRecord(page, qw);
|
||||
PagerVo<WarehouseInventoryRecordListVo> p = PagerUtil.pageToVo(pagging, null);
|
||||
return rb.success().setData(p);
|
||||
}
|
||||
public PagerVo<WarehouseInventoryRecordsVo> listPage(PagerQuery<WarehouseInventoryRecordsQuery> pagerQuery) {
|
||||
WarehouseInventoryRecordsQuery query = pagerQuery.getParams();
|
||||
QueryWrapper<WarehouseInventoryRecord> qw = new QueryWrapper<>();
|
||||
@@ -326,18 +379,8 @@ public class WarehouseInventoryRecordService extends MybatisBaseService<Warehous
|
||||
}
|
||||
|
||||
public void saveRecord(WarehouseInventoryRecordDto dto) {
|
||||
WarehouseInventory WarehouseInventory = new WarehouseInventory();
|
||||
BeanUtil.copyProperties(dto,WarehouseInventory,"id","sid");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
try {
|
||||
WarehouseInventory.setFirstInDate(sdf.parse(sdf.format(new Date())));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
warehouseInventoryService.insert(WarehouseInventory);
|
||||
WarehouseInventoryRecord inventoryRecord = new WarehouseInventoryRecord();
|
||||
BeanUtil.copyProperties(dto,inventoryRecord,"id","sid");
|
||||
inventoryRecord.setInventorySid(WarehouseInventory.getSid());
|
||||
baseMapper.insert(inventoryRecord);
|
||||
}
|
||||
|
||||
|
||||
@@ -320,13 +320,24 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
|
||||
for (String s : dto.getSid().split(",")) {
|
||||
List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",dto.getSid()));
|
||||
for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) {
|
||||
WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid());
|
||||
WarehouseInventory warehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid());
|
||||
//减去出库的数量
|
||||
WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(warehouseOutLocation.getCount()));
|
||||
WarehouseInventory.setAllocateCount(WarehouseInventory.getAllocateCount().subtract(warehouseOutLocation.getCount()));
|
||||
warehouseInventoryService.updateById(WarehouseInventory);
|
||||
warehouseInventory.setCount(warehouseInventory.getCount().subtract(warehouseOutLocation.getCount()));
|
||||
warehouseInventory.setAllocateCount(warehouseInventory.getAllocateCount().subtract(warehouseOutLocation.getCount()));
|
||||
warehouseInventoryService.updateById(warehouseInventory);
|
||||
WarehouseInventoryRecordDto recordDto=new WarehouseInventoryRecordDto();
|
||||
recordDto.setCost(warehouseInventory.getCost());
|
||||
recordDto.setCount(warehouseOutLocation.getCount());
|
||||
recordDto.setBillObjSid("");
|
||||
recordDto.setBillObjName("");
|
||||
recordDto.setOperator(dto.getUserName());
|
||||
recordDto.setOperatorSid(dto.getUserSid());
|
||||
recordDto.setUseOrgSid(dto.getUseOrgSid());
|
||||
recordDto.setCreateOrgSid(dto.getCreateOrgSid());
|
||||
recordDto.setBusTypeValue("销售出库");
|
||||
recordDto.setBusTypeKey("销售出库");
|
||||
saveWarehouseInventory(dto.getSid(),recordDto);
|
||||
}
|
||||
saveWarehouseInventory(dto.getSid());
|
||||
OperationRecordDto dto1 = new OperationRecordDto();
|
||||
dto1.setBillSid(dto.getSid());
|
||||
dto1.setUserSid(dto.getUserSid());
|
||||
@@ -343,29 +354,39 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
|
||||
return rb.success();
|
||||
}
|
||||
|
||||
public void saveWarehouseInventory(String sid) {
|
||||
public void saveWarehouseInventory(String sid,WarehouseInventoryRecordDto dto) {
|
||||
WarehouseOutBill WarehouseOutBill = fetchBySid(sid);
|
||||
List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",sid));
|
||||
for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) {
|
||||
WarehouseInventory warehouseInventory=warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid",warehouseOutLocation.getInventorySid()));
|
||||
WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto();
|
||||
WarehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid());
|
||||
WarehouseInventoryRecordDto.setGoodsID(warehouseInventory.getGoodsID());
|
||||
WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid());
|
||||
WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo());
|
||||
WarehouseInventoryRecordDto.setBillType("0");
|
||||
WarehouseInventoryRecordDto.setBatchNumber(warehouseInventory.getBatchNumber());
|
||||
WarehouseInventoryRecordDto.setGoodSpuSid(warehouseInventory.getGoodSpuSid());
|
||||
WarehouseInventoryRecordDto.setGoodsSpuName(warehouseOutLocation.getGoodsSpuName());
|
||||
WarehouseInventoryRecordDto.setGoodsSkuSid(warehouseOutLocation.getGoodsSkuSid());
|
||||
WarehouseInventoryRecordDto.setGoodsSkuCode(warehouseOutLocation.getGoodsSkuCode());
|
||||
WarehouseInventoryRecordDto.setUnit(warehouseInventory.getUnit());
|
||||
WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(warehouseInventory.getCount().toString()) ? new BigDecimal(warehouseInventory.getCount().toString()).toString() : BigDecimal.ZERO.toString());
|
||||
WarehouseInventoryRecordDto.setWarehouseSid(warehouseOutLocation.getWarehouseSid());
|
||||
WarehouseInventoryRecordDto.setWarehouseName(warehouseInventory.getWarehouseName());
|
||||
WarehouseInventoryRecordDto.setWarehouseRackSid(warehouseOutLocation.getRackSid());
|
||||
WarehouseInventoryRecordDto.setWarehouseRackCode(warehouseOutLocation.getRackCode());
|
||||
warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto);
|
||||
WarehouseInventoryRecordDto warehouseInventoryRecordDto = new WarehouseInventoryRecordDto();
|
||||
warehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid());
|
||||
warehouseInventoryRecordDto.setGoodsID(warehouseInventory.getGoodsID());
|
||||
warehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid());
|
||||
warehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo());
|
||||
warehouseInventoryRecordDto.setBillType("0");
|
||||
warehouseInventoryRecordDto.setBusTypeKey(dto.getBusTypeKey());
|
||||
warehouseInventoryRecordDto.setBusTypeValue(dto.getBusTypeValue());
|
||||
warehouseInventoryRecordDto.setBillObjName(dto.getBillObjName());
|
||||
warehouseInventoryRecordDto.setBillObjSid(dto.getBillObjSid());
|
||||
warehouseInventoryRecordDto.setBatchNumber(warehouseInventory.getBatchNumber());
|
||||
warehouseInventoryRecordDto.setGoodSpuSid(warehouseInventory.getGoodSpuSid());
|
||||
warehouseInventoryRecordDto.setGoodsSpuName(warehouseOutLocation.getGoodsSpuName());
|
||||
warehouseInventoryRecordDto.setGoodsSkuSid(warehouseOutLocation.getGoodsSkuSid());
|
||||
warehouseInventoryRecordDto.setGoodsSkuCode(warehouseOutLocation.getGoodsSkuCode());
|
||||
warehouseInventoryRecordDto.setUnit(warehouseInventory.getUnit());
|
||||
warehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(warehouseInventory.getCount().toString()) ? new BigDecimal(warehouseInventory.getCount().toString()) : BigDecimal.ZERO);
|
||||
warehouseInventoryRecordDto.setCount(dto.getCount());
|
||||
warehouseInventoryRecordDto.setWarehouseSid(warehouseOutLocation.getWarehouseSid());
|
||||
warehouseInventoryRecordDto.setWarehouseName(warehouseInventory.getWarehouseName());
|
||||
warehouseInventoryRecordDto.setWarehouseRackSid(warehouseOutLocation.getRackSid());
|
||||
warehouseInventoryRecordDto.setWarehouseRackCode(warehouseOutLocation.getRackCode());
|
||||
warehouseInventoryRecordDto.setCost(dto.getCost());
|
||||
warehouseInventoryRecordDto.setOperator(dto.getOperator());
|
||||
warehouseInventoryRecordDto.setOperatorSid(dto.getOperatorSid());
|
||||
warehouseInventoryRecordDto.setUseOrgSid(dto.getUseOrgSid());
|
||||
warehouseInventoryRecordDto.setCreateOrgSid(dto.getCreateOrgSid());
|
||||
warehouseInventoryRecordService.saveOrUpdateDto(warehouseInventoryRecordDto);
|
||||
}
|
||||
}
|
||||
public ResultBean getRemarks(String sid) {
|
||||
|
||||
Reference in New Issue
Block a user