update 添加wms生产入库接口

master
yinq 4 days ago
parent 6c7a88110f
commit 3c097a77ce

@ -3,6 +3,7 @@ package org.dromara.wms.controller.api;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
import org.dromara.wms.domain.vo.ProdInStockApiVo;
import org.dromara.wms.domain.vo.WmsHppInStockDetailVo;
import org.dromara.wms.domain.vo.WmsHppStorePlaceVo;
import org.dromara.wms.domain.vo.WmsInventoryVo;
@ -58,5 +59,14 @@ public class MachineApiController extends BaseController {
return R.ok(list);
}
/**
*
* @param vo
*/
@PostMapping("/production/submitInstore")
public R<Void> productionSubmitInStoreInfo(@RequestBody ProdInStockApiVo vo) {
Boolean result = apiService.productionSubmitInStoreInfo(vo);
return result ? R.ok() : R.fail();
}
}

@ -0,0 +1,74 @@
package org.dromara.wms.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
*
*
* @author Yinq
* @date 2025-08-12
*/
@Data
@ExcelIgnoreUnannotated
public class ProdInStockApiVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private String tenantId;
/**
* 0 1
*/
private String secondConfirmFlag;
/**
*
*/
private String batchCode;
/**
*
*/
private String shelfNo;
/**
* id
*/
private Long locationId;
/**
* 0 1
*/
private String gradeCode;
/**
* 0 1
*/
private String productCategory;
/**
*
*/
private Long materialId;
/**
*
*/
private BigDecimal instockNum;
/**
* ID
*/
private Long shelfId;
}

@ -68,4 +68,12 @@ public interface IWmsPdaApiService {
WmsOutstockRecordVo setHppOutRecord(String code);
int semiDeleteErrorCode(String code);
/**
*
* @param vo
* @return
*/
Boolean productionSubmitInStoreInfo(ProdInStockApiVo vo);
}

@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.wms.domain.*;
@ -16,8 +18,10 @@ import org.dromara.wms.mapper.*;
import org.dromara.wms.service.IWmsPdaApiService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@RequiredArgsConstructor
@ -41,6 +45,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
private final WmsOutstockDetailMapper wmsOutstockDetailMapper;
private final BaseMaterialInfoMapper baseMaterialInfoMapper;//物料基础信息
private final WmsHppTransferMapper wmsHppTransferMapper;
private final WmsBaseLocationMapper wmsBaseLocationMapper;
@Override
public WmsOutstockRecordVo returnSelectCode(String code) {
@ -412,4 +417,79 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
public int semiDeleteErrorCode(String code) {
return apiMapper.semiDeleteErrorCode(code);
}
/**
*
* @param vo
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean productionSubmitInStoreInfo(ProdInStockApiVo vo) {
Date nowDate = new Date();
if (StringUtils.isEmpty(vo.getSecondConfirmFlag())){
throw new ServiceException("二次确认标识为空!");
}
String secondConfirmFlag = vo.getSecondConfirmFlag();// 二次确认标识0否 1是
Long locationId = vo.getLocationId() == null ? 3L : vo.getLocationId();
Long warehouseId = 4L;//默认仓库
BaseMaterialInfoVo materialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId());
if (StringUtils.isNull(materialInfoVo)){
throw new ServiceException("此物料不存在!");
}
WmsInstockPrint print = new WmsInstockPrint();
print.setBatchCode(vo.getBatchCode());
print.setMaterialQty(1L);
print.setApportionQty(vo.getInstockNum());
print.setMaterialId(vo.getMaterialId());
print.setMaterialCode(materialInfoVo.getMaterialCode());
print.setMaterialName(materialInfoVo.getMaterialName());
print.setMaterialSpe(materialInfoVo.getMaterialSpec());
print.setUnitName(materialInfoVo.getMaterialUnit());
print.setMaterialCategoryId(materialInfoVo.getMaterialCategoryId());
print.setCodeYesNo("1");
print.setLocationId(locationId);
if (secondConfirmFlag.equals("0")){
print.setInboundStatus("1");
print.setActualInboundTime(nowDate);
WmsInstockRecord record = new WmsInstockRecord();
record.setBatchCode(vo.getBatchCode());
record.setMaterialId(vo.getMaterialId());
record.setWarehouseId(warehouseId);
WmsBaseLocationVo locationVo = wmsBaseLocationMapper.selectVoById(locationId);
if (locationVo == null){
throw new ServiceException("此库位不存在!");
}
record.setLocationCode(locationVo.getLocationCode());
record.setMaterialCode(materialInfoVo.getMaterialCode());
record.setMaterialName(materialInfoVo.getMaterialName());
record.setInstockQty(vo.getInstockNum().doubleValue());
record.setMaterialCategoryId(materialInfoVo.getMaterialCategoryId());
wmsInstockRecordMapper.insert(record);
// 查询
WmsInventoryVo wmsInventoryVo = selectInVentoryByBatchCode(vo.getBatchCode(), locationVo.getLocationCode());
if (wmsInventoryVo == null) {
// 插入库存
WmsInventory inventory = new WmsInventory();
BeanUtils.copyProperties(record, inventory);
inventory.setMaterialCategoryId(Long.valueOf(materialInfoVo.getMaterialCategoryId()));
inventory.setInventoryQty(vo.getInstockNum());
inventory.setInventoryStatus("1");
inventory.setStoreId(warehouseId);
inventory.setWarehouseId(warehouseId.toString());
wmsInventoryMapper.insert(inventory);
} else {
WmsInventory inventory = new WmsInventory();
inventory.setInventoryId(wmsInventoryVo.getInventoryId());
inventory.setInventoryQty(wmsInventoryVo.getInventoryQty().add(vo.getInstockNum()));
wmsInventoryMapper.updateById(inventory);
}
wmsInstockPrintMapper.insert(print);
} else if (secondConfirmFlag.equals("1")){
print.setInboundStatus("0");
wmsInstockPrintMapper.insert(print);
}
return true;
}
}

Loading…
Cancel
Save