From a62d062c29f054d58b9b185ad4a46267f1ff2fec Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Wed, 28 Aug 2024 09:14:39 +0800 Subject: [PATCH] 28 --- .../apiadmin/PurchaseInventoryBillRest.java | 5 + .../PurchaseInventoryBillDto3.java | 42 ++++++ .../PurchaseInventoryBillService.java | 128 ++++++++++++++++++ .../PurchaseInventoryBillDetailMapper.java | 2 +- .../PurchaseInventoryBillDetailMapper.xml | 7 - .../PurchaseInventoryBillDetailService.java | 84 +++++++++++- .../WarehouseAnsBillDetail.java | 4 +- .../WarehouseInventoryMapper.java | 1 + .../WarehouseInventoryMapper.xml | 8 +- .../WarehouseInventoryService.java | 3 + 10 files changed, 272 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto3.java diff --git a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java index a514e15..99510b3 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java @@ -49,6 +49,11 @@ public class PurchaseInventoryBillRest { ResultBean confirm(@RequestBody PurchaseInventoryBillDto2 dto) { return purchaseInventoryBillService.confirm(dto); } + @ApiOperation("确认(对外)") + @PostMapping("/confirmByBill") + ResultBean confirmByBill(@RequestParam PurchaseInventoryBillDto3 dto) { + return purchaseInventoryBillService.confirmByBill(dto); + } @ApiOperation("生成验货入库") @PostMapping("/inspectionWarehousing") ResultBean inspectionWarehousing(@RequestBody PurchaseInventoryBillDto2 dto) { diff --git a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto3.java b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto3.java new file mode 100644 index 0000000..b55fc23 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto3.java @@ -0,0 +1,42 @@ +package com.yxt.warehouse.biz.purchaseinventorybill; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.warehouse.biz.purchaseinventorybilldetail.PurchaseInventoryBillDetailDto2; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/8/27 14:35 + */ +@Data +public class PurchaseInventoryBillDto3 { + + @ApiModelProperty("来源单sid") + private String sourceBillSid; + @ApiModelProperty("来源单号") + private String sourceBillNo; + + + @ApiModelProperty("操作员sid") + private String operatorSid; + @ApiModelProperty("操作员名称") + private String operatorName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("操作时间") + private String operatorTime; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("商品列表") + private List list = new ArrayList<>(); + private String userSid; + private String userName; + private String storageTime; +} 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 ce9c375..8b4e59d 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java @@ -188,7 +188,53 @@ public class PurchaseInventoryBillService extends MybatisBaseService saveBill1(List dto,String userSid,String userName) { + ResultBean rb = ResultBean.fireFail(); + for (PurchaseInventoryBillDto2 dto2 : dto) { + BigDecimal c=new BigDecimal(0); + BigDecimal total=new BigDecimal(0); + for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : dto2.getList()) { + c=c.add(purchaseInventoryBillDetailDto2.getCount()); + total=total.add(purchaseInventoryBillDetailDto2.getTotalPrice()); + } + PurchaseInventoryBill wmsReceiptBill = new PurchaseInventoryBill(); + String sid = wmsReceiptBill.getSid(); + BeanUtil.copyProperties(dto2, wmsReceiptBill, "sid"); + wmsReceiptBill.setBillState("1"); + wmsReceiptBill.setTotal(total); + //生成单据编号 + 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); + wmsReceiptBill.setBillType("0"); + baseMapper.insert(wmsReceiptBill); + List list = dto2.getList(); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + rb = purchaseInventoryBillDetailService.saveOrUpdateDetailsList2(sid, list); + if (!rb.getCode().equals("200")) { + return rb; + } + } + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(sid); + dto1.setUserSid(userSid); + dto1.setUserName(userName); + dto1.setCreateTime(new Date()); + dto1.setContent("生成入库单"); + operationRecordService.save(dto1); + } + return rb.success(); + } public ResultBean saveOrUpdateBill2(PurchaseInventoryBillDto2 dto) { ResultBean rb = ResultBean.fireFail(); String sid = dto.getSid(); @@ -353,7 +399,89 @@ public class PurchaseInventoryBillService extends MybatisBaseService confirmByBill(PurchaseInventoryBillDto3 dto) { + ResultBean rb = ResultBean.fireFail(); + WarehouseAnsBill ansBill=warehouseAnsBillService.getOne(new QueryWrapper().eq("sourceBillNo",dto.getSourceBillNo())); + ListansBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper().eq("sourceBillSid",ansBill.getSid())); + 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 purchaseInventoryBill = new PurchaseInventoryBill(); + String sid = purchaseInventoryBill.getSid(); + purchaseInventoryBill.setSourceBillSid(""); + purchaseInventoryBill.setSourceBillNo(""); + 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); + } + purchaseInventoryBill.setBillNo(billNo); + purchaseInventoryBill.setBillState("1"); + purchaseInventoryBill.setBillType("0"); + purchaseInventoryBill.setTotal(total); + purchaseInventoryBill.setSupplierSid(ansBill.getSupplierSid()); + purchaseInventoryBill.setSupplierName(ansBill.getSupplierName()); + purchaseInventoryBill.setCarrier(ansBill.getCarrier()); + purchaseInventoryBill.setWaybillNumber(ansBill.getWaybillNumber()); + purchaseInventoryBill.setExternalNo(ansBill.getSourceBillNo()); + purchaseInventoryBill.setStorageTime(DateUtil.parse(dto.getStorageTime())); + purchaseInventoryBill.setOperatorSid(dto.getOperatorSid()); + purchaseInventoryBill.setOperatorName(dto.getOperatorName()); + purchaseInventoryBill.setOperatorTime(DateUtil.parse(dto.getOperatorTime())); + purchaseInventoryBill.setUseOrgSid(ansBill.getUseOrgSid()); + purchaseInventoryBill.setCreateOrgSid(ansBill.getCreateOrgSid()); + purchaseInventoryBill.setWarehouseName(ansBill.getWarehouseName()); + purchaseInventoryBill.setWarehouseSid(ansBill.getWarehouseSid()); + purchaseInventoryBill.setTotalQuantity(c); + //生成单据编号 + baseMapper.insert(purchaseInventoryBill); + List list = new ArrayList<>(); + for (PurchaseInventoryBillDetailDto2 purchaseInventoryBillDetailDto2 : list) { + for (WarehouseAnsBillDetail ansBillDetail : ansBillDetails) { + if(purchaseInventoryBillDetailDto2.getGoodsSkuSid().equals(ansBillDetail.getGoodsSkuSid())){ + purchaseInventoryBillDetailDto2.setSourceBillSid(ansBillDetail.getSourceBillSid()); + purchaseInventoryBillDetailDto2.setIllustration(ansBillDetail.getIllustration()); + purchaseInventoryBillDetailDto2.setGoodsSpuSid(ansBillDetail.getGoodsSpuSid()); + purchaseInventoryBillDetailDto2.setGoodsSpuName(ansBillDetail.getGoodsSpuSid()); + purchaseInventoryBillDetailDto2.setGoodsSkuSid(ansBillDetail.getGoodsSkuSid()); + purchaseInventoryBillDetailDto2.setGoodsSkuTitle(ansBillDetail.getGoodsSkuTitle()); + purchaseInventoryBillDetailDto2.setGoodsSkuCode(ansBillDetail.getGoodsSkuCode()); + purchaseInventoryBillDetailDto2.setSpecValue(ansBillDetail.getGoodsSkuOwnSpec()); + purchaseInventoryBillDetailDto2.setOwnSpec(ansBillDetail.getGoodsSkuOwnSpec()); + purchaseInventoryBillDetailDto2.setUnit(ansBillDetail.getUnit()); + purchaseInventoryBillDetailDto2.setGoodsUnitName(ansBillDetail.getUnit()); + purchaseInventoryBillDetailDto2.setPrice(ansBillDetail.getPrice()); + purchaseInventoryBillDetailDto2.setCostPrice(ansBillDetail.getPrice()); + purchaseInventoryBillDetailDto2.setTotalPrice(ansBillDetail.getTotalPrice()); + purchaseInventoryBillDetailDto2.setCount(purchaseInventoryBillDetailDto2.getCount()); + purchaseInventoryBillDetailDto2.setBatch(ansBillDetail.getBatch()); + } + } + } + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + rb = purchaseInventoryBillDetailService.saveOrUpdateDetailsList3(sid, list); + if (!rb.getCode().equals("200")) { + return rb; + } + } + 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("保存成功"); + } public ResultBean delAllBySids(String[] sids) { ResultBean rb = ResultBean.fireFail(); List sidss = Arrays.asList(sids); 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 d810b6d..3ba9da5 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java @@ -28,5 +28,5 @@ 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 3171ccf..c217aa1 100644 --- a/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java +++ b/src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java @@ -109,7 +109,7 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService saveOrUpdateDetailsList3(String sid, List list) { + ResultBean rb = ResultBean.fireFail(); + baseMapper.deleteByBillSid(sid); + PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper().eq("sid",sid)); + for (PurchaseInventoryBillDetailDto2 v : list) { + PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail(); + BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid"); + wmsReceiptBillDetail.setSourceBillSid(sid); + wmsReceiptBillDetail.setSid(UUID.randomUUID().toString()); + wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle()); + wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode()); +// wmsReceiptBillDetail.setSpecValue(v.getSpecValue()); + wmsReceiptBillDetail.setBatchNumber(v.getBatch()); + WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService + .getOne(new QueryWrapper() + .eq("sourceBillSid",p.getSourceBillSid()) + .eq("goodsSkuSid",wmsReceiptBillDetail.getGoodsSkuSid())); + if(warehouseAnsBillDetail.getActualInCount()+wmsReceiptBillDetail.getCount()>warehouseAnsBillDetail.getOrderCount()){ + return rb.setMsg("入库数量大于预约数量"); + } + 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().eq("sid",v.getWarehouseRackSid())); + warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode()); + warehouseInventory.setFirstInDate(new Date()); + warehouseInventory.setUseOrgSid(p.getUseOrgSid()); + warehouseInventory.setCreateOrgSid(p.getCreateOrgSid()); + warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue()); + warehouseInventory.setGoodsSpuName(v.getGoodsSpuName()); + warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid()); + String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); + String billNo = v.getGoodsSkuCode() + date; + String i = warehouseInventoryService.selectNum(billNo); + if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + warehouseInventory.setGoodsID(billNo); + warehouseInventoryService.save(warehouseInventory); + WarehouseInventoryBatch batch=new WarehouseInventoryBatch(); + batch.setInventorySid(warehouseInventory.getSid()); + batch.setBatchNumber(v.getBatch()); + batch.setSupplierName(p.getSupplierName()); + batch.setSupplierSid(p.getSupplierSid()); + batch.setBillNo(p.getBillNo()); + batch.setBillSid(p.getSid()); + batch.setBillDetailSid(wmsReceiptBillDetail.getSid()); + warehouseInventoryBatchService.save(batch); + baseMapper.insert(wmsReceiptBillDetail); + } + ListwarehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper() + .eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00")); + ListwarehouseAnsBillDetails1=warehouseAnsBillDetailService.list(new QueryWrapper() + .eq("sourceBillSid",p.getSourceBillSid())); + WarehouseAnsBill warehouseAnsBill=warehouseAnsBillService.getOne(new QueryWrapper().eq("sid",p.getSourceBillSid())); + if(warehouseAnsBillDetails.size()==warehouseAnsBillDetails1.size()){ + warehouseAnsBill.setBillState(2); + warehouseAnsBillService.updateById(warehouseAnsBill); + }else{ + warehouseAnsBill.setBillState(1); + warehouseAnsBillService.updateById(warehouseAnsBill); + } + return rb.success(); + } public List getDetailsInit(String sid) { return baseMapper.getDetailsInit(sid); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java index 6ca1cd0..f2b871e 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java @@ -37,7 +37,7 @@ public class WarehouseAnsBillDetail extends BaseEntity { private double waitInCount; @ApiModelProperty("实际入库数量-根据收货单计算") private double actualInCount; - private double price;//单价 - private double totalPrice;//总价 + private BigDecimal price;//单价 + private BigDecimal totalPrice;//总价 private String batch;//批次 } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java index c6d0f6e..539ac73 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java @@ -59,5 +59,6 @@ public interface WarehouseInventoryMapper extends BaseMapper GoodsCountVo selCountsBySkuSid(@Param("skuSid") String skuSid); List selAvailableBySkuSid(@Param("skuSid") String skuSid,@Param("orgSid") String orgSid); + String selectNum(String billNo); } 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 94359ec..0273eca 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -390,5 +390,11 @@ a.goodsSkuSid = #{sid} and a.useOrgSid=#{orgSid} - + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java index 94b6514..4617c1c 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java @@ -568,4 +568,7 @@ public class WarehouseInventoryService extends MybatisBaseService selAvailableBySkuSid(String skuSid,String orgSid) { return baseMapper.selAvailableBySkuSid(skuSid,orgSid); } + public String selectNum(String billNo){ + return baseMapper.selectNum(billNo); + } }