wangpengfei 10 months ago
parent
commit
2d01a8b31a
  1. 4
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInfoRest.java
  2. 35
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryHistoryRest.java
  3. 5
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRecordRest.java
  4. 6
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java
  5. 3
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillMapper.xml
  6. 71
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java
  7. 133
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java
  8. 1
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfo.java
  9. 1
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoDto.java
  10. 21
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoMapQuery.java
  11. 60
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoService.java
  12. 1
      src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoVo.java
  13. 93
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java
  14. 6
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java
  15. 41
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml
  16. 21
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackVo.java
  17. 164
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java
  18. 2
      src/main/java/com/yxt/warehouse/biz/warehouseinventorybatch/WarehouseInventoryBatch.java
  19. 65
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistory.java
  20. 61
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryDto.java
  21. 22
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryMapper.java
  22. 42
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryMapper.xml
  23. 42
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryQuery.java
  24. 61
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryScheduledVo.java
  25. 106
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryService.java
  26. 40
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryVo.java
  27. 16
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecord.java
  28. 28
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordDto.java
  29. 23
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordListVo.java
  30. 1
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordMapper.java
  31. 15
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordMapper.xml
  32. 30
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordQuery1.java
  33. 65
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordService.java
  34. 69
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java

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

@ -33,6 +33,10 @@ public class WarehouseInfoRest {
public ResultBean<PagerVo<WarehouseInfoVo>> listPage(@RequestBody PagerQuery<WarehouseInfoQuery> pq) { public ResultBean<PagerVo<WarehouseInfoVo>> listPage(@RequestBody PagerQuery<WarehouseInfoQuery> pq) {
return wmsWarehouseService.listPage(pq); return wmsWarehouseService.listPage(pq);
} }
@PostMapping("/list")
public ResultBean<List<WarehouseInfo>> list(@RequestBody WarehouseInfoMapQuery query) {
return wmsWarehouseService.listQuery(query);
}
@ApiOperation("查询所有的仓库") @ApiOperation("查询所有的仓库")
@PostMapping("/listAll") @PostMapping("/listAll")
public ResultBean<List<WarehouseInfo>> listAll(@RequestBody OrgPathQuery query) { public ResultBean<List<WarehouseInfo>> listAll(@RequestBody OrgPathQuery query) {

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

@ -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);
}
}

5
src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRecordRest.java

