Browse Source

Merge branch 'dev' into pre-production

master
pref_mail@163.com 11 months ago
parent
commit
94edd90a30
  1. 2
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/UpDownStockupAreaVO.java
  2. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  3. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  4. 2
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java
  5. 3
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java
  6. 4
      blade-service/logpm-old-project/Dockerfile
  7. 65
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseUpdownStockupAreaApiController.java
  8. 9
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseUpdownStockupAreaService.java
  9. 126
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownStockupAreaServiceImpl.java

2
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/UpDownStockupAreaVO.java

@ -39,6 +39,8 @@ public class UpDownStockupAreaVO {
private Integer enterNum;
private Integer isMay;
private String waybillCode;

4
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -5444,7 +5444,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionLoadscanAbnormalEntity.setStockArticleId(parcelListEntity.getStockArticleId());
distributionLoadscanAbnormalEntity.setTrainNumber(deliveryListEntity.getTrainNumber());
distributionLoadscanAbnormalEntity.setDriverName(distributionDeliverySelfEntity.getDriverName());
distributionLoadscanAbnormalEntity.setDriverId(Long.parseLong(distributionDeliverySelfEntity.getDriverId()));
if (Func.isNotEmpty(distributionDeliverySelfEntity.getDriverId())){
distributionLoadscanAbnormalEntity.setDriverId(Long.parseLong(distributionDeliverySelfEntity.getDriverId()));
}
distributionLoadscanAbnormalEntity.setDriverPhone(distributionDeliverySelfEntity.getDriverPhone());
distributionLoadscanAbnormalEntity.setDeliveryListId(deliveryListEntity.getId());
distributionLoadscanAbnormalEntity.setReservationId(reservationEntity.getId());

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -5491,6 +5491,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
distributionSignfor.setSigningTime(sdf.format(date));
boolean isSuccess = this.updatePicture(distributionSignfor);
log.info(">>>> updateSign isSuccess ={}",isSuccess);
if (isSuccess) {
this.updateById(distributionSignfor);
// 创建异步队列推送老系统的的签收信息 构建请求参数

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

@ -442,7 +442,7 @@ public class FactoryXxlJob {
orderStatusDTO.setStatus("1");
// 查询老系统的操作人
orderStatusDTO.setUsername("zhangsna ");// 操作人
orderStatusDTO.setUsername("admin");// 操作人
ouPaiFactoryService.handleStatusData(orderStatusDTO);
}

3
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

@ -683,8 +683,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp);
// TODO: 2023/10/25 不知道返回成功的状态是多少
// 需要修改包件对应的状态
factoryPackageEntity.setPushStatus(1);
factoryPackageService.updateById(factoryPackageEntity);
checkOpFactoryPackagePushStatus(factoryPackageEntity);
}
}
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功");

4
blade-service/logpm-old-project/Dockerfile

@ -10,5 +10,7 @@ EXPOSE 8500
ADD ./target/logpm-old-project.jar ./app.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar","-Xms128m","-Xmx512m" "app.jar"]
ENV JAVA_OPTS="-Xms512m -Xmx1024m"
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "-Xms128m","-Xmx512m","app.jar"]
CMD ["--spring.profiles.active=test"]

65
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseUpdownStockupAreaApiController.java

