增加 出库接口

master
wanghao 2 weeks ago
parent 76c01f7bd1
commit 3880c725fa

@ -5,6 +5,7 @@ import org.dromara.common.core.domain.R;
import org.dromara.common.web.core.BaseController;
import org.dromara.wms.domain.ShiftChange;
import org.dromara.wms.domain.WmsInventory;
import org.dromara.wms.domain.WmsOutstockRecord;
import org.dromara.wms.domain.bo.WmsReturnOrderBo;
import org.dromara.wms.domain.vo.*;
import org.dromara.wms.service.*;
@ -90,9 +91,26 @@ public class WmsPdaApiController extends BaseController {
return R.ok(wmsOutstockDetailVo);
}
/**
*
* @return
*/
@PostMapping("/raw/selectInVentoryByBatchCode")
public void rawSelectInVentoryByBatchCode(String bacthCode, String locationCode) {
WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(bacthCode,locationCode);
public R<Void> rawSelectInVentoryByBatchCode(WmsOutstockRecord outstockRecord) {
// 验证库存
WmsInventory wmsInventory=apiService.outSelectInVentoryByBatch(outstockRecord);
// WmsInventoryVo wmsInventoryVo=apiService.selectInVentoryByBatchCode(outstockRecord.getBatchCode(),outstockRecord.getLocationCode());
if (wmsInventory == null) {
R.fail("物料不在待出库列表内");
}
if (wmsInventory.getInventoryQty().compareTo(outstockRecord.getOutstockQty())<0){
R.fail("当前库位库存为:"+wmsInventory.getInventoryQty());
}
Boolean result = apiService.rawOutSubmit(outstockRecord,wmsInventory);
return result ? R.ok() : R.fail();
}
/**
@ -207,12 +225,15 @@ public class WmsPdaApiController extends BaseController {
List<TeamInfoVo> teamList =apiService.selectTeams();
return R.ok(teamList);
}
@PostMapping("/shiftChangeSubmit")
public R<Void> shiftChangeSubmit(ShiftChange shiftChange) {
Boolean result = apiService.shiftChangeSubmit(shiftChange);
return result ? R.ok() : R.fail();
}
@PostMapping("/selectStoreInfo")
public void selectStoreInfo(String type){
List<StoreInfoVo> list=apiService.selectStoreInfo(type);
}
}

@ -93,12 +93,12 @@ public class WmsInventory{
private Date updateTime;
@TableField(exist = false)
private String warehouseCode;//字段映射
// @TableField(exist = false)
private String materialCode;//字段映射
private String materialCode;
@TableField(exist = false)
private String materialName;//字段映射
private String warehouseId;
@TableField(exist = false)
private Long outstockDetailId;//字段映射
}

@ -84,7 +84,9 @@ public class WmsPsmStorage{
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
@TableField(exist = false)
private String materialCode;
}

@ -0,0 +1,10 @@
package org.dromara.wms.domain.vo;
import lombok.Data;
@Data
public class StoreInfoVo {
private Long id;
private String code;
private String Name;
}

@ -3,6 +3,7 @@ package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsInventory;
import org.dromara.wms.domain.WmsOutstockRecord;
import org.dromara.wms.domain.bo.WmsInventoryBo;
import org.dromara.wms.domain.vo.WmsInventoryVo;
import org.springframework.stereotype.Repository;
@ -24,4 +25,6 @@ public interface WmsInventoryMapper extends BaseMapperPlus<WmsInventory, WmsInve
List<WmsInventoryVo> listInventoryAlarm(@Param("entity")WmsInventoryBo bo);
List<WmsInventoryVo> selectInventoryMaterialInfoList(@Param("entity")WmsInventoryBo bo);
// WmsInventoryVo outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord);
}

@ -1,10 +1,14 @@
package org.dromara.wms.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.wms.domain.WmsOutstockDetail;
import org.dromara.wms.domain.vo.WmsOutstockDetailVo;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
/**
* -Mapper
*
@ -14,5 +18,6 @@ import org.springframework.stereotype.Repository;
@Repository
public interface WmsOutstockDetailMapper extends BaseMapperPlus<WmsOutstockDetail, WmsOutstockDetailVo> {
@Update("UPDATE wms_outstock_detail SET out_sum = out_sum + #{outstockQty} WHERE outstock_detail_id = #{outstockDetailId} ")
int updateOutNumberByObjId(@Param("outstockDetailId") Long outstockDetailId,@Param("outstockQty") BigDecimal outstockQty);
}

@ -1,6 +1,8 @@
package org.dromara.wms.service;
import org.dromara.wms.domain.ShiftChange;
import org.dromara.wms.domain.WmsInventory;
import org.dromara.wms.domain.WmsOutstockRecord;
import org.dromara.wms.domain.vo.*;
import java.util.List;
@ -35,4 +37,10 @@ public interface IWmsPdaApiService {
List<TeamInfoVo> selectTeams();
Boolean shiftChangeSubmit(ShiftChange shiftChange);
Boolean rawOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventoryVo);
WmsInventory outSelectInVentoryByBatch(WmsOutstockRecord outstockRecord);
List<StoreInfoVo> selectStoreInfo(String type);
}

@ -14,6 +14,7 @@ import org.dromara.common.translation.annotation.Translation;
import org.dromara.wms.domain.*;
import org.dromara.wms.domain.vo.*;
import org.dromara.wms.mapper.*;
import org.dromara.wms.service.IWmsOutstockRecordService;
import org.dromara.wms.service.IWmsPdaApiService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -28,7 +29,6 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
private final WmsOutstockRecordMapper wmsOutstockRecordMapper;
private final WmsPdaApiMapper apiMapper;
private final WmsHppInStockDetailMapper baseMapper;
private final WmsPsmInStockMapper wmsPsmInStockMapper;
private final WmsPsmInLoadDetailMapper wmsPsmInLoadDetailMapper;
@ -224,4 +224,63 @@ public class WmsPdaApiServiceImpl implements IWmsPdaApiService {
return wmsInventoryMapper.selectVoOne(lqw);
}
@Override
public List<TeamInfoVo> selectTeams() {
return apiMapper.selectTeams();
}
@Override
public Boolean shiftChangeSubmit(ShiftChange shiftChange) {
shiftChange.setUserId(LoginHelper.getUserId());
int i = apiMapper.shiftChangeSubmit(shiftChange);
return i > 0;
}
@Override
public Boolean rawOutSubmit(WmsOutstockRecord outstockRecord, WmsInventory wmsInventory) {
// 出库数量
BigDecimal outstockQty = outstockRecord.getOutstockQty();
// 库存
BigDecimal inventoryQty = wmsInventory.getInventoryQty();
inventoryQty = inventoryQty.subtract(outstockQty);
if (inventoryQty.compareTo(BigDecimal.ZERO) == 0) {
wmsInventoryMapper.deleteById(wmsInventory.getInventoryId());
}else {
WmsInventory inventory = new WmsInventory();
inventory.setInventoryId(wmsInventory.getInventoryId());
inventory.setInventoryQty(inventoryQty);
wmsInventoryMapper.updateById(inventory);
}
// 插入记录
outstockRecord.setMaterialId(wmsInventory.getMaterialId());
outstockRecord.setCreateBy(LoginHelper.getUserId());
outstockRecord.setCreateTime(DateUtils.getNowDate());
wmsOutstockRecordMapper.insert(outstockRecord);
// 修改子表出库数量
wmsOutstockDetailMapper.updateOutNumberByObjId(wmsInventory.getOutstockDetailId(),outstockRecord.getOutstockQty());
return null;
}
/**
*
* @param outstockRecord
* @return
*/
@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());
return wmsInventoryMapper.selectOne(lqw);
}
@Override
public List<StoreInfoVo> selectStoreInfo(String type) {
return List.of();
}
}

Loading…
Cancel
Save