@ -144,6 +144,11 @@ public class WarehouseInventoryRecordRest {
ResultBean<List<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecordList(@RequestParam("sid")String sid){ ResultBean<List<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecordList(@RequestParam("sid")String sid){
return warehouseInventoryRecordService.getWarehouseInventoryRecordList(sid); return warehouseInventoryRecordService.getWarehouseInventoryRecordList(sid);
} }
@ApiOperation("库存出入库记录")
@PostMapping("/getWarehouseInventoryRecord")
ResultBean<PagerVo<WarehouseInventoryRecordListVo>> getWarehouseInventoryRecord(@RequestBody PagerQuery<WarehouseInventoryRecordQuery1> pq){
return warehouseInventoryRecordService.getWarehouseInventoryRecord(pq);
}
@ApiOperation("出入库查询") @ApiOperation("出入库查询")
@PostMapping("/pageList") @PostMapping("/pageList")

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

@ -57,11 +57,7 @@ public class WarehouseInventoryRest {
ResultBean getRackCountBySid(@RequestBody WarehouseInventoryRackCountQuery query) { ResultBean getRackCountBySid(@RequestBody WarehouseInventoryRackCountQuery query) {
return WarehouseInventoryService.getRackCountBySid(query); return WarehouseInventoryService.getRackCountBySid(query);
} }
@ApiOperation("根据商品查询库存变化")
@PostMapping("/getInventoryRecordBySid")
ResultBean getInventoryRecordBySid(@RequestBody WarehouseInventoryRackCountQuery query) {
return WarehouseInventoryService.getInventoryRecordBySid(query);
}
@ApiOperation("新增") @ApiOperation("新增")
@PostMapping("/saveWarehouseInventory") @PostMapping("/saveWarehouseInventory")
ResultBean<String> saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) { ResultBean<String> saveWarehouseInventory(@RequestBody WarehouseInventorySaveDto dto) {

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

@ -2,9 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <mapper namespace="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillMapper">
<select id="listPage" resultType="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo"> <select id="listPage" resultType="com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo">
select wrb.* select DISTINCT wrb.*
from purchase_inventory_bill wrb from purchase_inventory_bill wrb
LEFT JOIN ss_user.sys_organization as s ON wrb.useOrgSid = s.sid 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> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>

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

@ -127,13 +127,13 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
qw.like("wrb.waybillNumber", query.getWaybillNumber()); qw.like("wrb.waybillNumber", query.getWaybillNumber());
} }
if (StringUtils.isNotBlank(query.getGoodsSkuSid())) { if (StringUtils.isNotBlank(query.getGoodsSkuSid())) {
qw.like("wrb.goodsSkuSid", query.getGoodsSkuSid()); qw.eq("a.goodsSkuSid", query.getGoodsSkuSid());
} }
if (StringUtils.isNotBlank(query.getSupplierName())) { if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("wrb.supplierName", query.getSupplierName()); qw.like("wrb.supplierName", query.getSupplierName());
} }
if (StringUtils.isNotBlank(query.getBillType())) { if (StringUtils.isNotBlank(query.getBillType())) {
qw.like("wrb.billType", query.getBillType()); qw.eq("wrb.billType", query.getBillType());
} }
IPage<PurchaseInventoryBill> page = PagerUtil.queryToPage(pq); IPage<PurchaseInventoryBill> page = PagerUtil.queryToPage(pq);
IPage<PurchaseInventoryBillPageVo> pagging = baseMapper.listPage(page, qw); IPage<PurchaseInventoryBillPageVo> pagging = baseMapper.listPage(page, qw);
@ -150,11 +150,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
c=c.add(purchaseInventoryBillDetailDto2.getCount()); c=c.add(purchaseInventoryBillDetailDto2.getCount());
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice()); total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
} }
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill(); PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
String sid = wmsReceiptBill.getSid(); String sid = purchaseInventoryBill.getSid();
BeanUtil.copyProperties(dto2, wmsReceiptBill, "sid"); BeanUtil.copyProperties(dto2, purchaseInventoryBill, "sid");
wmsReceiptBill.setBillState("1"); purchaseInventoryBill.setBillState("1");
wmsReceiptBill.setTotal(total); purchaseInventoryBill.setTotal(total);
//生成单据编号 //生成单据编号
String billNo = ""; String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
@ -165,10 +165,10 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
} else { } else {
billNo = Rule.getBillNo(billNo, 0); billNo = Rule.getBillNo(billNo, 0);
} }
wmsReceiptBill.setBillNo(billNo); purchaseInventoryBill.setBillNo(billNo);
wmsReceiptBill.setTotalQuantity(c); purchaseInventoryBill.setTotalQuantity(c);
wmsReceiptBill.setBillType("0"); purchaseInventoryBill.setBillType("0");
baseMapper.insert(wmsReceiptBill); baseMapper.insert(purchaseInventoryBill);
List<PurchaseInventoryBillDetailDto2> list = dto2.getList(); List<PurchaseInventoryBillDetailDto2> list = dto2.getList();
list.removeAll(Collections.singleton(null)); list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) { if (!list.isEmpty()) {
@ -295,15 +295,15 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
c=c.add(purchaseInventoryBillDetailDto2.getCount()); c=c.add(purchaseInventoryBillDetailDto2.getCount());
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice()); total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
} }
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill(); PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
String sid = wmsReceiptBill.getSid(); String sid = purchaseInventoryBill.getSid();
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid"); BeanUtil.copyProperties(dto, purchaseInventoryBill, "sid");
wmsReceiptBill.setBillState("1"); purchaseInventoryBill.setBillState("1");
wmsReceiptBill.setBillType("1"); purchaseInventoryBill.setBillType("1");
wmsReceiptBill.setOperatorName(dto.getUserName()); purchaseInventoryBill.setOperatorName(dto.getUserName());
wmsReceiptBill.setOperatorSid(dto.getUserSid()); purchaseInventoryBill.setOperatorSid(dto.getUserSid());
wmsReceiptBill.setOperatorTime(new Date()); purchaseInventoryBill.setOperatorTime(new Date());
wmsReceiptBill.setTotal(total); purchaseInventoryBill.setTotal(total);
//生成单据编号 //生成单据编号
String billNo = ""; String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
@ -314,13 +314,13 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
} else { } else {
billNo = Rule.getBillNo(billNo, 0); billNo = Rule.getBillNo(billNo, 0);
} }
wmsReceiptBill.setBillNo(billNo); purchaseInventoryBill.setBillNo(billNo);
wmsReceiptBill.setTotalQuantity(c); purchaseInventoryBill.setTotalQuantity(c);
baseMapper.insert(wmsReceiptBill); baseMapper.insert(purchaseInventoryBill);
List<PurchaseInventoryBillDetailDto2> list = dto.getList(); List<PurchaseInventoryBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null)); list.removeAll(Collections.singleton(null));
for (PurchaseInventoryBillDetailDto2 dto2 : list) { for (PurchaseInventoryBillDetailDto2 dto2 : list) {
dto2.setSourceBillSid(wmsReceiptBill.getSid()); dto2.setSourceBillSid(purchaseInventoryBill.getSid());
purchaseInventoryBillDetailService.saveOrUpdate(dto2); purchaseInventoryBillDetailService.saveOrUpdate(dto2);
WarehouseInventory warehouseInventory=new WarehouseInventory(); WarehouseInventory warehouseInventory=new WarehouseInventory();
warehouseInventory.setBatchNumber(dto2.getBatch()); warehouseInventory.setBatchNumber(dto2.getBatch());
@ -410,6 +410,7 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice()); total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
} }
PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill(); PurchaseInventoryBill purchaseInventoryBill = new PurchaseInventoryBill();
BeanUtil.copyProperties(ansBill,purchaseInventoryBill,"id","sid");
String sid = purchaseInventoryBill.getSid(); String sid = purchaseInventoryBill.getSid();
purchaseInventoryBill.setSourceBillSid(""); purchaseInventoryBill.setSourceBillSid("");
purchaseInventoryBill.setSourceBillNo(""); purchaseInventoryBill.setSourceBillNo("");
@ -426,19 +427,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
purchaseInventoryBill.setBillState("1"); purchaseInventoryBill.setBillState("1");
purchaseInventoryBill.setBillType("0"); purchaseInventoryBill.setBillType("0");
purchaseInventoryBill.setTotal(total); purchaseInventoryBill.setTotal(total);
purchaseInventoryBill.setSupplierSid(ansBill.getSupplierSid());
purchaseInventoryBill.setSupplierName(ansBill.getSupplierName());
purchaseInventoryBill.setCarrier(ansBill.getCarrier());
purchaseInventoryBill.setWaybillNumber(ansBill.getWaybillNumber());
purchaseInventoryBill.setExternalNo(ansBill.getSourceBillNo()); purchaseInventoryBill.setExternalNo(ansBill.getSourceBillNo());
purchaseInventoryBill.setStorageTime(DateUtil.parse(dto.getStorageTime())); purchaseInventoryBill.setStorageTime(DateUtil.parse(dto.getStorageTime()));
purchaseInventoryBill.setOperatorSid(dto.getOperatorSid()); purchaseInventoryBill.setOperatorSid(dto.getOperatorSid());
purchaseInventoryBill.setOperatorName(dto.getOperatorName()); purchaseInventoryBill.setOperatorName(dto.getOperatorName());
purchaseInventoryBill.setOperatorTime(DateUtil.parse(dto.getOperatorTime())); 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); purchaseInventoryBill.setTotalQuantity(c);
//生成单据编号 //生成单据编号
@ -447,22 +440,12 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : list) { for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : list) {
for (WarehouseAnsBillDetail ansBillDetail : ansBillDetails) { for (WarehouseAnsBillDetail ansBillDetail : ansBillDetails) {
if(purchaseInventoryBillDetailDto2.getGoodsSkuSid().equals(ansBillDetail.getGoodsSkuSid())){ if(purchaseInventoryBillDetailDto2.getGoodsSkuSid().equals(ansBillDetail.getGoodsSkuSid())){
purchaseInventoryBillDetailDto2.setSourceBillSid(ansBillDetail.getSourceBillSid()); BeanUtil.copyProperties(ansBillDetail,purchaseInventoryBillDetailDto2,"sid","id");
purchaseInventoryBillDetailDto2.setIllustration(ansBillDetail.getIllustration()); purchaseInventoryBillDetailDto2.setGoodsSpuName("");
purchaseInventoryBillDetailDto2.setGoodsSpuSid(ansBillDetail.getGoodsSpuSid());
purchaseInventoryBillDetailDto2.setGoodsSpuName(ansBillDetail.getGoodsSpuSid());
purchaseInventoryBillDetailDto2.setGoodsSkuSid(ansBillDetail.getGoodsSkuSid());
purchaseInventoryBillDetailDto2.setGoodsSkuTitle(ansBillDetail.getGoodsSkuTitle());
purchaseInventoryBillDetailDto2.setGoodsSkuCode(ansBillDetail.getGoodsSkuCode());
purchaseInventoryBillDetailDto2.setSpecValue(ansBillDetail.getGoodsSkuOwnSpec()); purchaseInventoryBillDetailDto2.setSpecValue(ansBillDetail.getGoodsSkuOwnSpec());
purchaseInventoryBillDetailDto2.setOwnSpec(ansBillDetail.getGoodsSkuOwnSpec()); purchaseInventoryBillDetailDto2.setOwnSpec(ansBillDetail.getGoodsSkuOwnSpec());
purchaseInventoryBillDetailDto2.setUnit(ansBillDetail.getUnit());
purchaseInventoryBillDetailDto2.setGoodsUnitName(ansBillDetail.getUnit()); purchaseInventoryBillDetailDto2.setGoodsUnitName(ansBillDetail.getUnit());
purchaseInventoryBillDetailDto2.setPrice(ansBillDetail.getPrice());
purchaseInventoryBillDetailDto2.setCostPrice(ansBillDetail.getPrice()); purchaseInventoryBillDetailDto2.setCostPrice(ansBillDetail.getPrice());
purchaseInventoryBillDetailDto2.setTotalPrice(ansBillDetail.getTotalPrice());
purchaseInventoryBillDetailDto2.setCount(purchaseInventoryBillDetailDto2.getCount());
purchaseInventoryBillDetailDto2.setBatch(ansBillDetail.getBatch());
} }
} }
} }

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

