diff --git a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java index 1a3e8df..f063cab 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java @@ -51,7 +51,11 @@ public class PurchaseInventoryBillRest { ResultBean confirm(@RequestBody PurchaseInventoryBillDto2 dto) { return purchaseInventoryBillService.confirm(dto); } - + @ApiOperation("生成验货入库") + @PostMapping("/inspectionWarehousing") + ResultBean inspectionWarehousing(@RequestBody PurchaseInventoryBillDto2 dto) { + return purchaseInventoryBillService.inspectionWarehousing(dto); + } @ApiOperation("删除/批量删除") @DeleteMapping("/delBySids") ResultBean delBySids(@RequestBody String[] sids) { diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index bc39aa0..ede9e24 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -214,12 +214,13 @@ public class WarehouseInventoryRest { List w=WarehouseInventoryService.selAvailableBySkuSid(skuSid,orgSid); for (AvailableCountVo availableCountVo : w) { WarehouseOutLocation warehouseOutLocation=warehouseOutLocationService.getOne(new QueryWrapper() - .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); } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java index d4389ca..cc782ee 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java +++ b/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); + } } diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBill.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBill.java index 4116bb3..d47eae1 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBill.java +++ b/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("供应商") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto2.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto2.java index 72d4706..ba457d1 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto2.java +++ b/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)") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillInitVo.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillInitVo.java index f2d51bc..ba0ff55 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillInitVo.java +++ b/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)") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillPageVo.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillPageVo.java index 099c521..09f548c 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillPageVo.java +++ b/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)") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java index b6ed6b4..cacbf07 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillQuery.java +++ b/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("外部单号") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java index ea84011..55c9f38 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java +++ b/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 listPage(PagerQuery pq) { PurchaseInventoryBillQuery query = pq.getParams(); @@ -97,7 +102,9 @@ public class PurchaseInventoryBillService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.listPage(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); @@ -107,11 +114,11 @@ public class PurchaseInventoryBillService extends MybatisBaseService saveBill(List dto,String userSid,String userName) { ResultBean 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 inspectionWarehousing(PurchaseInventoryBillDto2 dto) { + ResultBean 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 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().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 confirm(PurchaseInventoryBillDto2 dto) { diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillVo.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillVo.java index 9070ced..beed677 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillVo.java +++ b/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)") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java index 7db743f..28fc20a 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailDto2.java +++ b/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("序列号") diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java index b4e6313..d810b6d 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java @@ -27,4 +27,6 @@ public interface PurchaseInventoryBillDetailMapper extends BaseMapper + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java index 48c58bd..02ee5f5 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java +++ b/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 list, List pcList) { public ResultBean saveOrUpdateDetailsList2(String sid, List list) { @@ -68,6 +79,40 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService().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); } ListwarehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper() @@ -111,7 +156,7 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService saveOrUpdate(PurchaseInventoryBillDetailDto dto) { + public ResultBean saveOrUpdate(PurchaseInventoryBillDetailDto2 dto) { ResultBean rb = ResultBean.fireFail(); String sid = ""; if (StringUtils.isNotBlank(dto.getSid())) { diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java index d2546ad..bb09f2c 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java @@ -219,7 +219,9 @@ public class WarehouseAnsBillService extends MybatisBaseService pagging = baseMapper.listPages1(page, qw); for (WarehouseAndBillDetailVo record : pagging.getRecords()) { WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper().eq("sid",record.getWarehouseRackSid())); - record.setWarehouseRackCode(warehouseRack.getRackCode()); + if(null!=warehouseRack){ + record.setWarehouseRackCode(warehouseRack.getRackCode()); + } List warehouseAnsBillDetails=WarehouseAnsBillDetailService.list(new QueryWrapper().eq("sourceBillSid",record.getSid())); List warehouseAnsBillDetailVos=new ArrayList<>(); for (WarehouseAnsBillDetail warehouseAnsBillDetail : warehouseAnsBillDetails) { diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/AvailableCountVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/AvailableCountVo.java index 2d1b9f5..20f7a52 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/AvailableCountVo.java +++ b/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; diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java index da03d50..81654da 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventory.java +++ b/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("仓库名称") diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml index 5c2a820..9d830ae 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -309,11 +309,17 @@ - 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 ${ew.sqlSegment} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java index 98c70f5..2f3619d 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java +++ b/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; diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java index 213d5cd..479e0ef 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java +++ b/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 page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.listPage(page, qw); + for (WarehouseOutBillVo record : pagging.getRecords()) { + List warehouseOutBillDetails=warehouseOutBillDetailService.list(new QueryWrapper().eq("sourceBillSid",record.getSid())); + List 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().eq("sid",record.getSid())); + record.setInventoryStatus("1"); + baseMapper.updateById(bill); + } + } + + } PagerVo p = PagerUtil.pageToVo(pagging, null); return rb.success().setData(p); } @@ -269,6 +285,7 @@ public class WarehouseOutBillService extends MybatisBaseService().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().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().eq("sid",s)); + warehouseOutBill.setBillState("3"); + baseMapper.updateById(warehouseOutBill); } @@ -325,24 +347,30 @@ public class WarehouseOutBillService extends MybatisBaseService warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper().eq("sourceBillSid",sid)); for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) { + WarehouseInventory warehouseInventory=warehouseInventoryService.getOne(new QueryWrapper().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()); + } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java index 1c22a54..b3728c5 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java +++ b/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("承运商") diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java index 1c14d56..538df6d 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java +++ b/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; diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java index 2910969..26698c6 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java +++ b/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 save(List 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() .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().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().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().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(""); }