28
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;//批次
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user