@ -19,9 +19,11 @@ import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail; import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService; import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory; 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.warehouseinventory.WarehouseInventoryService;
import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatch; import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatch;
import com.yxt.warehouse.biz.warehouseinventorybatch.WarehouseInventoryBatchService; 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.WarehouseRack;
import com.yxt.warehouse.biz.warehouserack.WarehouseRackService; import com.yxt.warehouse.biz.warehouserack.WarehouseRackService;
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2; import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2;
@ -57,6 +59,8 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
WarehouseRackService warehouseRackService; WarehouseRackService warehouseRackService;
@Autowired @Autowired
WarehouseInventoryBatchService warehouseInventoryBatchService; WarehouseInventoryBatchService warehouseInventoryBatchService;
@Autowired
WarehouseInventoryRecordService warehouseInventoryRecordService;
// public void saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list, List<WarehouseReceiptBillDetailBatchDto2> pcList) { // public void saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list, List<WarehouseReceiptBillDetailBatchDto2> pcList) {
public ResultBean<String> saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list) { public ResultBean<String> saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list) {
@ -64,49 +68,33 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
baseMapper.deleteByBillSid(sid); baseMapper.deleteByBillSid(sid);
PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid)); PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid));
for (PurchaseInventoryBillDetailDto2 v : list) { for (PurchaseInventoryBillDetailDto2 v : list) {
PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail(); PurchaseInventoryBillDetail purchaseInventoryBillDetail = new PurchaseInventoryBillDetail();
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid"); BeanUtil.copyProperties(v, purchaseInventoryBillDetail, "sid");
wmsReceiptBillDetail.setSourceBillSid(sid); purchaseInventoryBillDetail.setSourceBillSid(sid);
wmsReceiptBillDetail.setSid(UUID.randomUUID().toString()); purchaseInventoryBillDetail.setSid(UUID.randomUUID().toString());
wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle()); purchaseInventoryBillDetail.setBatchNumber(v.getBatch());
wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode());
// wmsReceiptBillDetail.setSpecValue(v.getSpecValue());
wmsReceiptBillDetail.setBatchNumber(v.getBatch());
WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService
.getOne(new QueryWrapper<WarehouseAnsBillDetail>() .getOne(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()) .eq("sourceBillSid",p.getSourceBillSid())
.eq("goodsSkuSid",wmsReceiptBillDetail.getGoodsSkuSid())); .eq("goodsSkuSid",purchaseInventoryBillDetail.getGoodsSkuSid()));
if(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){ if(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
return rb.setMsg("入库数量大于预约数量"); return rb.setMsg("入库数量大于预约数量");
} }
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-wmsReceiptBillDetail.getCount()); warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-purchaseInventoryBillDetail.getCount());
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()); warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount());
warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail); warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail);
WarehouseInventory warehouseInventory=new WarehouseInventory(); WarehouseInventoryDto warehouseInventory=new WarehouseInventoryDto();
BeanUtil.copyProperties(v,warehouseInventory);
warehouseInventory.setBatchNumber(v.getBatch()); warehouseInventory.setBatchNumber(v.getBatch());
warehouseInventory.setGoodsSpuName(""); warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
warehouseInventory.setGoodsSkuSid(v.getGoodsSkuSid());
warehouseInventory.setGoodsSkuTitle(v.getGoodsSkuTitle());
warehouseInventory.setGoodsSkuCode(v.getGoodsSkuCode());
warehouseInventory.setGoodsSkuOwnSpec("");
warehouseInventory.setUnit(v.getUnit());
warehouseInventory.setCount(v.getCount());
warehouseInventory.setAllocateCount(new BigDecimal(0)); warehouseInventory.setAllocateCount(new BigDecimal(0));
warehouseInventory.setPickCount(new BigDecimal(0)); warehouseInventory.setPickCount(new BigDecimal(0));
warehouseInventory.setFreezeCount(new BigDecimal(0)); warehouseInventory.setFreezeCount(new BigDecimal(0));
warehouseInventory.setCost(v.getPrice()); 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())); WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode()); warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
warehouseInventory.setFirstInDate(new Date()); 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 date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
String billNo = v.getGoodsSkuCode() + date; String billNo = v.getGoodsSkuCode() + date;
String i = warehouseInventoryService.selectNum(billNo); String i = warehouseInventoryService.selectNum(billNo);
@ -116,17 +104,19 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
billNo = Rule.getBillNo(billNo, 0); billNo = Rule.getBillNo(billNo, 0);
} }
warehouseInventory.setGoodsID(billNo); warehouseInventory.setGoodsID(billNo);
warehouseInventoryService.save(warehouseInventory); warehouseInventory.setBatch(v.getBatch());
WarehouseInventoryBatch batch=new WarehouseInventoryBatch(); warehouseInventory.setSupplierName(p.getSupplierName());
batch.setInventorySid(warehouseInventory.getSid()); warehouseInventory.setSupplierSid(p.getSupplierSid());
batch.setBatchNumber(v.getBatch()); warehouseInventory.setBillNo(p.getBillNo());
batch.setSupplierName(p.getSupplierName()); warehouseInventory.setBillSid(p.getSid());
batch.setSupplierSid(p.getSupplierSid()); warehouseInventory.setDetailSid(purchaseInventoryBillDetail.getSid());
batch.setBillNo(p.getBillNo()); warehouseInventory.setBillType("1");
batch.setBillSid(p.getSid()); warehouseInventory.setBusTypeKey("采购入库");
batch.setBillDetailSid(wmsReceiptBillDetail.getSid()); warehouseInventory.setBusTypeValue("采购入库");
warehouseInventoryBatchService.save(batch); warehouseInventory.setSourceBillNo(p.getSid());
baseMapper.insert(wmsReceiptBillDetail); warehouseInventory.setSourceBillSid(p.getBillNo());
warehouseInventoryService.saveInventory(warehouseInventory);
baseMapper.insert(purchaseInventoryBillDetail);
} }
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>() List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00")); .eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00"));
@ -147,49 +137,32 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
baseMapper.deleteByBillSid(sid); baseMapper.deleteByBillSid(sid);
PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid)); PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid));
for (PurchaseInventoryBillDetailDto2 v : list) { for (PurchaseInventoryBillDetailDto2 v : list) {
PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail(); PurchaseInventoryBillDetail purchaseInventoryBillDetail = new PurchaseInventoryBillDetail();
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid"); BeanUtil.copyProperties(v, purchaseInventoryBillDetail, "sid","id");
wmsReceiptBillDetail.setSourceBillSid(sid); purchaseInventoryBillDetail.setSourceBillSid(sid);
wmsReceiptBillDetail.setSid(UUID.randomUUID().toString()); purchaseInventoryBillDetail.setSid(UUID.randomUUID().toString());
wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle()); purchaseInventoryBillDetail.setBatchNumber(v.getBatch());
wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode());
// wmsReceiptBillDetail.setSpecValue(v.getSpecValue());
wmsReceiptBillDetail.setBatchNumber(v.getBatch());
WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService
.getOne(new QueryWrapper<WarehouseAnsBillDetail>() .getOne(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()) .eq("sourceBillSid",p.getSourceBillSid())
.eq("goodsSkuSid",wmsReceiptBillDetail.getGoodsSkuSid())); .eq("goodsSkuSid",purchaseInventoryBillDetail.getGoodsSkuSid()));
if(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){ if(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){
return rb.setMsg("入库数量大于预约数量"); return rb.setMsg("入库数量大于预约数量");
} }
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-purchaseInventoryBillDetail.getCount());
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-wmsReceiptBillDetail.getCount()); warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+purchaseInventoryBillDetail.getCount());
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount());
warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail); warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail);
WarehouseInventory warehouseInventory=new WarehouseInventory(); WarehouseInventoryDto warehouseInventory=new WarehouseInventoryDto();
BeanUtil.copyProperties(v,warehouseInventory);
warehouseInventory.setBatchNumber(v.getBatch()); warehouseInventory.setBatchNumber(v.getBatch());
warehouseInventory.setGoodsSpuName(""); warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
warehouseInventory.setGoodsSkuSid(v.getGoodsSkuSid());
warehouseInventory.setGoodsSkuTitle(v.getGoodsSkuTitle());
warehouseInventory.setGoodsSkuCode(v.getGoodsSkuCode());
warehouseInventory.setGoodsSkuOwnSpec("");
warehouseInventory.setUnit(v.getUnit());
warehouseInventory.setCount(v.getCount());
warehouseInventory.setAllocateCount(new BigDecimal(0)); warehouseInventory.setAllocateCount(new BigDecimal(0));
warehouseInventory.setPickCount(new BigDecimal(0)); warehouseInventory.setPickCount(new BigDecimal(0));
warehouseInventory.setFreezeCount(new BigDecimal(0)); warehouseInventory.setFreezeCount(new BigDecimal(0));
warehouseInventory.setCost(v.getPrice()); 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())); WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode()); warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
warehouseInventory.setFirstInDate(new Date()); 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 date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
String billNo = v.getGoodsSkuCode() + date; String billNo = v.getGoodsSkuCode() + date;
String i = warehouseInventoryService.selectNum(billNo); String i = warehouseInventoryService.selectNum(billNo);
@ -199,17 +172,19 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
billNo = Rule.getBillNo(billNo, 0); billNo = Rule.getBillNo(billNo, 0);
} }
warehouseInventory.setGoodsID(billNo); warehouseInventory.setGoodsID(billNo);
warehouseInventoryService.save(warehouseInventory); warehouseInventory.setBatch(v.getBatch());
WarehouseInventoryBatch batch=new WarehouseInventoryBatch(); warehouseInventory.setSupplierName(p.getSupplierName());
batch.setInventorySid(warehouseInventory.getSid()); warehouseInventory.setSupplierSid(p.getSupplierSid());
batch.setBatchNumber(v.getBatch()); warehouseInventory.setBillNo(p.getBillNo());
batch.setSupplierName(p.getSupplierName()); warehouseInventory.setBillSid(p.getSid());
batch.setSupplierSid(p.getSupplierSid()); warehouseInventory.setDetailSid(purchaseInventoryBillDetail.getSid());
batch.setBillNo(p.getBillNo()); warehouseInventory.setBillType("1");
batch.setBillSid(p.getSid()); warehouseInventory.setBusTypeKey("采购入库");
batch.setBillDetailSid(wmsReceiptBillDetail.getSid()); warehouseInventory.setBusTypeValue("采购入库");
warehouseInventoryBatchService.save(batch); warehouseInventory.setSourceBillNo(p.getSid());
baseMapper.insert(wmsReceiptBillDetail); warehouseInventory.setSourceBillSid(p.getBillNo());
warehouseInventoryService.saveInventory(warehouseInventory);
baseMapper.insert(purchaseInventoryBillDetail);
} }
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>() List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00")); .eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00"));

