Browse Source

8/20

master
wangpengfei 10 months ago
parent
commit
d7343f143e
  1. 6
      src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java
  2. 3
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java
  3. 10
      src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java
  4. 7
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBill.java
  5. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto2.java
  6. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillInitVo.java
  7. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillPageVo.java
  8. 3
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java
  9. 88
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java
  10. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillVo.java
  11. 12
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java
  12. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java
  13. 7
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.xml
  14. 47
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java
  15. 4
      src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java
  16. 4
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/AvailableCountVo.java
  17. 9
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java
  18. 8
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml
  19. 24
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java
  20. 2
      src/main/java/com/yxt/warehouse/biz/warehouseinventoryrecord/WarehouseInventoryRecord.java
  21. 2
      src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceService.java
  22. 15
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/RemarksVo.java
  23. 3
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml
  24. 4
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java
  25. 54
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java
  26. 1
      src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java
  27. 1
      src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java
  28. 38
      src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java

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

@ -51,7 +51,11 @@ public class PurchaseInventoryBillRest {
ResultBean<String> confirm(@RequestBody PurchaseInventoryBillDto2 dto) {
return purchaseInventoryBillService.confirm(dto);
}
@ApiOperation("生成验货入库")
@PostMapping("/inspectionWarehousing")
ResultBean<String> inspectionWarehousing(@RequestBody PurchaseInventoryBillDto2 dto) {
return purchaseInventoryBillService.inspectionWarehousing(dto);
}
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids) {

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

@ -214,12 +214,13 @@ public class WarehouseInventoryRest {
List<AvailableCountVo> w=WarehouseInventoryService.selAvailableBySkuSid(skuSid,orgSid);
for (AvailableCountVo availableCountVo : w) {
WarehouseOutLocation warehouseOutLocation=warehouseOutLocationService.getOne(new QueryWrapper<WarehouseOutLocation>()
.eq("sourceBillSid",sourceBillSid).eq("inventorySid",availableCountVo.getSid()));
.eq("sourceBillSid",sourceBillSid).eq("inventorySid",availableCountVo.getInventorySid()));
if(null!=warehouseOutLocation){
availableCountVo.setInitialCount(warehouseOutLocation.getCount());
availableCountVo.setCount(warehouseOutLocation.getCount());
availableCountVo.setLocationSid(warehouseOutLocation.getSid());
}
availableCountVo.setGoodsSkuSid(skuSid);
}
return rb.success().setData(w);
}

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

