Browse Source

修改采购收货推荐库位接口。

master
刘忱 2 years ago
parent
commit
8850691e9f
  1. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java
  2. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java
  3. 149
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java

@ -95,7 +95,13 @@ public interface BalanceMapper extends BaseMapperX<BalanceDO> {
} }
/** /**
* 更新库存余额数量出库qty是负数 * 更查找库存余额
* @param packingNumber 包装号
* @param itemCode 物品编号
* @param batch 批次
* @param inventoryStatus 库存状态
* @param locationCode 库位编号
* @return 符合条件的库存余额
*/ */
default List<BalanceDO> getBalanceList(String packingNumber, String itemCode, String batch, String inventoryStatus, String locationCode) { default List<BalanceDO> getBalanceList(String packingNumber, String itemCode, String batch, String inventoryStatus, String locationCode) {
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
@ -117,6 +123,17 @@ public interface BalanceMapper extends BaseMapperX<BalanceDO> {
return selectList(queryWrapper); return selectList(queryWrapper);
} }
/**
* 根据库位编号查找库存余额数量
* @param locationCode 库位编号
* @return 库存余额数量
*/
default long getBalanceCount(String locationCode) {
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("location_code", locationCode);
return selectCount(queryWrapper);
}
default PageResult<BalanceDO> selectPage(BalancePageReqVO reqVO) { default PageResult<BalanceDO> selectPage(BalancePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BalanceDO>() return selectPage(reqVO, new LambdaQueryWrapperX<BalanceDO>()
.eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber())

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java

@ -4,7 +4,6 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.location.vo.*; import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
import javax.validation.Valid; import javax.validation.Valid;
@ -93,8 +92,10 @@ public interface LocationService {
/** /**
* 上架推荐策略 * 上架推荐策略
* @param ruleRespVO 上架策略 * @param ruleRespVO 上架策略
* @param itembasicDO 物品 * @param itemCode 物料编码
* @param batch 批次
* @param inventoryStatus 状态
* @return * @return
*/ */
LocationDO inspectLocation(RuleRespVO ruleRespVO, ItembasicDO itembasicDO); LocationDO inspectLocation(RuleRespVO ruleRespVO, String itemCode, String batch, String inventoryStatus);
} }

149
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java

@ -13,7 +13,7 @@ import com.win.framework.datapermission.core.util.DataPermissionUtils;
import com.win.module.wms.controller.location.vo.*; import com.win.module.wms.controller.location.vo.*;
import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.location.LocationConvert; import com.win.module.wms.convert.location.LocationConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper;
@ -45,16 +45,16 @@ public class LocationServiceImpl implements LocationService {
private BalanceMapper balanceMapper; private BalanceMapper balanceMapper;
@Resource @Resource
private ExpectoutMapper expectoutMapper ; private ExpectoutMapper expectoutMapper;
@Resource @Resource
private RuleService ruleService; private RuleService ruleService;
@Override @Override
public Long createLocation(LocationCreateReqVO createReqVO) { public Long createLocation(LocationCreateReqVO createReqVO) {
validateLocationForCreateOrUpdate(createReqVO.getId(),createReqVO.getCode(),createReqVO.getAreaCode(),createReqVO.getWarehouseCode() validateLocationForCreateOrUpdate(createReqVO.getId(), createReqVO.getCode(), createReqVO.getAreaCode(), createReqVO.getWarehouseCode()
,createReqVO.getLocationGroupCode(),createReqVO.getErpLocationCode(),createReqVO.getType(),createReqVO.getPickPriority() , createReqVO.getLocationGroupCode(), createReqVO.getErpLocationCode(), createReqVO.getType(), createReqVO.getPickPriority()
,createReqVO.getUserGroupCode(),createReqVO.getAvailable()); , createReqVO.getUserGroupCode(), createReqVO.getAvailable());
// 插入 // 插入
LocationDO location = LocationConvert.INSTANCE.convert(createReqVO); LocationDO location = LocationConvert.INSTANCE.convert(createReqVO);
locationMapper.insert(location); locationMapper.insert(location);
@ -65,9 +65,9 @@ public class LocationServiceImpl implements LocationService {
@Override @Override
public void updateLocation(LocationUpdateReqVO updateReqVO) { public void updateLocation(LocationUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validateLocationForCreateOrUpdate(updateReqVO.getId(),updateReqVO.getCode(),updateReqVO.getAreaCode(),updateReqVO.getWarehouseCode() validateLocationForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getCode(), updateReqVO.getAreaCode(), updateReqVO.getWarehouseCode()
,updateReqVO.getLocationGroupCode(),updateReqVO.getErpLocationCode(),updateReqVO.getType(),updateReqVO.getPickPriority() , updateReqVO.getLocationGroupCode(), updateReqVO.getErpLocationCode(), updateReqVO.getType(), updateReqVO.getPickPriority()
,updateReqVO.getUserGroupCode(),updateReqVO.getAvailable()); , updateReqVO.getUserGroupCode(), updateReqVO.getAvailable());
// 更新 // 更新
LocationDO updateObj = LocationConvert.INSTANCE.convert(updateReqVO); LocationDO updateObj = LocationConvert.INSTANCE.convert(updateReqVO);
locationMapper.updateById(updateObj); locationMapper.updateById(updateObj);
@ -105,7 +105,8 @@ public class LocationServiceImpl implements LocationService {
public PageResult<LocationDO> getLocationSenior(CustomConditions conditions) { public PageResult<LocationDO> getLocationSenior(CustomConditions conditions) {
return locationMapper.selectSenior(conditions); return locationMapper.selectSenior(conditions);
} }
private String validateLocationImport( LocationDO location ){
private String validateLocationImport(LocationDO location) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
try { try {
validateLocationExists(null); validateLocationExists(null);
@ -113,7 +114,7 @@ public class LocationServiceImpl implements LocationService {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { try {
validateCodeExists(null,location.getCode()); validateCodeExists(null, location.getCode());
} catch (ServiceException ex) { } catch (ServiceException ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
@ -168,22 +169,21 @@ public class LocationServiceImpl implements LocationService {
} }
List<LocationImportErrorVO> errorList = new ArrayList<>(); List<LocationImportErrorVO> errorList = new ArrayList<>();
locations.forEach(location -> { locations.forEach(location -> {
LocationDO locationDO = LocationConvert.INSTANCE.convert(location); LocationDO locationDO = LocationConvert.INSTANCE.convert(location);
String message =this.validateLocationImport(locationDO); String message = this.validateLocationImport(locationDO);
boolean flag = true; boolean flag = true;
if(!message.isEmpty()){ if (!message.isEmpty()) {
LocationImportErrorVO importErrorVO = LocationConvert.INSTANCE.convert2(locationDO); LocationImportErrorVO importErrorVO = LocationConvert.INSTANCE.convert2(locationDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
importErrorVO.setImportRemark(message.substring(0, message.length() - 1)); importErrorVO.setImportRemark(message.substring(0, message.length() - 1));
errorList.add(importErrorVO); errorList.add(importErrorVO);
flag = false; flag = false;
} }
if(flag){ if (flag) {
LocationDO existConfigurationSetting = locationMapper.selectByCode(locationDO.getCode()); LocationDO existConfigurationSetting = locationMapper.selectByCode(locationDO.getCode());
if (existConfigurationSetting == null&& mode != 3) { if (existConfigurationSetting == null && mode != 3) {
locationMapper.insert(LocationConvert.INSTANCE.convert(location)); locationMapper.insert(LocationConvert.INSTANCE.convert(location));
} } else if (existConfigurationSetting != null && mode != 2) {
else if (existConfigurationSetting != null && mode != 2) {
// 如果存在,判断是否允许更新 // 如果存在,判断是否允许更新
locationDO.setId(existConfigurationSetting.getId()); locationDO.setId(existConfigurationSetting.getId());
locationMapper.updateById(locationDO); locationMapper.updateById(locationDO);
@ -192,12 +192,13 @@ public class LocationServiceImpl implements LocationService {
}); });
return errorList; return errorList;
} }
private void validateLocationForCreateOrUpdate(Long id, String code,String warehouseCode, String areaCode,String erpLocationCode, String locationGroupCode,
String type,Integer pickPriority,String userGroupCode,String available) { private void validateLocationForCreateOrUpdate(Long id, String code, String warehouseCode, String areaCode, String erpLocationCode, String locationGroupCode,
String type, Integer pickPriority, String userGroupCode, String available) {
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> { DataPermissionUtils.executeIgnore(() -> {
validateLocationExists(id); validateLocationExists(id);
validateCodeExists(id,code); validateCodeExists(id, code);
// 校验code唯一 // 校验code唯一
validateWarehouseCodeExists(warehouseCode); validateWarehouseCodeExists(warehouseCode);
validateAreaCodeExists(areaCode); validateAreaCodeExists(areaCode);
@ -209,6 +210,7 @@ public class LocationServiceImpl implements LocationService {
validateAvailableExists(available); validateAvailableExists(available);
}); });
} }
private void validateLocationExists(Long id) { private void validateLocationExists(Long id) {
if (id == null) { if (id == null) {
return; return;
@ -217,8 +219,9 @@ public class LocationServiceImpl implements LocationService {
throw exception(LOCATION_NOT_EXISTS); throw exception(LOCATION_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateCodeExists(Long id,String code) { private void validateCodeExists(Long id, String code) {
if (code.isEmpty()) { if (code.isEmpty()) {
throw exception(LOCATION_CODE_NOT_EXISTS); throw exception(LOCATION_CODE_NOT_EXISTS);
} }
@ -237,12 +240,14 @@ public class LocationServiceImpl implements LocationService {
throw exception(LOCATION_CODE_EXISTS); throw exception(LOCATION_CODE_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateWarehouseCodeExists(String warehouseCode) { private void validateWarehouseCodeExists(String warehouseCode) {
if (warehouseCode.isEmpty()) { if (warehouseCode.isEmpty()) {
throw exception(LOCATION_WARE_HOUSE_CODE_NOT_EXISTS); throw exception(LOCATION_WARE_HOUSE_CODE_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateAreaCodeExists(String areaCode) { private void validateAreaCodeExists(String areaCode) {
if (areaCode.isEmpty()) { if (areaCode.isEmpty()) {
@ -263,52 +268,55 @@ public class LocationServiceImpl implements LocationService {
throw exception(LOCATION_LOCATION_GROUP_CODE_NOT_EXISTS); throw exception(LOCATION_LOCATION_GROUP_CODE_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateTypeExists(String type) { private void validateTypeExists(String type) {
if (type.isEmpty()) { if (type.isEmpty()) {
throw exception(LOCATION_TYPE_NOT_EXISTS); throw exception(LOCATION_TYPE_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validatePickPriorityExists(Integer pickPriority) { private void validatePickPriorityExists(Integer pickPriority) {
if (pickPriority == null) { if (pickPriority == null) {
throw exception(LOCATION_PICK_PRIORITY_NOT_EXISTS); throw exception(LOCATION_PICK_PRIORITY_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateUserGroupCodeExists(String userGroupCode) { private void validateUserGroupCodeExists(String userGroupCode) {
if (userGroupCode.isEmpty()) { if (userGroupCode.isEmpty()) {
throw exception(LOCATION_USER_GROUP_CODE_NOT_EXISTS); throw exception(LOCATION_USER_GROUP_CODE_NOT_EXISTS);
} }
} }
@VisibleForTesting @VisibleForTesting
private void validateAvailableExists(String available) { private void validateAvailableExists(String available) {
if (available.isEmpty()) { if (available.isEmpty()) {
throw exception(LOCATION_AVAILABLE_NOT_EXISTS); throw exception(LOCATION_AVAILABLE_NOT_EXISTS);
} }
} }
//调用公共方法查询库位信息 //调用公共方法查询库位信息
@Override @Override
public LocationDO selectLocation(String pcode) { public LocationDO selectLocation(String pcode) {
QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code",pcode); queryWrapper.eq("code", pcode);
queryWrapper.eq("available","TRUE"); queryWrapper.eq("available", "TRUE");
LocationDO locationDO = locationMapper.selectOne(queryWrapper); LocationDO locationDO = locationMapper.selectOne(queryWrapper);
if(locationDO == null){ if (locationDO == null) {
throw exception(LOCATION_NOT_EXISTS); throw exception(LOCATION_NOT_EXISTS);
} else { } else {
return locationDO; return locationDO;
} }
} }
//{"WarehouseCode":"W1","AreaCode":"A1","LocationGroupCode":"LG1","LocationCode":"H01","EmptyLocationFirst":"FALSE","NotEmptyLocationFirst":"FALSE",
// "EnableMixItem":"TRUE","EnableMixLot":"TRUE","EnableMixStatus":"TRUE"}
@Override @Override
public LocationDO inspectLocation(RuleRespVO ruleRespVO, ItembasicDO itembasicDO) { public LocationDO inspectLocation(RuleRespVO ruleRespVO, String itemCode, String batch, String inventoryStatus) {
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
Object locationCode = jsonObject.get("LocationCode"); Object locationCode = jsonObject.get("LocationCode");
//设置了库位直接返回 //设置了库位直接返回
if(locationCode != null) { if (locationCode != null) {
return this.selectLocation(String.valueOf(locationCode)); return this.selectLocation(String.valueOf(locationCode));
} }
//增加过滤条件 //增加过滤条件
@ -319,38 +327,38 @@ public class LocationServiceImpl implements LocationService {
locationTypeList.add("FG"); locationTypeList.add("FG");
queryWrapper.in("`type`", locationTypeList); queryWrapper.in("`type`", locationTypeList);
Object warehouseCode = jsonObject.get("WarehouseCode"); Object warehouseCode = jsonObject.get("WarehouseCode");
if(!"".equals(warehouseCode)) { if (!"".equals(warehouseCode)) {
queryWrapper.eq("warehouse_code", warehouseCode); queryWrapper.eq("warehouse_code", warehouseCode);
} }
Object areaCode = jsonObject.get("AreaCode"); Object areaCode = jsonObject.get("AreaCode");
if(!"".equals(areaCode)) { if (!"".equals(areaCode)) {
queryWrapper.eq("area_code", areaCode); queryWrapper.eq("area_code", areaCode);
} }
Object locationGroupCode = jsonObject.get("LocationGroupCode"); Object locationGroupCode = jsonObject.get("LocationGroupCode");
if(!"".equals(locationGroupCode)) { if (!"".equals(locationGroupCode)) {
queryWrapper.eq("location_group_code", locationGroupCode); queryWrapper.eq("location_group_code", locationGroupCode);
} }
//排序 //排序
Object aisleOrder = jsonObject.get("AisleOrder"); Object aisleOrder = jsonObject.get("AisleOrder");
if("DESC".equals(aisleOrder)) { if ("DESC".equals(aisleOrder)) {
queryWrapper.orderByDesc("aisle"); queryWrapper.orderByDesc("aisle");
} else { } else {
queryWrapper.orderByAsc("aisle"); queryWrapper.orderByAsc("aisle");
} }
Object shelfOrder = jsonObject.get("ShelfOrder"); Object shelfOrder = jsonObject.get("ShelfOrder");
if("DESC".equals(shelfOrder)) { if ("DESC".equals(shelfOrder)) {
queryWrapper.orderByDesc("shelf"); queryWrapper.orderByDesc("shelf");
} else { } else {
queryWrapper.orderByAsc("shelf"); queryWrapper.orderByAsc("shelf");
} }
Object rowOrder = jsonObject.get("RowOrder"); Object rowOrder = jsonObject.get("RowOrder");
if("DESC".equals(rowOrder)) { if ("DESC".equals(rowOrder)) {
queryWrapper.orderByDesc("location_row"); queryWrapper.orderByDesc("location_row");
} else { } else {
queryWrapper.orderByAsc("location_row"); queryWrapper.orderByAsc("location_row");
} }
Object columOrder = jsonObject.get("ColumOrder"); Object columOrder = jsonObject.get("ColumOrder");
if("DESC".equals(columOrder)) { if ("DESC".equals(columOrder)) {
queryWrapper.orderByDesc("location_colum"); queryWrapper.orderByDesc("location_colum");
} else { } else {
queryWrapper.orderByAsc("location_colum"); queryWrapper.orderByAsc("location_colum");
@ -367,35 +375,60 @@ public class LocationServiceImpl implements LocationService {
Object enableMixLot = jsonObject.get("EnableMixLot"); Object enableMixLot = jsonObject.get("EnableMixLot");
//可以混状态 //可以混状态
Object enableMixStatus = jsonObject.get("EnableMixStatus"); Object enableMixStatus = jsonObject.get("EnableMixStatus");
if("TRUE".equals(emptyLocationFirst)) { locationDOList = this.locationFirst(locationDOList, emptyLocationFirst, notEmptyLocationFirst, itemCode, batch, inventoryStatus, enableMixItem, enableMixLot, enableMixStatus);
locationDOList = this.emptyLocationFirst(locationDOList, enableMixItem, enableMixLot, enableMixStatus);
} else if("TRUE".equals(notEmptyLocationFirst)) {
locationDOList = this.notEmptyLocationFirst(locationDOList, enableMixItem, enableMixLot, enableMixStatus);
}
return locationDOList.get(0); return locationDOList.get(0);
} }
/** /**
* 优先空库位过滤 * 判断优先空库位和非空库位
* @param locationDOList 库位list *
* @param enableMixItem 可以混物品 * @param locationDOList 库位list
* @param enableMixLot 可以混批次 * @param emptyLocationFirst 优先空库位
* @param enableMixStatus 可以混状态 * @param notEmptyLocationFirst 优先非空库位
* @param itemCode 物品编号
* @param batch 批次
* @param inventoryStatus 状态
* @param enableMixItem 可以混物品
* @param enableMixLot 可以混批次
* @param enableMixStatus 可以混状态
* @return 过滤之后的库位list * @return 过滤之后的库位list
*/ */
private List<LocationDO> emptyLocationFirst(List<LocationDO> locationDOList, Object enableMixItem, Object enableMixLot, Object enableMixStatus) { private List<LocationDO> locationFirst(List<LocationDO> locationDOList, Object emptyLocationFirst, Object notEmptyLocationFirst, String itemCode, String batch, String inventoryStatus, Object enableMixItem, Object enableMixLot, Object enableMixStatus) {
return locationDOList; List<LocationDO> emptyList = new ArrayList<>();
} List<LocationDO> notEmptyList = new ArrayList<>();
for (LocationDO locationDO : locationDOList) {
/** List<BalanceDO> balanceDOList = balanceMapper.getBalanceList(null, null, null, null, locationDO.getCode());
* 优先非空库位过滤 if (balanceDOList.isEmpty()) {
* @param locationDOList 库位list emptyList.add(locationDO);
* @param enableMixItem 可以混物品 } else {
* @param enableMixLot 可以混批次 boolean flag = true;
* @param enableMixStatus 可以混状态 for (BalanceDO balanceDO : balanceDOList) {
* @return 过滤之后的库位list if ("TRUE".equals(enableMixItem) && !itemCode.equals(balanceDO.getItemCode())) {
*/ flag = false;
private List<LocationDO> notEmptyLocationFirst(List<LocationDO> locationDOList, Object enableMixItem, Object enableMixLot, Object enableMixStatus) { break;
}
if ("TRUE".equals(enableMixLot) && !batch.equals(balanceDO.getBatch())) {
flag = false;
break;
}
if ("TRUE".equals(enableMixStatus) && !inventoryStatus.equals(balanceDO.getInventoryStatus())) {
flag = false;
break;
}
}
if (flag) {
notEmptyList.add(locationDO);
}
}
}
//优先空库位
if("TRUE".equals(emptyLocationFirst) && !emptyList.isEmpty()) {
return emptyList;
}
//优先非空库位
if("TRUE".equals(notEmptyLocationFirst) && !notEmptyList.isEmpty()) {
return notEmptyList;
}
return locationDOList; return locationDOList;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java

@ -679,7 +679,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
ItembasicDO itembasicDO = itembasicService.selectItembasic(productionreturnRecordDetailDO.getItemCode()); ItembasicDO itembasicDO = itembasicService.selectItembasic(productionreturnRecordDetailDO.getItemCode());
// 获取上架策略 并赋值 to库位 // 获取上架策略 并赋值 to库位
RuleRespVO ruleRespVO = ruleService.grounding(null,null,itembasicDO.getAbcClass(),itembasicDO.getType(),itembasicDO.getItemGroup(),itembasicDO.getProject(), itembasicDO.getCode(),null,null,null,null,null,null); RuleRespVO ruleRespVO = ruleService.grounding(null,null,itembasicDO.getAbcClass(),itembasicDO.getType(),itembasicDO.getItemGroup(),itembasicDO.getProject(), itembasicDO.getCode(),null,null,null,null,null,null);
LocationDO locationDO = locationService.inspectLocation(ruleRespVO,itembasicDO); LocationDO locationDO = locationService.inspectLocation(ruleRespVO, itembasicDO.getCode(), item.getBatch(), productionreturnRecordDetailDO.getInventoryStatus());
productionreturnRecordDetailDO.setToLocationCode(locationDO.getCode()); productionreturnRecordDetailDO.setToLocationCode(locationDO.getCode());
// 获取库位信息 并赋值 // 获取库位信息 并赋值
LocationDO locationDOFrom = locationService.selectLocation(item.getFromLocationCode()); LocationDO locationDOFrom = locationService.selectLocation(item.getFromLocationCode());
@ -797,7 +797,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR
productionreturnJobDetailDO.setNumber(number); productionreturnJobDetailDO.setNumber(number);
// 获取上架策略 并赋值 to库位 // 获取上架策略 并赋值 to库位
RuleRespVO ruleRespVO = ruleService.grounding(null,null, itembasicDO.getAbcClass(), itembasicDO.getType(), itembasicDO.getItemGroup(), itembasicDO.getProject(), productionreturnJobDetailDO.getItemCode(),null,null,null,null,null,null); RuleRespVO ruleRespVO = ruleService.grounding(null,null, itembasicDO.getAbcClass(), itembasicDO.getType(), itembasicDO.getItemGroup(), itembasicDO.getProject(), productionreturnJobDetailDO.getItemCode(),null,null,null,null,null,null);
LocationDO locationDO = locationService.inspectLocation(ruleRespVO, itembasicDO); LocationDO locationDO = locationService.inspectLocation(ruleRespVO, itembasicDO.getCode(), productionreturnJobDetailDO.getBatch(), productionreturnJobDetailDO.getInventoryStatus());
productionreturnJobDetailDO.setToLocationCode(locationDO.getCode()); productionreturnJobDetailDO.setToLocationCode(locationDO.getCode());
// 判断合格 不合格 // 判断合格 不合格
if (!mainDO.getBusinessType().equals("ReturnToStore")) { if (!mainDO.getBusinessType().equals("ReturnToStore")) {

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java

@ -367,7 +367,7 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService
RuleRespVO groundingRuleRespVO = ruleService.grounding(putawayJobMainDO.getSupplierCode(), null, itembasicDO.getAbcClass(), itembasicDO.getType(), itembasicDO.getItemGroup(), itembasicDO.getProject(), RuleRespVO groundingRuleRespVO = ruleService.grounding(putawayJobMainDO.getSupplierCode(), null, itembasicDO.getAbcClass(), itembasicDO.getType(), itembasicDO.getItemGroup(), itembasicDO.getProject(),
putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getInventoryStatus(), null, null, null, null, null); putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getInventoryStatus(), null, null, null, null, null);
LocationDO locationDO = locationService.inspectLocation(groundingRuleRespVO, itembasicDO); LocationDO locationDO = locationService.inspectLocation(groundingRuleRespVO, itembasicDO.getCode(), putawayJobDetailDO.getBatch(), putawayJobDetailDO.getInventoryStatus());
putawayJobDetailDO.setToLocationCode(locationDO.getCode()); putawayJobDetailDO.setToLocationCode(locationDO.getCode());
putawayJobDetailDO.setNumber(number); putawayJobDetailDO.setNumber(number);
putawayJobDetailDO.setMasterId(putawayJobDetailDO.getId()); putawayJobDetailDO.setMasterId(putawayJobDetailDO.getId());

Loading…
Cancel
Save