1
src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfo.java

@ -18,6 +18,7 @@ public class WarehouseInfo extends BaseEntity {
private String manager;//主管 private String manager;//主管
private String areaSid;//地区sid private String areaSid;//地区sid
private String address;//地址 private String address;//地址
private String lngAndLat;//经纬度
private String longitude;//经度 private String longitude;//经度
private String latitude;//纬度 private String latitude;//纬度
private String warehouseTypeKey;//仓库类型Key private String warehouseTypeKey;//仓库类型Key

1
src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoDto.java

@ -32,6 +32,7 @@ public class WarehouseInfoDto implements Dto {
private String manager;//主管 private String manager;//主管
private String areaSid;//地区sid private String areaSid;//地区sid
private String address;//地址 private String address;//地址
private String lngAndLat;//经纬度
private String longitude;//经度 private String longitude;//经度
private String latitude;//纬度 private String latitude;//纬度
private String warehouseTypeKey;//仓库类型Key private String warehouseTypeKey;//仓库类型Key

21
src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoMapQuery.java

@ -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;//下标
}

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

@ -82,6 +82,48 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
PagerVo<WarehouseInfoVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<WarehouseInfoVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p); 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) { public ResultBean<List<WarehouseInfo>> listAll(OrgPathQuery query) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<WarehouseInfoVo> pagging = baseMapper.listAll(query.getOrgPath()); List<WarehouseInfoVo> pagging = baseMapper.listAll(query.getOrgPath());
@ -91,18 +133,18 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
public ResultBean<String> saveOrUpdate(WarehouseInfoDto dto) { public ResultBean<String> saveOrUpdate(WarehouseInfoDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String sid = ""; String sid = "";
if(StringUtils.isBlank(dto.getTelephone())){
}
if (StringUtils.isNotBlank(dto.getSid())) { if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid(); sid = dto.getSid();
WarehouseInfo wmsWarehouse = fetchBySid(dto.getSid()); WarehouseInfo wmsWarehouse = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid"); BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid");
wmsWarehouse.setModifyTime(new Date()); 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); baseMapper.updateById(wmsWarehouse);
// for (WmsWarehouseExtendDto wmsWarehouseExtendDto : dto.getWmsWarehouseExtendDtos()) {
// wmsWarehouseExtendDto.setWarehouseSid(wmsWarehouse.getSid());
// }
if(dto.getWmsWarehouseExtendDto()!=null){ if(dto.getWmsWarehouseExtendDto()!=null){
dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid()); dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid());
wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto()); wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto());
@ -113,10 +155,12 @@ public class WarehouseInfoService extends MybatisBaseService<WarehouseInfoMapper
BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid"); BeanUtil.copyProperties(dto, wmsWarehouse, "id", "sid");
wmsWarehouse.setCreateTime(new DateTime()); wmsWarehouse.setCreateTime(new DateTime());
wmsWarehouse.setCreateBySid(dto.getUserSid()); 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); baseMapper.insert(wmsWarehouse);
// for (WmsWarehouseExtendDto wmsWarehouseExtendDto : dto.getWmsWarehouseExtendDtos()) {
// wmsWarehouseExtendDto.setWarehouseSid(wmsWarehouse.getSid());
// }
if(dto.getWmsWarehouseExtendDto()!=null){ if(dto.getWmsWarehouseExtendDto()!=null){
dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid()); dto.getWmsWarehouseExtendDto().setWarehouseSid(wmsWarehouse.getSid());
wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto()); wmsWarehouseExtendService.saveOrUpdate(dto.getWmsWarehouseExtendDto());