@ -12,10 +12,12 @@ import com.logpm.warehouse.service.IWarehouseUpdownStockupAreaService;
import com.logpm.warehouse.service.IWarehouseUpdownTypeService;
import com.logpm.warehouse.vo.UpShelfAllocationVO;
import com.logpm.warehouse.vo.UpShelfDataVO;
import com.logpm.warehouse.vo.UpdownStockVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
@ -95,6 +97,9 @@ public class WarehouseUpdownStockupAreaApiController {
log.warn(method+"库位信息不能为空 allocationId={}",allocationId);
return R.fail(403,"库位信息不能为空");
}
//查询是否已经上架
//查询该库位的货物信息
return warehouseUpdownStockupAreaService.upStockupAreaPackage(upStockupAreaPackageDTOS,allocationId,myCurrentWarehouse.getId());
}catch (CustomerException e){
@ -125,17 +130,19 @@ public class WarehouseUpdownStockupAreaApiController {
UpDownStockupAreaVO upDownStockupAreaVO = warehouseUpdownStockupAreaService.upShelfScanPackage(myCurrentWarehouse.getId(), updownTypeDTO.getOrderPackageCode());
//此包件是否已经完成上架了
if (Func.isNotEmpty(upDownStockupAreaVO)){
//查询是否上架
//查询是否上架,无关打托方式
WarehouseUpdownStockupAreaEntity updownStockupAreaEntity = warehouseUpdownStockupAreaService.getOne(Wrappers.<WarehouseUpdownStockupAreaEntity>query().lambda()
.eq(WarehouseUpdownStockupAreaEntity::getWarehouseId, myCurrentWarehouse.getId())
.eq(WarehouseUpdownStockupAreaEntity::getAssociationValue, upDownStockupAreaVO.getAssociationValue())
.eq(WarehouseUpdownStockupAreaEntity::getAllocationId, upDownStockupAreaVO.getAssociationId())
.eq(WarehouseUpdownStockupAreaEntity::getGoodsType, upDownStockupAreaVO.getGoodsType())
.eq(WarehouseUpdownStockupAreaEntity::getAssociationId, upDownStockupAreaVO.getAssociationId())
);
if (Func.isNotEmpty(updownStockupAreaEntity)){
//已经在备货库位进行上架了
return Resp.scanFail("该包件已上架","该包件已上架");
}
if (IsOrNoConstant.no.equals(upDownStockupAreaVO.getIsMay())){
return Resp.scanFail("包件不在库","包件不在库");
}
return R.data(upDownStockupAreaVO);
}else {
return Resp.scanFail("该包件不存在","该包件不存在");
@ -149,6 +156,8 @@ public class WarehouseUpdownStockupAreaApiController {
}
}
@ResponseBody
@GetMapping("/upShelfPackageData")
@ApiOperationSupport(order = 1)
@ -189,9 +198,7 @@ public class WarehouseUpdownStockupAreaApiController {
Integer stockType = updownTypeDTO.getStockType();
String value = updownTypeDTO.getValue();
Long marketId = updownTypeDTO.getMarketId();
try{
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息不能为空");
@ -212,7 +219,7 @@ public class WarehouseUpdownStockupAreaApiController {
}
//查询该库位的货物信息
return warehouseUpdownStockupAreaService.getStockByParam(stockType,value,marketId,myCurrentWarehouse.getId());
return R.data(warehouseUpdownStockupAreaService.getStockByParam(stockType,value,marketId,myCurrentWarehouse.getId())) ;
}catch (CustomerException e){
log.warn(e.message);
return R.fail(e.code,e.message);
@ -358,32 +365,40 @@ public class WarehouseUpdownStockupAreaApiController {
@ApiOperation(value = "备货库位上架扫描托盘", notes = "传入trayTypeDTO")
public R upShelfScanTray(@RequestBody UpdownTypeDTO updownTypeDTO ) {
String method = "###########upShelfScanTray: ";
log.info(method + "上架扫描托盘 updownTypeDTO={}", updownTypeDTO);
log.info(method + "备货库位上架扫描托盘 updownTypeDTO={}", updownTypeDTO);
try{
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息不能为空");
return R.fail(403,"仓库信息不能为空");
}
//查询该库位的货物信息
UpDownStockupAreaVO upDownStockupAreaVO = warehouseUpdownStockupAreaService.upShelfScanPackage(myCurrentWarehouse.getId(), updownTypeDTO.getOrderPackageCode());
//此包件是否已经完成上架了
if (Func.isNotEmpty(upDownStockupAreaVO)){
//查询是否上架
WarehouseUpdownStockupAreaEntity updownStockupAreaEntity = warehouseUpdownStockupAreaService.getOne(Wrappers.<WarehouseUpdownStockupAreaEntity>query().lambda()
.eq(WarehouseUpdownStockupAreaEntity::getWarehouseId, myCurrentWarehouse.getId())
.eq(WarehouseUpdownStockupAreaEntity::getAssociationValue, upDownStockupAreaVO.getAssociationValue())
.eq(WarehouseUpdownStockupAreaEntity::getAllocationId, upDownStockupAreaVO.getAssociationId())
.eq(WarehouseUpdownStockupAreaEntity::getGoodsType, upDownStockupAreaVO.getGoodsType())
);
if (Func.isNotEmpty(updownStockupAreaEntity)){
//已经在备货库位进行上架了
return Resp.scanFail("该包件已上架","该包件已上架");
}
return R.data(upDownStockupAreaVO);
}else {
return Resp.scanFail("该包件不存在","该包件不存在");
//查询托盘货物信息
return warehouseUpdownStockupAreaService.upShelfScanTray(myCurrentWarehouse.getId(), updownTypeDTO.getTrayCode());
}catch (CustomerException e){
log.warn(e.message);
return Resp.scanFail(e.code,e.message,e.message);
}catch (Exception e){
log.error(method+"系统异常,联系管理员",e);
return R.fail(500,"系统异常,联系管理员");
}
}
@ResponseBody
@PostMapping("/upShelfTray")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "备货库位上架托盘", notes = "传入trayTypeDTO")
public R upShelfTray(@RequestBody UpdownTypeDTO updownTypeDTO ) {
String method = "###########upShelfScanTray: ";
log.info(method + "备货库位上架托盘 updownTypeDTO={}", updownTypeDTO);
try{
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse();
if(Objects.isNull(myCurrentWarehouse)){
log.warn(method+"仓库信息不能为空");
return R.fail(403,"仓库信息不能为空");
}
//查询托盘货物信息
return warehouseUpdownStockupAreaService.upShelfScanTray(myCurrentWarehouse.getId(), updownTypeDTO.getTrayCode());
}catch (CustomerException e){
log.warn(e.message);
return Resp.scanFail(e.code,e.message,e.message);

9
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseUpdownStockupAreaService.java

@ -84,7 +84,7 @@ public interface IWarehouseUpdownStockupAreaService extends BaseService<Warehous
* @param id
* @return
*/
R getStockByParam(Integer stockType, String value, Long marketId, Long id);
List<UpdownStockVO> getStockByParam(Integer stockType, String value, Long marketId, Long id);
/**
* 库存品上架
@ -120,4 +120,11 @@ public interface IWarehouseUpdownStockupAreaService extends BaseService<Warehous
*/
R upShelfZeroStockeArticle(List<UpShelfZeroOrderDTO> upShelfZeroOrderList, Long allocationId, Long id);
/**
* 扫毛
* @param id
* @param trayCode
* @return
*/
R upShelfScanTray(Long id, String trayCode);
}

126
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseUpdownStockupAreaServiceImpl.java

@ -43,19 +43,20 @@ import com.logpm.warehouse.service.*;
import com.logpm.warehouse.vo.*;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.common.constant.common.IsOrNoConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.DictBiz;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -104,6 +105,7 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
/**
* @param warehouseId
* @param orderPackageCode
@ -118,12 +120,16 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
DistributionStockArticleEntity entityByStockArticleId = distributionStockArticleClient.findEntityByStockArticleId(parcelListEntity.getStockArticleId());
UpDownStockupAreaVO stockupAreaVo = Func.copy(parcelListEntity, UpDownStockupAreaVO.class);
stockupAreaVo.setIsMay(1);
if (Func.isNotEmpty(parcelListEntity.getMallId())){
stockupAreaVo.setMarketId(parcelListEntity.getMallId());
}
if (Func.isNotEmpty(parcelListEntity.getMallName())){
stockupAreaVo.setMarketName(parcelListEntity.getMallName());
}
if (!OrderPackageStatusConstant.yiruku.getValue().equals(parcelListEntity.getOrderPackageStatus())){
stockupAreaVo.setIsMay(0);
}
stockupAreaVo.setGoodsType("1");
stockupAreaVo.setOrderId(parcelListEntity.getStockArticleId());
stockupAreaVo.setAssociationId(parcelListEntity.getId());
@ -208,11 +214,10 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
List<WarehouseUpdownStockupAreaLogEntity> waitSaveWarehouseUpdownStockupAreaLogEntity = new ArrayList<>();
for (UpStockupAreaPackageDTO upStockupAreaPackageDTO : upStockupAreaPackageDTOS) {
if ("1".equals(upStockupAreaPackageDTO.getGoodsType())){
//有数据的包件
//查询是否存在上架操作
WarehouseUpdownGoodsEntity updownGoodsEntity = warehouseUpdownGoodsService.getOne(Wrappers.<WarehouseUpdownGoodsEntity>query().lambda()
.eq(WarehouseUpdownGoodsEntity::getWarehouseId, warehouseId)
.eq(WarehouseUpdownGoodsEntity::getAssociationValue, warehouseId)
.eq(WarehouseUpdownGoodsEntity::getAssociationType, "3")
.eq(WarehouseUpdownGoodsEntity::getAssociationValue, upStockupAreaPackageDTO.getAssociationValue())
);
if (!Objects.isNull(updownGoodsEntity)){
//进行下架解托操作
@ -226,7 +231,7 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
.eq(WarehouseUpdownStockupAreaEntity::getWarehouseId, warehouseId)
.eq(WarehouseUpdownStockupAreaEntity::getAssociationValue, upStockupAreaPackageDTO.getAssociationValue())
.eq(WarehouseUpdownStockupAreaEntity::getAssociationType, upStockupAreaPackageDTO.getAssociationType())
.eq(WarehouseUpdownStockupAreaEntity::getAllocationId, upStockupAreaPackageDTO.getAssociationId())
.eq(WarehouseUpdownStockupAreaEntity::getAssociationId, upStockupAreaPackageDTO.getAssociationId())
.eq(WarehouseUpdownStockupAreaEntity::getGoodsType, upStockupAreaPackageDTO.getGoodsType())
);
if (Objects.isNull(isHave)){
@ -245,6 +250,8 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
warehouseUpdownStockupAreaLogEntity.setRemark("扫描上架:包条上架");
warehouseUpdownStockupAreaLogEntity.setBindingType(1);
waitSaveWarehouseUpdownStockupAreaLogEntity.add(warehouseUpdownStockupAreaLogEntity);
}else {
return Resp.scanFail("包件已上架","包件已上架");
}
//查询是否进行了上架,如果进行了上架需要进行对原库位进行下架,
}
@ -257,7 +264,9 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
throw new RuntimeException("执行下架失败");
}
}
warehouseUpdownStockupAreaLogService.saveBatch(waitSaveWarehouseUpdownStockupAreaLogEntity);
if (!waitSaveWarehouseUpdownStockupAreaLogEntity.isEmpty()){
warehouseUpdownStockupAreaLogService.saveBatch(waitSaveWarehouseUpdownStockupAreaLogEntity);
}
return R.status(this.saveBatch(waitSaveWarehouseUpdownStockupAreaEntity));
}
@ -385,7 +394,7 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
* @return
*/
@Override
public R getStockByParam(Integer stockType, String value, Long marketId, Long warehouseId) {
public List<UpdownStockVO> getStockByParam(Integer stockType, String value, Long marketId, Long warehouseId) {
List<UpdownStockVO> ls = new ArrayList<>();
//1物料编码 2物料名称
if(1==stockType){
@ -408,7 +417,7 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
}else{
log.warn("#################getStockByParam: 未知的库存品查询类型");
}
return R.data(ls);
return ls;
}
/**
@ -651,6 +660,101 @@ public class WarehouseUpdownStockupAreaServiceImpl extends BaseServiceImpl<Wareh
return R.status(this.saveBatch(warehouseUpdownStockupAreaEntities));
}
/**
* @param warehouseId
* @param trayCode
* @return
*/
@Override
@Transactional
public R upShelfScanTray(Long warehouseId, String trayCode) {
List<WarehouseTrayGoodsEntity> entityList = warehouseTrayGoodsService.list(Wrappers.<WarehouseTrayGoodsEntity>query().lambda()
.eq(WarehouseTrayGoodsEntity::getTrayCode, trayCode)
.eq(WarehouseTrayGoodsEntity::getWarehouseId, warehouseId)
);
Map<String,Object> map = new HashMap<>();
TrayTypeDataVO trayData = warehouseTrayTypeService.getEntityByTrayCode(trayCode,warehouseId);
if(!Objects.isNull(trayData)){
map.put("trayData",trayData);
}
if (!entityList.isEmpty()){
//存在托盘,进行托盘货物查询
Map<String, List<WarehouseTrayGoodsEntity>> collect = entityList.stream().filter(f -> Func.isNotEmpty(f.getAssociationType())).collect(Collectors.groupingBy(WarehouseTrayGoodsEntity::getAssociationType));
if (!collect.isEmpty()){
collect.forEach((k,v)->{
switch (k){
case "1":
//零担
List<UpDownStockupAreaVO> zeroOrder = handelZeroOrder(v,warehouseId);
if (!zeroOrder.isEmpty()){
map.put("zeroOrder",zeroOrder);
}
break;
case "2":
//运单号
break;
case "3":
//包件
//组装包件数据进行上架
List<UpDownStockupAreaVO> packageData = handelPackage(v,warehouseId);
if (!packageData.isEmpty()){
map.put("packageData",packageData);
}
break;
case "4":
//库存品
List<UpdownStockVO> inventoryData =handelInventory(v,warehouseId);
if (!inventoryData.isEmpty()){
map.put("inventoryData",inventoryData);
}
break;
default:
log.info("##################未知打托方式,k:{}",k);
break;
}
});
}
}
return R.data(map);
}
private List<UpDownStockupAreaVO> handelZeroOrder(List<WarehouseTrayGoodsEntity> zeroOrderGoods, Long warehouseId) {
List<UpDownStockupAreaVO> zeroOrderData = new ArrayList<>();
for (WarehouseTrayGoodsEntity zeroOrderGood : zeroOrderGoods) {
UpDownStockupAreaVO upDownStockupZeroByOrderCodeAndWarehouseId = distributionStockArticleClient.findUpDownStockupZeroByOrderCodeAndWarehouseId(zeroOrderGood.getAssociationValue(), warehouseId);
if (Func.isNotEmpty(upDownStockupZeroByOrderCodeAndWarehouseId)){
Integer a = warehouseTrayTypeService.getZeroOrderByOrderId(upDownStockupZeroByOrderCodeAndWarehouseId.getOrderId(),warehouseId);
if (a> 0) {
zeroOrderData.add(upDownStockupZeroByOrderCodeAndWarehouseId);
}
}
}
return zeroOrderData;
}
private List<UpdownStockVO> handelInventory(List<WarehouseTrayGoodsEntity> inventoryGoods, Long warehouseId) {
List<UpdownStockVO> inventoryData = new ArrayList<>();
for (WarehouseTrayGoodsEntity warehouseTrayGoodsEntity : inventoryGoods) {
List<UpdownStockVO> stockByParam = this.getStockByParam(1, warehouseTrayGoodsEntity.getAssociationValue(), warehouseTrayGoodsEntity.getMarketId(), warehouseId);
if (!stockByParam.isEmpty()){
inventoryData.addAll(stockByParam);
}
}
return inventoryData;
}
private List<UpDownStockupAreaVO> handelPackage(List<WarehouseTrayGoodsEntity> packageGoods,Long warehouseId) {
List<UpDownStockupAreaVO> packageData = new ArrayList<>();
for (WarehouseTrayGoodsEntity packageGood : packageGoods) {
UpDownStockupAreaVO upDownStockupAreaVO = this.upShelfScanPackage(warehouseId, packageGood.getAssociationValue());
if (Func.isNotEmpty(upDownStockupAreaVO)){
packageData.add(upDownStockupAreaVO);
}
}
return packageData;
}
private WarehouseUpdownStockupAreaEntity createdNewUpShelfInventory(Long allocationId, Long warehouseId, UpShelfStockDTO upShelfStockDTO, WarehouseUpdownStockupAreaEntity updownTypeEntity, Long goodsAreaId, BasicdataGoodsAreaEntity goodsAreaEntity, Long goodsShelfId, BasicdataGoodsShelfEntity goodsShelfEntity, BasicdataGoodsAllocationEntity goodsAllocationEntity) {
WarehouseUpdownStockupAreaEntity updownStockupAreaEntity = new WarehouseUpdownStockupAreaEntity();

Loading…
Cancel
Save