@ -59,12 +59,12 @@ public class WarehouseOutBillRest {
}
@ApiOperation("修改承运商")
@PostMapping("/updateCarrier")
public ResultBean updateCarrier(WarehouseOutBillDto dto) {
public ResultBean updateCarrier(@RequestBody WarehouseOutBillDto dto) {
return wmsOutBillService.updateCarrier(dto);
}
@ApiOperation("修改运单号")
@PostMapping("/updateWaybillNumber")
public ResultBean updateWaybillNumber(WarehouseOutBillDto dto) {
public ResultBean updateWaybillNumber(@RequestBody WarehouseOutBillDto dto) {
return wmsOutBillService.updateWaybillNumber(dto);
}
@ApiOperation("待分配-->打到零拣")
@ -88,4 +88,10 @@ public class WarehouseOutBillRest {
ResultBean confirm(@RequestBody WarehouseOutBillDto dto) {
return wmsOutBillService.confirm(dto);
}
@ApiOperation("获取备注信息")
@PostMapping("/getRemarks")
ResultBean getRemarks(@RequestParam("sid") String sid) {
return wmsOutBillService.getRemarks(sid);
}
}

7
src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBill.java

@ -5,6 +5,7 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -23,14 +24,16 @@ public class PurchaseInventoryBill extends BaseEntity {
private String billNo;
@ApiModelProperty("状态")
private String billState;
@ApiModelProperty("单据类型")
private String billType;
@ApiModelProperty("商品总额")
private double total;
private BigDecimal total;
@ApiModelProperty("商品总重量(kg)")
private double totalWeight;
@ApiModelProperty("总体积(m3)")
private double totalVolume;
@ApiModelProperty("总数")
private double totalQuantity;
private BigDecimal totalQuantity;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商")

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

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

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

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

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

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

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

@ -11,7 +11,8 @@ import lombok.Data;
**/
@Data
public class PurchaseInventoryBillQuery implements Query {
@ApiModelProperty("单据类型 0 :采购入库 1 验货入库")
private String billType;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("外部单号")

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

@ -21,6 +21,11 @@ import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo;
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.warehouserack.WarehouseRack;
import com.yxt.warehouse.biz.warehouserack.WarehouseRackService;
import com.yxt.warehouse.biz.warehousereceiptbilldetail.WarehouseReceiptBillDetailDto2;
import com.yxt.warehouse.biz.warehousereceiptbilldetail.WarehouseReceiptBillDetailMapper;
import com.yxt.warehouse.biz.warehousereceiptbilldetail.WarehouseReceiptBillDetailService;
@ -33,6 +38,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -47,12 +53,9 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
@Autowired
private PurchaseInventoryBillDetailService purchaseInventoryBillDetailService;
@Autowired
private WarehouseAnsBillService wmsAnsBillService;
@Autowired
private WarehouseAnsBillDetailService wmsAnsBillDetailService;
private WarehouseInventoryService warehouseInventoryService;
@Autowired
OperationRecordService operationRecordService;
;
@Autowired
private WarehouseReceiptBillDetailMapper wmsReceiptBillDetailMapper;
@Autowired
@ -61,6 +64,8 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
WarehouseAnsBillDetailService warehouseAnsBillDetailService;
@Autowired
WarehouseAnsBillService warehouseAnsBillService;
@Autowired
WarehouseRackService warehouseRackService;
public PagerVo<PurchaseInventoryBillPageVo> listPage(PagerQuery<PurchaseInventoryBillQuery> pq) {
PurchaseInventoryBillQuery query = pq.getParams();
@ -97,7 +102,9 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("wrb.supplierName", query.getSupplierName());
}
if (StringUtils.isNotBlank(query.getBillType())) {
qw.like("wrb.billType", query.getBillType());
}
IPage<PurchaseInventoryBill> page = PagerUtil.queryToPage(pq);
IPage<PurchaseInventoryBillPageVo> pagging = baseMapper.listPage(page, qw);
PagerVo<PurchaseInventoryBillPageVo> p = PagerUtil.pageToVo(pagging, null);
@ -107,11 +114,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
public ResultBean<String> saveBill(List<PurchaseInventoryBillDto2> dto,String userSid,String userName) {
ResultBean<String> rb = ResultBean.fireFail();
for (PurchaseInventoryBillDto2 dto2 : dto) {
double c=0;
double total=0;
BigDecimal c=new BigDecimal(0);
BigDecimal total=new BigDecimal(0);
for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : dto2.getList()) {
c=c+purchaseInventoryBillDetailDto2.getCount();
total=total+purchaseInventoryBillDetailDto2.getTotalPrice();
c=c.add(purchaseInventoryBillDetailDto2.getCount());
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
}
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill();
String sid = wmsReceiptBill.getSid();
@ -203,6 +210,69 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
}
return rb.success().setData(wmsReceiptBillInitVo);
}
public ResultBean<String> inspectionWarehousing(PurchaseInventoryBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
BigDecimal c=new BigDecimal(0);
BigDecimal total=new BigDecimal(0);
for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : dto.getList()) {
c=c.add(purchaseInventoryBillDetailDto2.getCount());
total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice());
}
PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill();
String sid = wmsReceiptBill.getSid();
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid");
wmsReceiptBill.setBillState("1");
wmsReceiptBill.setTotal(total);
//生成单据编号
String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
billNo = "RK" + date;
String i = baseMapper.selectNum(billNo);
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
wmsReceiptBill.setBillNo(billNo);
wmsReceiptBill.setTotalQuantity(c);
baseMapper.insert(wmsReceiptBill);
List<PurchaseInventoryBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
for (PurchaseInventoryBillDetailDto2 dto2 : list) {
purchaseInventoryBillDetailService.saveOrUpdate(dto2);
WarehouseInventory warehouseInventory=new WarehouseInventory();
warehouseInventory.setBatchNumber(dto2.getBatch());
warehouseInventory.setGoodsSpuName("");
warehouseInventory.setGoodsSkuSid(dto2.getGoodsSkuSid());
warehouseInventory.setGoodsSkuTitle(dto2.getGoodsSkuTitle());
warehouseInventory.setGoodsSkuCode(dto2.getGoodsSkuCode());
warehouseInventory.setGoodsSkuOwnSpec("");
warehouseInventory.setUnit(dto2.getUnit());
warehouseInventory.setCount(dto2.getCount());
warehouseInventory.setAllocateCount(new BigDecimal(0));
warehouseInventory.setPickCount(new BigDecimal(0));
warehouseInventory.setFreezeCount(new BigDecimal(0));
// warehouseInventory.setCost(dto2.getPrice());
warehouseInventory.setWarehouseSid(dto2.getWarehouseSid());
warehouseInventory.setWarehouseName(dto2.getWarehouseName());
warehouseInventory.setWarehouseRackSid(dto2.getWarehouseRackSid());
WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",dto2.getWarehouseRackSid()));
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
warehouseInventory.setUseOrgSid(dto.getUseOrgSid());
warehouseInventory.setCreateOrgSid(dto.getCreateOrgSid());
warehouseInventoryService.save(warehouseInventory);
}
OperationRecordDto dto1 = new OperationRecordDto();
dto1.setBillSid(sid);
dto1.setUserSid(dto.getUserSid());
dto1.setUserName(dto.getUserName());
dto1.setCreateTime(new Date());
dto1.setContent("生成入库单");
operationRecordService.save(dto1);
return rb.success().setMsg("保存成功");
}
// @Transactional
public ResultBean<String> confirm(PurchaseInventoryBillDto2 dto) {

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

@ -25,6 +25,8 @@ public class PurchaseInventoryBillVo {
private String billNo;
@ApiModelProperty("状态")
private String billState;
@ApiModelProperty("单据类型 0 :采购入库 1 验货入库")
private String billType;
@ApiModelProperty("商品总额")
private double total;
@ApiModelProperty("商品总重量(kg)")

12
src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java

@ -14,11 +14,15 @@ import java.util.Date;
**/
@Data
public class PurchaseInventoryBillDetailDto2 {
private String sid;
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("图示")
private String illustration;
@ApiModelProperty("商品spusid")
private String goodsSpuSid;
@ApiModelProperty("商品SpuName")
private String goodsSpuName;
@ApiModelProperty("商品skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")
@ -37,11 +41,11 @@ public class PurchaseInventoryBillDetailDto2 {
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("成本单价")
private double price;
private BigDecimal price;
@ApiModelProperty("总价")
private double totalPrice;
private BigDecimal totalPrice;
@ApiModelProperty("数量")
private double count;
private BigDecimal count;
@ApiModelProperty("辅助单位")
private String auxiliaryUnits;
@ApiModelProperty("序列号")

2
src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java

@ -27,4 +27,6 @@ public interface PurchaseInventoryBillDetailMapper extends BaseMapper<PurchaseIn
@Delete("delete from warehouse_reportlose where sid = #{sid}")
void delByMainSid(String billSid);
String selectNum(String billNo);
}

7
src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.xml

@ -37,4 +37,11 @@
from purchase_inventory_bill_detail a
where a.sid =#{sid}
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from purchase_inventory_bill_detail
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
</mapper>

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

@ -2,6 +2,7 @@ package com.yxt.warehouse.biz.purchaseinventorybilldetail;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
@ -17,11 +18,17 @@ import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBill;
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetail;
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService;
import com.yxt.warehouse.biz.warehouserack.WarehouseRack;
import com.yxt.warehouse.biz.warehouserack.WarehouseRackService;
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchDto2;
import com.yxt.warehouse.biz.warehousereceiptbilldetailbatch.WarehouseReceiptBillDetailBatchService;
import com.yxt.warehouse.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -42,6 +49,10 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
private WarehouseAnsBillService warehouseAnsBillService;
@Autowired
private PurchaseInventoryBillService purchaseInventoryBillService;
@Autowired
WarehouseInventoryService warehouseInventoryService;
@Autowired
WarehouseRackService warehouseRackService;
// public void saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list, List<WarehouseReceiptBillDetailBatchDto2> pcList) {
public ResultBean<String> saveOrUpdateDetailsList2(String sid, List<PurchaseInventoryBillDetailDto2> list) {
@ -68,6 +79,40 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
warehouseAnsBillDetail.setWaitInCount(warehouseAnsBillDetail.getWaitInCount()-wmsReceiptBillDetail.getCount());
warehouseAnsBillDetail.setActualInCount(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount());
warehouseAnsBillDetailService.updateById(warehouseAnsBillDetail);
WarehouseInventory warehouseInventory=new WarehouseInventory();
warehouseInventory.setBatchNumber(v.getBatch());
warehouseInventory.setGoodsSpuName("");
warehouseInventory.setGoodsSkuSid(v.getGoodsSkuSid());
warehouseInventory.setGoodsSkuTitle(v.getGoodsSkuTitle());
warehouseInventory.setGoodsSkuCode(v.getGoodsSkuCode());
warehouseInventory.setGoodsSkuOwnSpec("");
warehouseInventory.setUnit(v.getUnit());
warehouseInventory.setCount(v.getCount());
warehouseInventory.setAllocateCount(new BigDecimal(0));
warehouseInventory.setPickCount(new BigDecimal(0));
warehouseInventory.setFreezeCount(new BigDecimal(0));
warehouseInventory.setCost(v.getPrice());
warehouseInventory.setWarehouseSid(v.getWarehouseSid());
warehouseInventory.setWarehouseName(v.getWarehouseName());
warehouseInventory.setWarehouseRackSid(v.getWarehouseRackSid());
WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
warehouseInventory.setFirstInDate(new Date());
warehouseInventory.setUseOrgSid(p.getUseOrgSid());
warehouseInventory.setCreateOrgSid(p.getCreateOrgSid());
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
warehouseInventory.setGoodsSpuName(v.getGoodsSpuName());
warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid());
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
String billNo = "RK" + date;
String i = baseMapper.selectNum(billNo);
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
warehouseInventory.setGoodsID(v.getGoodsSkuCode()+date+billNo);
warehouseInventoryService.save(warehouseInventory);
baseMapper.insert(wmsReceiptBillDetail);
}
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
@ -111,7 +156,7 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
public ResultBean<String> saveOrUpdate(PurchaseInventoryBillDetailDto dto) {
public ResultBean<String> saveOrUpdate(PurchaseInventoryBillDetailDto2 dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
if (StringUtils.isNotBlank(dto.getSid())) {

4
src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java

@ -219,7 +219,9 @@ public class WarehouseAnsBillService extends MybatisBaseService<WarehouseAnsBill
IPage<WarehouseAndBillDetailVo> pagging = baseMapper.listPages1(page, qw);
for (WarehouseAndBillDetailVo record : pagging.getRecords()) {
WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper<WarehouseRack>().eq("sid",record.getWarehouseRackSid()));
record.setWarehouseRackCode(warehouseRack.getRackCode());
if(null!=warehouseRack){
record.setWarehouseRackCode(warehouseRack.getRackCode());
}
List<WarehouseAnsBillDetail> warehouseAnsBillDetails=WarehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>().eq("sourceBillSid",record.getSid()));
List<WarehouseAnsBillDetailVo> warehouseAnsBillDetailVos=new ArrayList<>();
for (WarehouseAnsBillDetail warehouseAnsBillDetail : warehouseAnsBillDetails) {

4
src/main/java/com/yxt/warehouse/biz/warehouseinventory/AvailableCountVo.java

@ -11,10 +11,14 @@ import java.math.BigDecimal;
@Data
public class AvailableCountVo {
private String sid;
private String inventorySid;
private String locationSid;//分配明细sid
private String goodsSkuSid;
private String goodsSpuName;
private String goodsSkuTitle;
private String goodsSkuOwnSpec;
private String warehouseName;
private String warehouseSid;
private String areaName;
private String rackSid;
private String rackName;

9
src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java

@ -13,11 +13,15 @@ import java.util.Date;
* @date 2024/2/28 8:38
*/
@Data
@TableName("wms_inventory")
@TableName("warehouse_inventory")
public class WarehouseInventory extends BaseEntity {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("厂家")
private String manufacturerSid;
@ApiModelProperty("厂家")
private String manufacturerName;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
@ -44,6 +48,9 @@ public class WarehouseInventory extends BaseEntity {
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")

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

@ -309,11 +309,17 @@
<select id="selAvailableBySkuSid" resultType="com.yxt.warehouse.biz.warehouseinventory.AvailableCountVo">
SELECT
a.sid as inventorySid,
a.warehouseName,
a.warehouseSid,
c.areaName,
b.rackName,
b.sid as rackSid,
b.rackCode,
a.count - a.allocateCount AS useCount
a.count - a.allocateCount AS useCount,
a.goodsSpuName,
a.goodsSkuTitle,
a.goodsSkuOwnSpec
FROM
warehouse_inventory a
LEFT JOIN warehouse_rack b ON a.warehouseRackSid = b.sid

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

@ -64,34 +64,10 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
Warehouse.setFirstInDate(new Date());
baseMapper.insert(Warehouse);
return rb.success().setData(Warehouse);
} else {
WarehouseInventory.setCount(new BigDecimal(Double.valueOf(dto.getCount()) + Double.valueOf(WarehouseInventory.getCount().toString())));
baseMapper.updateById(WarehouseInventory);
}
return rb.success().setData(WarehouseInventory);
}
/**
* 出库
*
* @param dto
* @return
*/
public ResultBean<WarehouseInventory> outWarehousing(WarehouseInventoryDto dto) {
ResultBean rb = ResultBean.fireFail();
WarehouseInventory WarehouseInventory = baseMapper.selectOne(new QueryWrapper<WarehouseInventory>().eq("goodsSid", dto.getGoodsSid()).eq("warehouseSid", dto.getWarehouseSid()));
double exisInventory = Double.valueOf(WarehouseInventory.getCount().toString());
double out = Double.valueOf(dto.getCount());
if (null == WarehouseInventory) {
return rb.setMsg("此仓库没有相应的商品库存");
}
if (exisInventory < -out) {
return rb.setMsg("库存不足");
}
WarehouseInventory.setCount(new BigDecimal(exisInventory + out));
baseMapper.updateById(WarehouseInventory);
return rb.success().setData(WarehouseInventory);
}
public ResultBean<String> saveOrUpdate(WarehouseInventoryDto dto) {
ResultBean rb = ResultBean.fireFail();

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

@ -48,7 +48,7 @@ import java.math.BigDecimal;
*/
@Data
@ApiModel(value = "库存出入库记录", description = "库存出入库记录")
@TableName("wms_inventory_record")
@TableName("warehouse_inventory_record")
public class WarehouseInventoryRecord extends BaseEntity {
private static final long serialVersionUID = 1L;

2
src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceService.java

@ -97,7 +97,7 @@ public class WarehouseInvoiceService extends MybatisBaseService<WarehouseInvoice
ResultBean<WarehouseInvoiceVo> rb = ResultBean.fireFail();
WarehouseInvoiceVo warehouseInvoiceDetailsVo = baseMapper.details(sid);
if (warehouseInvoiceDetailsVo == null) {
return rb.setMsg("该单据不存在");
return rb.success().setData(new WarehouseInvoiceVo());
}
//ToDo:需补充仓库等信息
List<WarehouseInvoiceOutVo> detailsList = warehouseInvoiceOutService.detailsByInvoiceSid(warehouseInvoiceDetailsVo.getSid()).getData();

15
src/main/java/com/yxt/warehouse/biz/warehouseoutbill/RemarksVo.java

@ -0,0 +1,15 @@
package com.yxt.warehouse.biz.warehouseoutbill;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/8/19 9:27
*/
@Data
public class RemarksVo {
private String sid;
private String buyerRemarks;
private String onlineRemarks;
private String systemRemarks;
}

3
src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml

@ -4,7 +4,8 @@
<select id="listPage" resultType="com.yxt.warehouse.biz.warehouseoutbill.WarehouseOutBillVo">
select a.* from warehouse_out_bill a
select a.*,case a.inventoryStatus when 0 then '未锁定' when 1 then '锁定' end as inventoryStatusValue
from warehouse_out_bill a
LEFT JOIN ss_user.sys_organization as s ON a.useOrgSid = s.sid
<where>
${ew.sqlSegment}

4
src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java

@ -38,6 +38,10 @@ public class WarehouseOutBillQuery implements Query {
@ApiModelProperty("下单日期结束时间")
private String orderTimeEnd;
//1
private String orgLevelKey;//权限等级
@ApiModelProperty("菜单路由")
private String menuUrl;

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

@ -16,6 +16,7 @@ import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService;
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto;
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetail;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailVo;
@ -29,6 +30,7 @@ import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
@ -112,6 +114,20 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
IPage<WarehouseOutBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<WarehouseOutBillVo> pagging = baseMapper.listPage(page, qw);
for (WarehouseOutBillVo record : pagging.getRecords()) {
List<WarehouseOutBillDetail> warehouseOutBillDetails=warehouseOutBillDetailService.list(new QueryWrapper<WarehouseOutBillDetail>().eq("sourceBillSid",record.getSid()));
List<WarehouseOutBillDetail> warehouseOutBillDetails1=warehouseOutBillDetails.stream().filter(s->s.getRackState().equals("2")).collect(Collectors.toList());
if(!record.getInventoryStatus().equals("1")){
if (warehouseOutBillDetails.size()==warehouseOutBillDetails1.size()){
record.setInventoryStatus("1");
record.setInventoryStatusValue("锁定");
WarehouseOutBill bill=baseMapper.selectOne(new QueryWrapper<WarehouseOutBill>().eq("sid",record.getSid()));
record.setInventoryStatus("1");
baseMapper.updateById(bill);
}
}
}
PagerVo<WarehouseOutBillVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
@ -269,6 +285,7 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
for (String s : query.getSid().split(",")) {
WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper<WarehouseOutBill>().eq("sid",s));
warehouseOutBill.setBillState(query.getBillState());
baseMapper.updateById(warehouseOutBill);
OperationRecordDto dto1 = new OperationRecordDto();
dto1.setBillSid(s);
dto1.setUserSid(query.getUserSid());
@ -286,6 +303,7 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
for (String s : query.getSid().split(",")) {
WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper<WarehouseOutBill>().eq("sid",s));
warehouseOutBill.setBillState(query.getBillState());
baseMapper.updateById(warehouseOutBill);
OperationRecordDto dto1 = new OperationRecordDto();
dto1.setBillSid(s);
dto1.setUserSid(query.getUserSid());
@ -305,9 +323,10 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid());
//减去出库的数量
WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(warehouseOutLocation.getCount()));
WarehouseInventory.setAllocateCount(WarehouseInventory.getAllocateCount().subtract(warehouseOutLocation.getCount()));
warehouseInventoryService.updateById(WarehouseInventory);
saveWarehouseInventory(dto.getSid());
}
saveWarehouseInventory(dto.getSid());
OperationRecordDto dto1 = new OperationRecordDto();
dto1.setBillSid(dto.getSid());
dto1.setUserSid(dto.getUserSid());
@ -315,6 +334,9 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
dto1.setCreateTime(new Date());
dto1.setContent("出库");
operationRecordService.save(dto1);
WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper<WarehouseOutBill>().eq("sid",s));
warehouseOutBill.setBillState("3");
baseMapper.updateById(warehouseOutBill);
}
@ -325,24 +347,30 @@ public class WarehouseOutBillService extends MybatisBaseService<WarehouseOutBill
WarehouseOutBill WarehouseOutBill = fetchBySid(sid);
List<WarehouseOutLocation> warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper<WarehouseOutLocation>().eq("sourceBillSid",sid));
for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) {
WarehouseInventory warehouseInventory=warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid",warehouseOutLocation.getInventorySid()));
WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto();
WarehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid());
WarehouseInventoryRecordDto.setGoodsID(WarehouseInventoryRecordDto.getGoodsID());
WarehouseInventoryRecordDto.setGoodsID(warehouseInventory.getGoodsID());
WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid());
WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo());
WarehouseInventoryRecordDto.setBillType("0");
WarehouseInventoryRecordDto.setBatchNumber(WarehouseInventoryRecordDto.getBatchNumber());
WarehouseInventoryRecordDto.setGoodSpuSid(WarehouseInventoryRecordDto.getGoodSpuSid());
WarehouseInventoryRecordDto.setGoodsSpuName(WarehouseInventoryRecordDto.getGoodsSpuName());
WarehouseInventoryRecordDto.setGoodsSkuSid(WarehouseInventoryRecordDto.getGoodsSkuSid());
WarehouseInventoryRecordDto.setGoodsSkuCode(WarehouseInventoryRecordDto.getGoodsSkuCode());
WarehouseInventoryRecordDto.setUnit(WarehouseInventoryRecordDto.getUnit());
WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(WarehouseInventoryRecordDto.getCount().toString()) ? new BigDecimal(WarehouseInventoryRecordDto.getCount().toString()).toString() : BigDecimal.ZERO.toString());
WarehouseInventoryRecordDto.setWarehouseSid(WarehouseInventoryRecordDto.getWarehouseSid());
WarehouseInventoryRecordDto.setWarehouseName(WarehouseInventoryRecordDto.getWarehouseName());
WarehouseInventoryRecordDto.setWarehouseRackSid(WarehouseInventoryRecordDto.getWarehouseRackSid());
WarehouseInventoryRecordDto.setWarehouseRackCode(WarehouseInventoryRecordDto.getWarehouseRackCode());
WarehouseInventoryRecordDto.setBatchNumber(warehouseInventory.getBatchNumber());
WarehouseInventoryRecordDto.setGoodSpuSid(warehouseInventory.getGoodSpuSid());
WarehouseInventoryRecordDto.setGoodsSpuName(warehouseOutLocation.getGoodsSpuName());
WarehouseInventoryRecordDto.setGoodsSkuSid(warehouseOutLocation.getGoodsSkuSid());
WarehouseInventoryRecordDto.setGoodsSkuCode(warehouseOutLocation.getGoodsSkuCode());
WarehouseInventoryRecordDto.setUnit(warehouseInventory.getUnit());
WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(warehouseInventory.getCount().toString()) ? new BigDecimal(warehouseInventory.getCount().toString()).toString() : BigDecimal.ZERO.toString());
WarehouseInventoryRecordDto.setWarehouseSid(warehouseOutLocation.getWarehouseSid());
WarehouseInventoryRecordDto.setWarehouseName(warehouseInventory.getWarehouseName());
WarehouseInventoryRecordDto.setWarehouseRackSid(warehouseOutLocation.getRackSid());
WarehouseInventoryRecordDto.setWarehouseRackCode(warehouseOutLocation.getRackCode());
warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto);
}
}
public ResultBean getRemarks(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.success().setData(new RemarksVo());
}
}