1
src/main/java/com/yxt/warehouse/biz/warehouseinfo/WarehouseInfoVo.java

@ -33,6 +33,7 @@ public class WarehouseInfoVo implements Vo {
private String manager;//主管 private String manager;//主管
private String areaSid;//地区sid private String areaSid;//地区sid
private String address;//地址 private String address;//地址
private String lngAndLat;//经纬度
private String longitude;//经度 private String longitude;//经度
private String latitude;//纬度 private String latitude;//纬度
private String warehouseTypeKey;//仓库类型Key private String warehouseTypeKey;//仓库类型Key

93
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryDto.java

@ -2,8 +2,10 @@ package com.yxt.warehouse.biz.warehouseinventory;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -12,37 +14,68 @@ import java.util.Date;
*/ */
@Data @Data
public class WarehouseInventoryDto implements Dto { public class WarehouseInventoryDto implements Dto {
private String id;
private String sid; private String sid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty("批次号")
private Date createTime; private String batchNumber;
private String remarks; @ApiModelProperty("厂家")
private String isEnable; private String manufacturerSid;
private String goodsID;//商品ID(唯一编码,入库时生成) @ApiModelProperty("厂家")
private String goodsSid;//商品sid private String manufacturerName;
private String billSid;//入库单sid @ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String billDetailSid;//入库单明细sid private String goodsID;
private String price1;//销售价格1 @ApiModelProperty("商品基础信息sid")
private String price2;//销售价格2
private String price3;//销售价格3
private String price4;//销售价格4
private String price5;//销售价格5
private String unit;//计量单位
private String count;//库存数量
private String minimumPrice;//销售底价
private String freePrice;//三包价格
private String firstMaintainPrice;//首保价格
private String warehouseSid;//仓库sid
private String warehouseName;//仓库名称
private String warehouseArea;//货位
private String isShowDiscount;//是否显示折扣标志
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date firstInDate;//首次入库日期-计算库龄的依据
private String lockCount;//锁定数量,计算字段,出库申请通过,但未实际出库
private String sortNo;//排序
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
private String goodSpuSid; private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid; 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;
} }

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

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; 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.Mapper;
import org.apache.ibatis.annotations.Param; 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); IPage<WarehouseInventoryVo> listPage(IPage<WarehouseInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventory> qw);
List<WarehouseInventoryVo> getListBySpuSid(@Param("spuSid")String spuSid); List<WarehouseInventoryVo> getListBySpuSid(@Param("spuSid")String spuSid);
List<WarehouseInventoryVo> getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid); List<WarehouseInventoryRackVo> getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid);
List<WarehouseInventoryVo> getRackCountBySid1(@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); WarehouseInventoryVo initialization(@Param("sid") String sid);
@ -60,5 +61,6 @@ public interface WarehouseInventoryMapper extends BaseMapper<WarehouseInventory>
GoodsCountVo selCountsBySkuSid(@Param("skuSid") String skuSid); GoodsCountVo selCountsBySkuSid(@Param("skuSid") String skuSid);
List<AvailableCountVo> selAvailableBySkuSid(@Param("skuSid") String skuSid,@Param("orgSid") String orgSid); List<AvailableCountVo> selAvailableBySkuSid(@Param("skuSid") String skuSid,@Param("orgSid") String orgSid);
String selectNum(String billNo); String selectNum(String billNo);
List<WarehouseInventoryHistory> totalInventoryByOrgSid(@Param("orgSid") String orgSid);
} }

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

