增加 移库合库接口

master
wanghao 3 days ago
parent 1e34dd7bd8
commit dd8b00c139

@ -87,9 +87,7 @@ public class WmsPdaApiController extends BaseController {
@PostMapping("/raw/outSelectByOrderCode") @PostMapping("/raw/outSelectByOrderCode")
public R<List<WmsOutstockDetailVo>> outSelectByOrderCode(String orderCode) { public R<List<WmsOutstockDetailVo>> outSelectByOrderCode(String orderCode) {
List<WmsOutstockDetailVo> wmsOutstockDetailVo = apiService.outSelectByOrderCode(orderCode); List<WmsOutstockDetailVo> wmsOutstockDetailVo = apiService.outSelectByOrderCode(orderCode);
if (wmsOutstockDetailVo == null) { if (wmsOutstockDetailVo == null) return R.fail("出库单号不正确");
return R.fail("出库单号不正确");
}
return R.ok(wmsOutstockDetailVo); return R.ok(wmsOutstockDetailVo);
} }
@ -100,7 +98,6 @@ public class WmsPdaApiController extends BaseController {
public R<Void> rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) { public R<Void> rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) {
// 验证库存 // 验证库存
WmsInventory wmsInventory = apiService.outSelectInVentoryByBatch(outstockRecord); WmsInventory wmsInventory = apiService.outSelectInVentoryByBatch(outstockRecord);
// WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(),outstockRecord.getLocationCode());
if (wmsInventory == null) { if (wmsInventory == null) {
R.fail("物料不在待出库列表内"); R.fail("物料不在待出库列表内");
} }
@ -111,6 +108,7 @@ public class WmsPdaApiController extends BaseController {
Boolean result = apiService.rawOutSubmit(outstockRecord, wmsInventory); Boolean result = apiService.rawOutSubmit(outstockRecord, wmsInventory);
return result ? R.ok() : R.fail(); return result ? R.ok() : R.fail();
} }
/** /**
* *
*/ */
@ -130,6 +128,32 @@ public class WmsPdaApiController extends BaseController {
return result ? R.ok() : R.fail(); 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") @PostMapping("/product/selectVehicle")
public R<BaseToolingInfo> productBindSelectVehicle(String code) { public R<BaseToolingInfo> productBindSelectVehicle(String code) {
BaseToolingInfo baseToolingInfo = apiService.productBindSelectVehicle(code); BaseToolingInfo baseToolingInfo = apiService.productBindSelectVehicle(code);
@ -342,6 +366,7 @@ public class WmsPdaApiController extends BaseController {
/** /**
* *
*
* @return * @return
*/ */
@PostMapping("/selectMachineInfo") @PostMapping("/selectMachineInfo")
@ -352,6 +377,7 @@ public class WmsPdaApiController extends BaseController {
/** /**
* *
*
* @return prod_base_station_info * @return prod_base_station_info
*/ */
@PostMapping("/selectMachineStationList") @PostMapping("/selectMachineStationList")

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

@ -1,7 +1,6 @@
package org.dromara.wms.domain; package org.dromara.wms.domain;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data; import lombok.Data;
import java.io.Serial; import java.io.Serial;
@ -45,7 +44,7 @@ public class WmsOutstockDetail {
/** /**
* *
*/ */
@TableField(typeHandler = JacksonTypeHandler.class) // @TableField(typeHandler = JacksonTypeHandler.class)
private BigDecimal outstockQty; private BigDecimal outstockQty;
private double outSum; private double outSum;
/** /**

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

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

@ -22,7 +22,7 @@ public interface ProdOrderInfoMapper extends BaseMapperPlus<ProdOrderInfo, ProdO
* @param queryWrapper * @param queryWrapper
* @return * @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; package org.dromara.wms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsBaseLocation; import org.dromara.wms.domain.WmsBaseLocation;
import org.dromara.wms.domain.vo.WmsBaseLocationVo; import org.dromara.wms.domain.vo.WmsBaseLocationVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.springframework.stereotype.Repository;
/** /**
* Mapper * Mapper
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* @author Yinq * @author Yinq
* @date 2025-01-08 * @date 2025-01-08
*/ */
@Repository
public interface WmsBaseLocationMapper extends BaseMapperPlus<WmsBaseLocation, WmsBaseLocationVo> { public interface WmsBaseLocationMapper extends BaseMapperPlus<WmsBaseLocation, WmsBaseLocationVo> {
} }

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

@ -94,13 +94,13 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService {
//agv出库任务新增 //agv出库任务新增
.eq(StringUtils.isNotBlank(bo.getAgvStatus()), WmsOutstockDetail::getAgvStatus, bo.getAgvStatus()) .eq(StringUtils.isNotBlank(bo.getAgvStatus()), WmsOutstockDetail::getAgvStatus, bo.getAgvStatus())
.eq(StringUtils.isNotBlank(bo.getIsAgv()), WmsOutstockDetail::getIsAgv, bo.getIsAgv()) .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(bo.getOutstockDetailId() != null, WmsOutstockDetail::getOutstockDetailId, bo.getOutstockDetailId())
.eq(StringUtils.isNotBlank(bo.getOutstockCode()), WmsOutstockDetail::getOutstockCode, bo.getOutstockCode()) .eq(StringUtils.isNotBlank(bo.getOutstockCode()), WmsOutstockDetail::getOutstockCode, bo.getOutstockCode())
.eq(bo.getOutstockId() != null, WmsOutstockDetail::getOutstockId, bo.getOutstockId()) .eq(bo.getOutstockId() != null, WmsOutstockDetail::getOutstockId, bo.getOutstockId())
.eq(bo.getMaterialId() != null, WmsOutstockDetail::getMaterialId, bo.getMaterialId()) .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()) .eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsOutstockDetail::getMaterialCategoryId, bo.getMaterialCategoryId())
.orderByDesc(WmsOutstockDetail::getCreateTime); .orderByDesc(WmsOutstockDetail::getCreateTime);
return lqw; return lqw;

@ -1,29 +1,29 @@
package org.dromara.wms.service.impl; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; 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.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.dromara.wms.service.IWmsReturnOrderService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
/** /**
* Service * Service
@ -39,7 +39,7 @@ public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService {
@Autowired @Autowired
private IWmsReturnOrderService wmsReturnOrderService; private IWmsReturnOrderService wmsReturnOrderService;
private static String NO_RETURN = "1"; //禁用回退 private static final String NO_RETURN = "1"; //禁用回退
/** /**
* *

@ -247,6 +247,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/** /**
* *
*
* @param outstockRecord * @param outstockRecord
* @param wmsInventory * @param wmsInventory
* @return * @return
@ -256,8 +257,9 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
outStoreOperation(outstockRecord, wmsInventory); outStoreOperation(outstockRecord, wmsInventory);
// 修改子表出库数量 // 修改子表出库数量
wmsOutstockDetailMapper.updateOutNumberByObjId(wmsInventory.getOutstockDetailId(), outstockRecord.getOutstockQty()); wmsOutstockDetailMapper.updateOutNumberByObjId(wmsInventory.getOutstockDetailId(), outstockRecord.getOutstockQty());
return null; return true;
} }
// 出库操作 // 出库操作
private void outStoreOperation(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) { private void outStoreOperation(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) {
// 出库数量 // 出库数量
@ -282,6 +284,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/** /**
* *
*
* @param outstockRecord * @param outstockRecord
* @param wmsInventory * @param wmsInventory
* @return * @return
@ -290,7 +293,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
public Boolean specialOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) { public Boolean specialOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) {
// 出库数量 // 出库数量
outStoreOperation(outstockRecord, wmsInventory); outStoreOperation(outstockRecord, wmsInventory);
return null; return true;
} }
/** /**
@ -298,7 +301,10 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
*/ */
@Override @Override
public WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord) { 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); return wmsInventoryMapper.selectOne(lqw);
} }
@ -433,6 +439,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
public WmsOutstockRecordVo setHppOutRecord(String code) { public WmsOutstockRecordVo setHppOutRecord(String code) {
return apiMapper.setHppOutRecord(code); return apiMapper.setHppOutRecord(code);
} }
// 上位机删除 // 上位机删除
@Override @Override
public int semiDeleteErrorCode(String code) { public int semiDeleteErrorCode(String code) {
@ -441,6 +448,7 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
/** /**
* *
*
* @param vo * @param vo
*/ */
@Override @Override
@ -513,4 +521,23 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
} }
return true; 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