1
src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java

@ -26,6 +26,7 @@ public class WarehouseOutBillVo {
private String buyerMessage;
@ApiModelProperty("库存状态")
private String inventoryStatus;
private String inventoryStatusValue;
@ApiModelProperty("货主")
private String shipper;
@ApiModelProperty("承运商")

1
src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java

@ -34,6 +34,7 @@ public class WarehouseOutLocation extends BaseEntity {
@ApiModelProperty("库位编码")
private String rackCode;
private String inventorySid;
private String warehouseSid;
private String spec;

38
src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java

@ -13,15 +13,18 @@ import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory;
import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService;
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto;
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService;
import com.yxt.warehouse.biz.warehouseoutbill.WarehouseOutBillService;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetail;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto;
import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
/**
* @description:
@ -34,49 +37,58 @@ public class WarehouseOutLocationService extends MybatisBaseService<WarehouseOut
WarehouseInventoryService warehouseInventoryService;
@Autowired
WarehouseOutBillDetailService warehouseOutBillDetailService;
@Transactional
public ResultBean<String> save(List<WarehouseOutLocationDto> dtos) {
ResultBean rb = ResultBean.fireFail();
if (dtos.size() == 0) {
return rb.setMsg("参数不正确");
}
BigDecimal t = new BigDecimal(0);
for (WarehouseOutLocationDto dto : dtos) {
t=t.add(dto.getCount());
}
//分配
WarehouseOutLocationVo warehouseOutLocationVo = baseMapper.totalCountBySkuSid(dtos.get(0).getSourceBillSid(), dtos.get(0).getGoodsSkuSid());
// WarehouseOutLocationVo warehouseOutLocationVo = baseMapper.totalCountBySkuSid(dtos.get(0).getSourceBillSid(), dtos.get(0).getGoodsSkuSid());
//总得
WarehouseOutBillDetail warehouseOutBillDetail = warehouseOutBillDetailService.getOne(new QueryWrapper<WarehouseOutBillDetail>()
.eq("sourceBillSid", dtos.get(0).getSourceBillSid())
.eq("goodsSkuSid", dtos.get(0).getGoodsSkuSid()));
BigDecimal t = new BigDecimal(0);
for (WarehouseOutLocationDto dto : dtos) {
WarehouseInventory warehouseInventory = warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid", dto.getInventorySid()));
warehouseInventory.setAllocateCount(warehouseInventory.getAllocateCount().add(dto.getCount().multiply(dto.getInitialCount())));
warehouseInventoryService.saveOrUpdate(warehouseInventory);
t.add(dto.getCount());
}
int result = t.add(warehouseOutLocationVo.getTotalCount()).compareTo(warehouseOutBillDetail.getOrderCount());
int result= t.add(new BigDecimal(0)).compareTo(warehouseOutBillDetail.getOrderCount());
// if(null!=warehouseOutLocationVo){
// result= t.add(warehouseOutLocationVo.getTotalCount()).compareTo(warehouseOutBillDetail.getOrderCount());
// }else{
// result= t.add(new BigDecimal(0)).compareTo(warehouseOutBillDetail.getOrderCount());
// }
if (result > 0) {
return rb.setMsg("分配数量超过订单数量");
}
for (WarehouseOutLocationDto dto : dtos) {
WarehouseInventory warehouseInventory = warehouseInventoryService.getOne(new QueryWrapper<WarehouseInventory>().eq("sid", dto.getInventorySid()));
warehouseInventory.setAllocateCount(warehouseInventory.getAllocateCount().add(dto.getCount().subtract(dto.getInitialCount())));
warehouseInventoryService.saveOrUpdate(warehouseInventory);
int i = dto.getInitialCount().compareTo(new BigDecimal(0));
if (i == 0) {
WarehouseOutLocation warehouseOutLocation = new WarehouseOutLocation();
BeanUtil.copyProperties(dto, warehouseOutLocation, "sid");
warehouseOutLocation.setGoodsSkuCode(warehouseOutBillDetail.getGoodsSkuCode());
warehouseOutLocation.setSpec(dto.getSpec());
warehouseOutLocation.setSid(UUID.randomUUID().toString());
baseMapper.insert(warehouseOutLocation);
} else {
WarehouseOutLocation warehouseOutLocation = new WarehouseOutLocation();
BeanUtil.copyProperties(dto, warehouseOutLocation);
warehouseOutLocation.setSid(dto.getLocationSid());
warehouseOutLocation.setGoodsSkuCode(warehouseOutBillDetail.getGoodsSkuCode());
baseMapper.updateById(warehouseOutLocation);
warehouseOutLocation.setSpec(dto.getSpec());
baseMapper.update(warehouseOutLocation,new QueryWrapper<WarehouseOutLocation>().eq("sid",dto.getLocationSid()));
}
}
if (warehouseOutBillDetail.getOrderCount() == warehouseOutLocationVo.getTotalCount()) {
if (warehouseOutBillDetail.getOrderCount().compareTo(t)==0 ) {
warehouseOutBillDetail.setRackState("2");
} else if (warehouseOutBillDetail.getOrderCount() != warehouseOutLocationVo.getTotalCount()) {
} else {
warehouseOutBillDetail.setRackState("1");
}
warehouseOutBillDetailService.updateById(warehouseOutBillDetail);
return rb.success().setData("");
}

Loading…
Cancel
Save