@ -358,7 +358,7 @@
a.goodsSkuSid = #{skuSid} and a.goodsSkuSid = #{skuSid} and
a.useOrgSid=#{orgSid} a.useOrgSid=#{orgSid}
</select> </select>
<select id="getRackCountBySid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo"> <select id="getRackCountBySid" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryRackVo">
SELECT SELECT
b.rackName, b.rackName,
b.rackCode, b.rackCode,
@ -374,7 +374,7 @@
a.goodsSpuSid = #{sid} and a.goodsSpuSid = #{sid} and
a.useOrgSid=#{orgSid} a.useOrgSid=#{orgSid}
</select> </select>
<select id="getRackCountBySid1" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryVo"> <select id="getRackCountBySid1" resultType="com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryRackVo">
SELECT SELECT
b.rackName, b.rackName,
b.rackCode, b.rackCode,
@ -391,10 +391,39 @@
a.useOrgSid=#{orgSid} a.useOrgSid=#{orgSid}
</select> </select>
<select id="selectNum" resultType="java.lang.String"> <select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4) select RIGHT (goodsID, 4)
from purchase_inventory_bill_detail from warehouse_inventory
where billNo LIKE concat(#{billNo}, '%') where goodsID LIKE concat(#{billNo}, '%')
order by billNo desc order by goodsID desc
limit 1 limit 1
</select> </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> </mapper>

21
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryRackVo.java

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

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

@ -14,6 +14,10 @@ import com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService; import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService; import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo; 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 com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -32,34 +36,36 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
WarehouseAnsBillDetailService warehouseAnsBillDetailService; WarehouseAnsBillDetailService warehouseAnsBillDetailService;
@Autowired @Autowired
WarehouseInventoryRecordService warehouseInventoryRecordService; WarehouseInventoryRecordService warehouseInventoryRecordService;
@Autowired
WarehouseInventoryBatchService warehouseInventoryBatchService;
public ResultBean<PagerVo<WarehouseInventoryVo>> listPage(PagerQuery<WarehouseInventoryQuery> pq) { public ResultBean<PagerVo<WarehouseInventoryVo>> listPage(PagerQuery<WarehouseInventoryQuery> pq) {
ResultBean rb =new ResultBean().fail(); ResultBean rb =new ResultBean().fail();
WarehouseInventoryQuery query = pq.getParams(); WarehouseInventoryQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>(); QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) { if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
// String orgLevelKey=query.getOrgLevelKey(); String orgLevelKey=query.getOrgLevelKey();
// String orgSidPath=query.getOrgPath(); String orgSidPath=query.getOrgPath();
// int index=query.getIndex(); int index=query.getIndex();
// if ("1".equals(orgLevelKey)) { if ("1".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath); qw.like("s.orgSidPath", orgSidPath);
// } else if ("2".equals(orgLevelKey)) { } else if ("2".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath); qw.like("s.orgSidPath", orgSidPath);
// } else if ("3".equals(orgLevelKey)) { } else if ("3".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.apply("s.orgSidPath like('"+orgSidPath+"')"); qw.apply("s.orgSidPath like('"+orgSidPath+"')");
// } else if ("4".equals(orgLevelKey)) { } else if ("4".equals(orgLevelKey)) {
// qw.eq("wab.createBySid", query.getUserSid()); qw.eq("wab.createBySid", query.getUserSid());
// } else { } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>(); PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p); return rb.success().setData(p);
// } }
// } else { } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>(); PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p); return rb.success().setData(p);
// } }
if (StringUtils.isNotBlank(query.getWarehouseSid())) { if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.like("a.warehouseNameSid", query.getWarehouseSid()); qw.like("a.warehouseNameSid", query.getWarehouseSid());
} }
@ -112,30 +118,30 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
ResultBean rb =new ResultBean().fail(); ResultBean rb =new ResultBean().fail();
WarehouseInventoryQuery query = pq.getParams(); WarehouseInventoryQuery query = pq.getParams();
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>(); QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>();
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) { if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
// String orgLevelKey=query.getOrgLevelKey(); String orgLevelKey=query.getOrgLevelKey();
// String orgSidPath=query.getOrgPath(); String orgSidPath=query.getOrgPath();
// int index=query.getIndex(); int index=query.getIndex();
// if ("1".equals(orgLevelKey)) { if ("1".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath); qw.like("s.orgSidPath", orgSidPath);
// } else if ("2".equals(orgLevelKey)) { } else if ("2".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.like("s.orgSidPath", orgSidPath); qw.like("s.orgSidPath", orgSidPath);
// } else if ("3".equals(orgLevelKey)) { } else if ("3".equals(orgLevelKey)) {
// orgSidPath = orgSidPath.substring(0, index); orgSidPath = orgSidPath.substring(0, index);
// qw.apply("s.orgSidPath like('"+orgSidPath+"')"); qw.apply("s.orgSidPath like('"+orgSidPath+"')");
// } else if ("4".equals(orgLevelKey)) { } else if ("4".equals(orgLevelKey)) {
// qw.eq("wab.createBySid", query.getUserSid()); qw.eq("wab.createBySid", query.getUserSid());
// } else { } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>(); PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p); return rb.success().setData(p);
// } }
// } else { } else {
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>(); PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
// return rb.success().setData(p); return rb.success().setData(p);
// } }
if (StringUtils.isNotBlank(query.getWarehouseSid())) { if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.like("a.warehouseNameSid", query.getWarehouseSid()); qw.like("a.warehouseNameSid", query.getWarehouseSid());
} }
@ -170,23 +176,35 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
} }
/** public ResultBean<String> saveInventory(WarehouseInventoryDto dto) {
* 入库
*
* @param dto
* @return
*/
public ResultBean<WarehouseInventory> warehousing(WarehouseInventoryDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper<WarehouseInventory>().eq("goodsSid", dto.getGoodsSid()).eq("warehouseSid", dto.getWarehouseSid())); WarehouseInventory warehouseInventory=new WarehouseInventory();
if (null == WarehouseInventory) { BeanUtil.copyProperties(dto,warehouseInventory);
WarehouseInventory Warehouse = new WarehouseInventory(); baseMapper.insert(warehouseInventory);
BeanUtil.copyProperties(dto, Warehouse, "sid", "id");
Warehouse.setFirstInDate(new Date()); WarehouseInventoryRecordDto recordDto=new WarehouseInventoryRecordDto();
baseMapper.insert(Warehouse); BeanUtil.copyProperties(dto,recordDto);
return rb.success().setData(Warehouse); recordDto.setInventorySid(warehouseInventory.getSid());
} recordDto.setBillType(dto.getBillType());
return rb.success().setData(WarehouseInventory); 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) { public ResultBean getRackCountBySid(WarehouseInventoryRackCountQuery query) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>(); List<WarehouseInventoryRackVo> warehouseInventoryVos=new ArrayList<>();
if (query.getType().equals("1")){ if (query.getType().equals("1")){
warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid()); warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid());
}else if(query.getType().equals("2")){ }else if(query.getType().equals("2")){
@ -244,16 +262,7 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
} }
return rb.success().setData(warehouseInventoryVos); 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) { public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
@ -571,4 +580,9 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
public String selectNum(String billNo){ public String selectNum(String billNo){
return baseMapper.selectNum(billNo); return baseMapper.selectNum(billNo);
} }
public List<WarehouseInventoryHistory> totalInventoryByOrgSid(String orgSid){
List<WarehouseInventoryHistory> vo=baseMapper.totalInventoryByOrgSid(orgSid);
return vo;
}
} }

