wangpengfei 9 months ago
parent
commit
a62d062c29
  1. 5
      src/main/java/com/yxt/warehouse/apiadmin/PurchaseInventoryBillRest.java
  2. 42
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillDto3.java
  3. 128
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybill/PurchaseInventoryBillService.java
  4. 2
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.java
  5. 7
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailMapper.xml
  6. 84
      src/main/java/com/yxt/warehouse/biz/purchaseinventorybilldetail/PurchaseInventoryBillDetailService.java
  7. 4
      src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetail.java
  8. 1
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java
  9. 8
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml
  10. 3
      src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java

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

@ -49,6 +49,11 @@ public class PurchaseInventoryBillRest {
ResultBean<String> confirm(@RequestBody PurchaseInventoryBillDto2 dto) {
return purchaseInventoryBillService.confirm(dto);
}
@ApiOperation("确认(对外)")
@PostMapping("/confirmByBill")
ResultBean<String> confirmByBill(@RequestParam PurchaseInventoryBillDto3 dto) {
return purchaseInventoryBillService.confirmByBill(dto);
}
@ApiOperation("生成验货入库")
@PostMapping("/inspectionWarehousing")
ResultBean<String> inspectionWarehousing(@RequestBody PurchaseInventoryBillDto2 dto) {

42
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<PurchaseInventoryBillDetailDto2> list = new ArrayList<>();
private String userSid;
private String userName;
private String storageTime;
}

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

@ -188,7 +188,53 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
return rb.success();
}
public ResultBean<String> saveBill1(List<PurchaseInventoryBillDto2> dto,String userSid,String userName) {
ResultBean<String> 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<PurchaseInventoryBillDetailDto2> 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<String> saveOrUpdateBill2(PurchaseInventoryBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
@ -353,7 +399,89 @@ public class PurchaseInventoryBillService extends MybatisBaseService<PurchaseInv
}
return rb.success().setMsg("保存成功");
}
public ResultBean<String> confirmByBill(PurchaseInventoryBillDto3 dto) {
ResultBean<String> rb = ResultBean.fireFail();
WarehouseAnsBill ansBill=warehouseAnsBillService.getOne(new QueryWrapper<WarehouseAnsBill>().eq("sourceBillNo",dto.getSourceBillNo()));
List<WarehouseAnsBillDetail>ansBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>().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<PurchaseInventoryBillDetailDto2> 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<String> sidss = Arrays.asList(sids);

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

@ -28,5 +28,5 @@ 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,11 +37,4 @@
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>

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

@ -109,7 +109,7 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid());
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
String billNo = v.getGoodsSkuCode() + date;
String i = baseMapper.selectNum(billNo);
String i = warehouseInventoryService.selectNum(billNo);
if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
@ -142,7 +142,89 @@ public class PurchaseInventoryBillDetailService extends MybatisBaseService<Purch
}
return rb.success();
}
public ResultBean<String> saveOrUpdateDetailsList3(String sid, List<PurchaseInventoryBillDetailDto2> list) {
ResultBean<String> rb = ResultBean.fireFail();
baseMapper.deleteByBillSid(sid);
PurchaseInventoryBill p=purchaseInventoryBillService.getOne(new QueryWrapper<PurchaseInventoryBill>().eq("sid",sid));
for (PurchaseInventoryBillDetailDto2 v : list) {
PurchaseInventoryBillDetail wmsReceiptBillDetail = new PurchaseInventoryBillDetail();
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setSourceBillSid(sid);
wmsReceiptBillDetail.setSid(UUID.randomUUID().toString());
wmsReceiptBillDetail.setGoodsSkuTitle(v.getGoodsSkuTitle());
wmsReceiptBillDetail.setGoodsSkuCode(v.getGoodsSkuCode());
// wmsReceiptBillDetail.setSpecValue(v.getSpecValue());
wmsReceiptBillDetail.setBatchNumber(v.getBatch());
WarehouseAnsBillDetail warehouseAnsBillDetail=warehouseAnsBillDetailService
.getOne(new QueryWrapper<WarehouseAnsBillDetail>()
.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<WarehouseRack>().eq("sid",v.getWarehouseRackSid()));
warehouseInventory.setWarehouseRackCode(warehouseRack.getRackCode());
warehouseInventory.setFirstInDate(new Date());
warehouseInventory.setUseOrgSid(p.getUseOrgSid());
warehouseInventory.setCreateOrgSid(p.getCreateOrgSid());
warehouseInventory.setGoodsSkuOwnSpec(v.getSpecValue());
warehouseInventory.setGoodsSpuName(v.getGoodsSpuName());
warehouseInventory.setGoodSpuSid(v.getGoodsSpuSid());
String date = DateUtil.format(DateUtil.date(), "yyyyMMdd");
String billNo = v.getGoodsSkuCode() + date;
String i = warehouseInventoryService.selectNum(billNo);
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);
}
List<WarehouseAnsBillDetail>warehouseAnsBillDetails=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()).eq("waitInCount","0.00"));
List<WarehouseAnsBillDetail>warehouseAnsBillDetails1=warehouseAnsBillDetailService.list(new QueryWrapper<WarehouseAnsBillDetail>()
.eq("sourceBillSid",p.getSourceBillSid()));
WarehouseAnsBill warehouseAnsBill=warehouseAnsBillService.getOne(new QueryWrapper<WarehouseAnsBill>().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<PurchaseInventoryBillDetailVo> getDetailsInit(String sid) {
return baseMapper.getDetailsInit(sid);
}

4
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;//批次
}

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

@ -59,5 +59,6 @@ public interface WarehouseInventoryMapper extends BaseMapper<WarehouseInventory>
GoodsCountVo selCountsBySkuSid(@Param("skuSid") String skuSid);
List<AvailableCountVo> selAvailableBySkuSid(@Param("skuSid") String skuSid,@Param("orgSid") String orgSid);
String selectNum(String billNo);
}

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

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

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

@ -568,4 +568,7 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven
public List<AvailableCountVo> selAvailableBySkuSid(String skuSid,String orgSid) {
return baseMapper.selAvailableBySkuSid(skuSid,orgSid);
}
public String selectNum(String billNo){
return baseMapper.selectNum(billNo);
}
}

Loading…
Cancel
Save