增加 移库合库接口

master
wanghao 21 hours ago
parent 1e34dd7bd8
commit dd8b00c139

@ -27,7 +27,7 @@ public class WmsPdaApiController extends BaseController {
* 退-
*/
@PostMapping("/raw/returnSelectCode")
public R<WmsOutstockRecordVo> returnSelectCode(String code,int type) {
public R<WmsOutstockRecordVo> returnSelectCode(String code, int type) {
WmsOutstockRecordVo wmsOutstockRecordVo = null;
if (type == 1) {
@ -73,7 +73,7 @@ public class WmsPdaApiController extends BaseController {
if (wmsBaseLocationVo == null) {
return R.fail("库位条码扫描错误");
}
vo.setWarehouseId(wmsBaseLocationVo.getWarehouseId());
vo.setWarehouseId(wmsBaseLocationVo.getWarehouseId());
Boolean result = apiService.inSubmit(vo);
return result ? R.ok() : R.fail();
}
@ -87,9 +87,7 @@ public class WmsPdaApiController extends BaseController {
@PostMapping("/raw/outSelectByOrderCode")
public R<List<WmsOutstockDetailVo>> outSelectByOrderCode(String orderCode) {
List<WmsOutstockDetailVo> wmsOutstockDetailVo = apiService.outSelectByOrderCode(orderCode);
if (wmsOutstockDetailVo == null) {
return R.fail("出库单号不正确");
}
if (wmsOutstockDetailVo == null) return R.fail("出库单号不正确");
return R.ok(wmsOutstockDetailVo);
}
@ -100,7 +98,6 @@ public class WmsPdaApiController extends BaseController {
public R<Void> rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) {
// 验证库存
WmsInventory wmsInventory = apiService.outSelectInVentoryByBatch(outstockRecord);
// WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(),outstockRecord.getLocationCode());
if (wmsInventory == null) {
R.fail("物料不在待出库列表内");
}
@ -111,25 +108,52 @@ public class WmsPdaApiController extends BaseController {
Boolean result = apiService.rawOutSubmit(outstockRecord, wmsInventory);
return result ? R.ok() : R.fail();
}
/**
*
*/
@PostMapping("/raw/specialOutSubmit")
public R<Void> specialOutSubmit(@RequestBody WmsOutstockRecord outstockRecord) {
// 验证库存
WmsInventoryVo WmsInventoryVo=apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(),outstockRecord.getLocationCode());
WmsInventoryVo WmsInventoryVo = apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(), outstockRecord.getLocationCode());
if (WmsInventoryVo == null) {
R.fail("条码扫描错误");
}
if (WmsInventoryVo.getInventoryQty().compareTo(outstockRecord.getOutstockQty()) < 0) {
R.fail("无法出库,当前库位库存为:" + WmsInventoryVo.getInventoryQty());
}
WmsInventory wmsInventory=new WmsInventory();
WmsInventory wmsInventory = new WmsInventory();
BeanUtils.copyProperties(WmsInventoryVo, wmsInventory);
Boolean result = apiService.specialOutSubmit(outstockRecord, wmsInventory);
return result ? R.ok() : R.fail();
}
/**
*
*/
@GetMapping("/ledgerSelect")
public R<WmsInventoryVo> ledgerSelect(String batchCode,String locationCode) {
// 验证库存
WmsInventoryVo wmsInventoryVo = apiService.ledgerSelect(batchCode, locationCode);
if (wmsInventoryVo == null) {
R.fail("条码扫描错误");
}
return R.ok(wmsInventoryVo) ;
}
// 移库提交
@GetMapping("/moveSubmit")
public R<WmsInventoryVo> moveSubmit(@RequestBody WmsInventoryVo vo) {
// 验证库位
WmsBaseLocationVo wmsBaseLocationVo = baseLocationService.selectLocationVoByCode(vo.getNewLocationCode());
if (wmsBaseLocationVo == null) {
return R.fail("库位条码扫描错误");
}
boolean result=apiService.moveSubmit(vo);
return result ? R.ok() : R.fail();
}
@PostMapping("/product/selectVehicle")
public R<BaseToolingInfo> productBindSelectVehicle(String code) {
BaseToolingInfo baseToolingInfo = apiService.productBindSelectVehicle(code);
@ -145,7 +169,7 @@ public class WmsPdaApiController extends BaseController {
if (tyreInfo == null) {
return R.fail("查询失败,工装不正确");
}
return R.ok("查询成功",tyreInfo);
return R.ok("查询成功", tyreInfo);
}
@ -342,6 +366,7 @@ public class WmsPdaApiController extends BaseController {
/**
*
*
* @return
*/
@PostMapping("/selectMachineInfo")
@ -352,11 +377,12 @@ public class WmsPdaApiController extends BaseController {
/**
*
*
* @return prod_base_station_info
*/
@PostMapping("/selectMachineStationList")
public R<List<String>> selectMachineStationList(Long machineId) {
System.out.println("上位机机台:"+machineId);
System.out.println("上位机机台:" + machineId);
List<String> list = apiService.selectMachineStationList(machineId);
return list == null ? R.fail() : R.ok(list);
}

@ -1,9 +1,7 @@
package org.dromara.wms.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.math.BigDecimal;
@ -17,7 +15,7 @@ import java.util.Date;
*/
@Data
@TableName("wms_inventory")
public class WmsInventory{
public class WmsInventory {
@Serial
private static final long serialVersionUID = 1L;
@ -108,5 +106,7 @@ public class WmsInventory{
*/
@TableField(exist = false)
private String materialCategoryName;//字段映射
@TableField(exist = false)
private String materialUnit;//字段映射
}

@ -1,7 +1,6 @@
package org.dromara.wms.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import java.io.Serial;
@ -16,7 +15,7 @@ import java.util.Date;
*/
@Data
@TableName("wms_outstock_detail")
public class WmsOutstockDetail {
public class WmsOutstockDetail {
@Serial
private static final long serialVersionUID = 1L;
@ -45,7 +44,7 @@ public class WmsOutstockDetail {
/**
*
*/
@TableField(typeHandler = JacksonTypeHandler.class)
// @TableField(typeHandler = JacksonTypeHandler.class)
private BigDecimal outstockQty;
private double outSum;
/**

@ -4,10 +4,10 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.wms.domain.WmsInventory;
import java.io.Serial;
@ -114,6 +114,8 @@ public class WmsInventoryVo implements Serializable {
private String warehouseCode;//字段映射
private String materialCode;//字段映射
private String materialName;//字段映射
private String unitName;//字段映射
private String materialUnit;//字段映射
private String warehouseId;
private BigDecimal maxStockAmount;
private BigDecimal minStockAmount;
@ -124,4 +126,7 @@ public class WmsInventoryVo implements Serializable {
*/
private String materialCategoryName;//字段映射
// 移库库位
private String newLocationCode;
}

@ -4,7 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ibm.icu.math.BigDecimal;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.wms.domain.WmsOutstockDetail;
@ -56,8 +55,8 @@ public class WmsOutstockDetailVo implements Serializable {
/**
*
*/
@ExcelProperty(value = "出库数量")
private BigDecimal outstockQty;
// @ExcelProperty(value = "出库数量")
// private BigDecimal outstockQty;
/**
*

@ -22,7 +22,7 @@ public interface ProdOrderInfoMapper extends BaseMapperPlus<ProdOrderInfo, ProdO
* @param queryWrapper
* @return
*/
public Page<ProdOrderInfoVo> selectProdOrderInfoList(@Param("page") Page<ProdOrderInfoVo> page, @Param(Constants.WRAPPER) Wrapper<ProdOrderInfo> queryWrapper);
Page<ProdOrderInfoVo> selectProdOrderInfoList(@Param("page") Page<ProdOrderInfoVo> page, @Param(Constants.WRAPPER) Wrapper<ProdOrderInfo> queryWrapper);

@ -1,8 +1,9 @@
package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsBaseLocation;
import org.dromara.wms.domain.vo.WmsBaseLocationVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.springframework.stereotype.Repository;
/**
* Mapper
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* @author Yinq
* @date 2025-01-08
*/
@Repository
public interface WmsBaseLocationMapper extends BaseMapperPlus<WmsBaseLocation, WmsBaseLocationVo> {
}

@ -76,4 +76,7 @@ public interface IWmsPdaApiService {
*/
Boolean productionSubmitInStoreInfo(ProdInStockApiVo vo);
WmsInventoryVo ledgerSelect(String batchCode, String locationCode);
boolean moveSubmit(WmsInventoryVo vo);
}

@ -94,13 +94,13 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService {
//agv出库任务新增
.eq(StringUtils.isNotBlank(bo.getAgvStatus()), WmsOutstockDetail::getAgvStatus, bo.getAgvStatus())
.eq(StringUtils.isNotBlank(bo.getIsAgv()), WmsOutstockDetail::getIsAgv, bo.getIsAgv())
.eq(bo.getCompleteQty() != null, WmsOutstockDetail::getCompleteQty, bo.getCompleteQty())
// .eq(bo.getCompleteQty() != null, WmsOutstockDetail::getCompleteQty, bo.getCompleteQty())
//出库单子表原有
.eq(bo.getOutstockDetailId() != null, WmsOutstockDetail::getOutstockDetailId, bo.getOutstockDetailId())
.eq(StringUtils.isNotBlank(bo.getOutstockCode()), WmsOutstockDetail::getOutstockCode, bo.getOutstockCode())
.eq(bo.getOutstockId() != null, WmsOutstockDetail::getOutstockId, bo.getOutstockId())
.eq(bo.getMaterialId() != null, WmsOutstockDetail::getMaterialId, bo.getMaterialId())
.eq(bo.getOutstockQty() != null, WmsOutstockDetail::getOutstockQty, bo.getOutstockQty())
// .eq(bo.getOutstockQty() != null, WmsOutstockDetail::getOutstockQty, bo.getOutstockQty())
.eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsOutstockDetail::getMaterialCategoryId, bo.getMaterialCategoryId())
.orderByDesc(WmsOutstockDetail::getCreateTime);
return lqw;

@ -1,29 +1,29 @@
package org.dromara.wms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.wms.domain.*;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.wms.domain.BaseMaterialCategory;
import org.dromara.wms.domain.BaseMaterialInfo;
import org.dromara.wms.domain.WmsOutstockRecord;
import org.dromara.wms.domain.bo.WmsOutstockRecordBo;
import org.dromara.wms.domain.bo.WmsReturnOrderBo;
import org.dromara.wms.domain.vo.WmsOutstockRecordVo;
import org.dromara.wms.mapper.WmsOutstockRecordMapper;
import org.dromara.wms.service.IWmsOutstockRecordService;
import org.dromara.wms.service.IWmsReturnOrderService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.wms.domain.bo.WmsOutstockRecordBo;
import org.dromara.wms.domain.vo.WmsOutstockRecordVo;
import org.dromara.wms.mapper.WmsOutstockRecordMapper;
import org.dromara.wms.service.IWmsOutstockRecordService;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
@ -39,7 +39,7 @@ public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService {
@Autowired
private IWmsReturnOrderService wmsReturnOrderService;
private static String NO_RETURN = "1"; //禁用回退
private static final String NO_RETURN = "1"; //禁用回退
/**
*

@ -247,8 +247,9 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/**
*
*
* @param outstockRecord
* @param wmsInventory
* @param wmsInventory
* @return
*/
@Override
@ -256,8 +257,9 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
outStoreOperation(outstockRecord, wmsInventory);
// 修改子表出库数量
wmsOutstockDetailMapper.updateOutNumberByObjId(wmsInventory.getOutstockDetailId(), outstockRecord.getOutstockQty());
return null;
return true;
}
// 出库操作
private void outStoreOperation(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) {
// 出库数量
@ -282,6 +284,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/**
*
*
* @param outstockRecord
* @param wmsInventory
* @return
@ -290,7 +293,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
public Boolean specialOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) {
// 出库数量
outStoreOperation(outstockRecord, wmsInventory);
return null;
return true;
}
/**
@ -298,7 +301,10 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
*/
@Override
public WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord) {
MPJLambdaWrapper<WmsInventory> lqw = JoinWrappers.lambda(WmsInventory.class).rightJoin(WmsOutstockDetail.class, WmsOutstockDetail::getMaterialId, WmsInventory::getMaterialId).select(WmsOutstockDetail::getOutstockDetailId).eq(WmsOutstockDetail::getOutstockCode, outstockRecord.getOutstockCode()).eq(WmsInventory::getBatchCode, outstockRecord.getBatchCode()).eq(WmsInventory::getLocationCode, outstockRecord.getLocationCode());
MPJLambdaWrapper<WmsInventory> lqw = JoinWrappers.lambda(WmsInventory.class)
.rightJoin(WmsOutstockDetail.class, WmsOutstockDetail::getMaterialId, WmsInventory::getMaterialId).
select(WmsOutstockDetail::getOutstockDetailId).eq(WmsOutstockDetail::getOutstockCode, outstockRecord.getOutstockCode())
.eq(WmsInventory::getBatchCode, outstockRecord.getBatchCode()).eq(WmsInventory::getLocationCode, outstockRecord.getLocationCode());
return wmsInventoryMapper.selectOne(lqw);
}
@ -433,6 +439,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
public WmsOutstockRecordVo setHppOutRecord(String code) {
return apiMapper.setHppOutRecord(code);
}
// 上位机删除
@Override
public int semiDeleteErrorCode(String code) {
@ -441,20 +448,21 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/**
*
*
* @param vo
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean productionSubmitInStoreInfo(ProdInStockApiVo vo) {
Date nowDate = new Date();
if (StringUtils.isEmpty(vo.getSecondConfirmFlag())){
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)){
if (StringUtils.isNull(materialInfoVo)) {
throw new ServiceException("此物料不存在!");
}
WmsInstockPrint print = new WmsInstockPrint();
@ -470,7 +478,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
print.setCodeYesNo("1");
print.setLocationId(locationId);
if (secondConfirmFlag.equals("0")){
if (secondConfirmFlag.equals("0")) {
print.setInboundStatus("1");
print.setActualInboundTime(nowDate);
WmsInstockRecord record = new WmsInstockRecord();
@ -478,7 +486,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
record.setMaterialId(vo.getMaterialId());
record.setWarehouseId(warehouseId);
WmsBaseLocationVo locationVo = wmsBaseLocationMapper.selectVoById(locationId);
if (locationVo == null){
if (locationVo == null) {
throw new ServiceException("此库位不存在!");
}
record.setLocationCode(locationVo.getLocationCode());
@ -507,10 +515,29 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
wmsInventoryMapper.updateById(inventory);
}
wmsInstockPrintMapper.insert(print);
} else if (secondConfirmFlag.equals("1")){
} else if (secondConfirmFlag.equals("1")) {
print.setInboundStatus("0");
wmsInstockPrintMapper.insert(print);
}
return true;
}
@Override
public WmsInventoryVo ledgerSelect(String batchCode, String locationCode) {
MPJLambdaWrapper<WmsInventory> lqw = JoinWrappers.lambda(WmsInventory.class)
.selectAll(WmsInventory.class)
.select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit, BaseMaterialInfo::getMaterialSpec)
.leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId)
.eq(WmsInventory::getBatchCode, batchCode).eq(WmsInventory::getLocationCode, locationCode);
return wmsInventoryMapper.selectVoOne(lqw);
}
@Override
public boolean moveSubmit(WmsInventoryVo vo) {
WmsInventory inventory = new WmsInventory();
inventory.setInventoryId(vo.getInventoryId());
inventory.setLocationCode(vo.getNewLocationCode());
int i = wmsInventoryMapper.updateById(inventory);
return i > 0;
}
}

Loading…
Cancel
Save