2
src/main/java/com/yxt/warehouse/biz/warehouseinventorybatch/WarehouseInventoryBatch.java

@ -49,7 +49,7 @@ import java.util.Date;
*/ */
@Data @Data
@ApiModel(value = "商品库存-批次属性", description = "商品库存-批次属性") @ApiModel(value = "商品库存-批次属性", description = "商品库存-批次属性")
@TableName("wms_inventory_batch") @TableName("warehouse_inventory_batch")
public class WarehouseInventoryBatch extends BaseEntity { public class WarehouseInventoryBatch extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

65
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistory.java

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

61
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryDto.java

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

22
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryMapper.java

@ -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);
}

42
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryMapper.xml

@ -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>

42
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryQuery.java

@ -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;
//供应商
}

61
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryScheduledVo.java

@ -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();
}

106
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryService.java

@ -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);
}
}
}

40
src/main/java/com/yxt/warehouse/biz/warehouseinventoryhistory/WarehouseInventoryHistoryVo.java

@ -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<>();
}

16
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecord.java

@ -100,12 +100,12 @@ public class WarehouseInventoryRecord extends BaseEntity {
private String warehouseRackCode; // 库位编号 private String warehouseRackCode; // 库位编号
@ApiModelProperty("入库单价") @ApiModelProperty("入库单价")
private BigDecimal cost; private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal tax;
@ApiModelProperty("入库金额") @ApiModelProperty("操作人sid")
private BigDecimal amount; private String operatorSid; // 库位sid
@ApiModelProperty("经办人sid") @ApiModelProperty("操作人")
private String handlerSid; // 库位sid private String operator; // 库位编号
@ApiModelProperty("经办人") private String useOrgSid;
private String handlerName; // 库位编号 private String createOrgSid;
} }

28
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordDto.java

@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* Project: wms(yxt) <br/> * Project: wms(yxt) <br/>
* File: WmsInventoryRecordDto.java <br/> * File: WmsInventoryRecordDto.java <br/>
@ -52,8 +54,6 @@ public class WarehouseInventoryRecordDto implements Dto {
@ApiModelProperty("库存sid") @ApiModelProperty("库存sid")
private String inventorySid; // 库存sid private String inventorySid; // 库存sid
@ApiModelProperty("创建人sid")
private String createBySid; // 商品ID
@ApiModelProperty("商品ID") @ApiModelProperty("商品ID")
private String goodsID; // 商品ID private String goodsID; // 商品ID
@ApiModelProperty("来源单sid(业务单sid)") @ApiModelProperty("来源单sid(业务单sid)")
@ -85,11 +85,11 @@ public class WarehouseInventoryRecordDto implements Dto {
@ApiModelProperty("规格型号") @ApiModelProperty("规格型号")
private String goodsSkuOwnSpec; // 规格型号 private String goodsSkuOwnSpec; // 规格型号
@ApiModelProperty("出入库后的库存量") @ApiModelProperty("出入库后的库存量")
private String currentCount; // 出入库后的库存量 private BigDecimal currentCount; // 出入库后的库存量
@ApiModelProperty("计量单位") @ApiModelProperty("计量单位")
private String unit; // 计量单位 private String unit; // 计量单位
@ApiModelProperty("数量") @ApiModelProperty("数量")
private String count; // 数量 private BigDecimal count; // 数量
@ApiModelProperty("仓库sid") @ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid private String warehouseSid; // 仓库sid
@ApiModelProperty("仓库名称") @ApiModelProperty("仓库名称")
@ -99,18 +99,14 @@ public class WarehouseInventoryRecordDto implements Dto {
@ApiModelProperty("库位编号") @ApiModelProperty("库位编号")
private String warehouseRackCode; // 库位编号 private String warehouseRackCode; // 库位编号
@ApiModelProperty("入库单价") @ApiModelProperty("入库单价")
private String cost; private BigDecimal cost;
@ApiModelProperty("税率")
private String tax;
@ApiModelProperty("入库金额") @ApiModelProperty("操作人sid")
private String amount; private String operatorSid; // 库位sid
@ApiModelProperty("经办人sid") @ApiModelProperty("操作人")
private String handlerSid; // 库位sid private String operator; // 库位编号
@ApiModelProperty("经办人")
private String handlerName; // 库位编号
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid; private String useOrgSid;
private String createOrgSid;
} }

23
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordListVo.java

@ -3,6 +3,8 @@ package com.yxt.warehouse.biz.warehouseinventoryrecord;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @description: 库存出入库记录 * @description: 库存出入库记录
* @author: dimengzhe * @author: dimengzhe
@ -15,16 +17,27 @@ public class WarehouseInventoryRecordListVo {
private String billNo; private String billNo;
@ApiModelProperty("单据类型") @ApiModelProperty("单据类型")
private String billType; private String billType;
private String billTypeValue;
@ApiModelProperty("发生时间") @ApiModelProperty("发生时间")
private String createTime; private String createTime;
@ApiModelProperty("业务类型") @ApiModelProperty("业务类型")
private String busTypeValue; private String busTypeValue;
@ApiModelProperty("客户/供应商")
private String billObjName;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("数量") @ApiModelProperty("数量")
private String count; private String count;
@ApiModelProperty("出入库后的库存量") @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);
} }

1
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordMapper.java

@ -75,6 +75,7 @@ public interface WarehouseInventoryRecordMapper extends BaseMapper<WarehouseInve
IPage<WarehouseInventoryDetailsRecordVo> inventoryDetailsRecord(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw); IPage<WarehouseInventoryDetailsRecordVo> inventoryDetailsRecord(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw);
List<WarehouseInventoryRecordListVo> getWarehouseInventoryRecordList(String sid); 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); IPage<WarehouseInventoryRecordsVo> listPage(IPage<WarehouseInventoryRecord> page, @Param(Constants.WRAPPER) QueryWrapper<WarehouseInventoryRecord> qw);

15
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordMapper.xml

@ -171,4 +171,19 @@
WHERE WHERE
r.sourceBillSid = #{sid} and r.goodsSkuCode = #{goodsSkuCode} r.sourceBillSid = #{sid} and r.goodsSkuCode = #{goodsSkuCode}
</select> </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> </mapper>

30
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordQuery1.java

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

65
src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecordService.java

@ -28,6 +28,7 @@ package com.yxt.warehouse.biz.warehouseinventoryrecord;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery; 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.common.core.vo.PagerVo;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory; import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; 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.warehouseinventoryrecord.report.*;
import com.yxt.warehouse.biz.warehouseoldinventory.WarehouseOldInventoryDetailsListVo; import com.yxt.warehouse.biz.warehouseoldinventory.WarehouseOldInventoryDetailsListVo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -216,7 +218,58 @@ public class WarehouseInventoryRecordService extends MybatisBaseService<Warehous
list.removeAll(Collections.singleton(null)); list.removeAll(Collections.singleton(null));
return rb.success().setData(list); 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) { public PagerVo<WarehouseInventoryRecordsVo> listPage(PagerQuery<WarehouseInventoryRecordsQuery> pagerQuery) {
WarehouseInventoryRecordsQuery query = pagerQuery.getParams(); WarehouseInventoryRecordsQuery query = pagerQuery.getParams();
QueryWrapper<WarehouseInventoryRecord> qw = new QueryWrapper<>(); QueryWrapper<WarehouseInventoryRecord> qw = new QueryWrapper<>();
@ -326,18 +379,8 @@ public class WarehouseInventoryRecordService extends MybatisBaseService<Warehous
} }
public void saveRecord(WarehouseInventoryRecordDto dto) { 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(); WarehouseInventoryRecord inventoryRecord = new WarehouseInventoryRecord();
BeanUtil.copyProperties(dto,inventoryRecord,"id","sid"); BeanUtil.copyProperties(dto,inventoryRecord,"id","sid");
inventoryRecord.setInventorySid(WarehouseInventory.getSid());
baseMapper.insert(inventoryRecord); baseMapper.insert(inventoryRecord);
} }

69
src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java

@ -320,13 +320,24 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
for (String s : dto.getSid().split(",")) { for (String s : dto.getSid().split(",")) {
List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",dto.getSid())); List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",dto.getSid()));
for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) { for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) {
WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid()); WarehouseInventory warehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid());
//减去出库的数量 //减去出库的数量
WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(warehouseOutLocation.getCount())); warehouseInventory.setCount(warehouseInventory.getCount().subtract(warehouseOutLocation.getCount()));
WarehouseInventory.setAllocateCount(WarehouseInventory.getAllocateCount().subtract(warehouseOutLocation.getCount())); warehouseInventory.setAllocateCount(warehouseInventory.getAllocateCount().subtract(warehouseOutLocation.getCount()));
warehouseInventoryService.updateById(WarehouseInventory); 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(); OperationRecordDto dto1 = new OperationRecordDto();
dto1.setBillSid(dto.getSid()); dto1.setBillSid(dto.getSid());
dto1.setUserSid(dto.getUserSid()); dto1.setUserSid(dto.getUserSid());
@ -343,29 +354,39 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
return rb.success(); return rb.success();
} }
public void saveWarehouseInventory(String sid) { public void saveWarehouseInventory(String sid,WarehouseInventoryRecordDto dto) {
WarehouseOutBill WarehouseOutBill = fetchBySid(sid); WarehouseOutBill WarehouseOutBill = fetchBySid(sid);
List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",sid)); List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",sid));
for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) { for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) {
WarehouseInventory warehouseInventory=warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid",warehouseOutLocation.getInventorySid())); WarehouseInventory warehouseInventory=warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid",warehouseOutLocation.getInventorySid()));
WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto(); WarehouseInventoryRecordDto warehouseInventoryRecordDto = new WarehouseInventoryRecordDto();
WarehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid()); warehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid());
WarehouseInventoryRecordDto.setGoodsID(warehouseInventory.getGoodsID()); warehouseInventoryRecordDto.setGoodsID(warehouseInventory.getGoodsID());
WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid()); warehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid());
WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo()); warehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo());
WarehouseInventoryRecordDto.setBillType("0"); warehouseInventoryRecordDto.setBillType("0");
WarehouseInventoryRecordDto.setBatchNumber(warehouseInventory.getBatchNumber()); warehouseInventoryRecordDto.setBusTypeKey(dto.getBusTypeKey());
WarehouseInventoryRecordDto.setGoodSpuSid(warehouseInventory.getGoodSpuSid()); warehouseInventoryRecordDto.setBusTypeValue(dto.getBusTypeValue());
WarehouseInventoryRecordDto.setGoodsSpuName(warehouseOutLocation.getGoodsSpuName()); warehouseInventoryRecordDto.setBillObjName(dto.getBillObjName());
WarehouseInventoryRecordDto.setGoodsSkuSid(warehouseOutLocation.getGoodsSkuSid()); warehouseInventoryRecordDto.setBillObjSid(dto.getBillObjSid());
WarehouseInventoryRecordDto.setGoodsSkuCode(warehouseOutLocation.getGoodsSkuCode()); warehouseInventoryRecordDto.setBatchNumber(warehouseInventory.getBatchNumber());
WarehouseInventoryRecordDto.setUnit(warehouseInventory.getUnit()); warehouseInventoryRecordDto.setGoodSpuSid(warehouseInventory.getGoodSpuSid());
WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(warehouseInventory.getCount().toString()) ? new BigDecimal(warehouseInventory.getCount().toString()).toString() : BigDecimal.ZERO.toString()); warehouseInventoryRecordDto.setGoodsSpuName(warehouseOutLocation.getGoodsSpuName());
WarehouseInventoryRecordDto.setWarehouseSid(warehouseOutLocation.getWarehouseSid()); warehouseInventoryRecordDto.setGoodsSkuSid(warehouseOutLocation.getGoodsSkuSid());
WarehouseInventoryRecordDto.setWarehouseName(warehouseInventory.getWarehouseName()); warehouseInventoryRecordDto.setGoodsSkuCode(warehouseOutLocation.getGoodsSkuCode());
WarehouseInventoryRecordDto.setWarehouseRackSid(warehouseOutLocation.getRackSid()); warehouseInventoryRecordDto.setUnit(warehouseInventory.getUnit());
WarehouseInventoryRecordDto.setWarehouseRackCode(warehouseOutLocation.getRackCode()); warehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(warehouseInventory.getCount().toString()) ? new BigDecimal(warehouseInventory.getCount().toString()) : BigDecimal.ZERO);
warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto); 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) { public ResultBean getRemarks(String sid) {

Loading…
Cancel
Save