Преглед на файлове

仓库编号生成逻辑修改

master
yangpeilai преди 1 седмица
родител
ревизия
674fd81f47

+ 21
- 12
zhywpt-app-invw/src/main/java/cn/com/taiji/invw/manager/warehouse/InvwWarehouseManagerImpl.java Целия файл

@@ -11,10 +11,8 @@ import cn.com.taiji.core.repo.jpa.invw.InvwObuDetailsRepo;
import cn.com.taiji.core.repo.jpa.invw.InvwWarehouseRepo;
import cn.com.taiji.core.repo.request.invw.InvwWarehousePageRequest;
import cn.com.taiji.invw.dto.warehouse.*;
import cn.com.taiji.invw.manager.AbstractCommManager;
import cn.com.taiji.invw.manager.AbstractInvwManager;
import cn.com.taiji.invw.model.warehouse.InvwWarehouseIdNameModel;
import lombok.val;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -47,6 +45,7 @@ public class InvwWarehouseManagerImpl extends AbstractInvwManager implements Inv
throw new ManagerException("上级仓库不存在");
}
int level = parentWarehouse.getWarehouseLevel() + 1;
// 生成仓库编号
String code = generateCode(parentWarehouse, level);

InvwWarehouse warehouse = new InvwWarehouse();
@@ -62,11 +61,13 @@ public class InvwWarehouseManagerImpl extends AbstractInvwManager implements Inv
if (StringTools.hasText(req.getWarehouseChannelId())) {
warehouse.setChannelId(req.getWarehouseChannelId());
}
System.out.println("warehouse:"+warehouse);
warehouseRepo.save(warehouse);
persistOperateLog(OperateType.WAREHOUSE_ADD, warehouse.getId(), req.getOrderSource(), findOpenIdByToken(req.getAccessToken()), "仓库新增");
// persistOperateLog(OperateType.WAREHOUSE_ADD, warehouse.getId(), req.getOrderSource(), findOpenIdByToken(req.getAccessToken()), "仓库新增");
}

public String generateCode(InvwWarehouse parentWarehouse, int level) throws ManagerException {
//一级 5201010 304001 900000
//二级 5201010 304001 900100
//二级 5201010 304002 900100
//三级 5201010 304001 900101
@@ -75,23 +76,30 @@ public class InvwWarehouseManagerImpl extends AbstractInvwManager implements Inv
//三级 5201010 304002 900102
//前缀 5201010
String maxCode;
if(!StringTools.hasText(parentWarehouse.getParentId())){
maxCode = warehouseRepo.findMaxCodeByParentId(parentWarehouse.getId());
}else {
maxCode = warehouseRepo.findMaxCodeByParentId(parentWarehouse.getCode());
}
if(maxCode == null){
maxCode = parentWarehouse.getCode();

// 以父仓查询旗下的最大仓库编号
maxCode = warehouseRepo.findMaxCodeByParentId(parentWarehouse.getId());

// 如果不存在,就赋值为父仓的编号,后缀为900100
String suffix = null;
if (maxCode == null) {
maxCode = parentWarehouse.getCode();
suffix = "900100";
}
// 判断编号是否为19位
if (maxCode.length() != 19) {
throw new ManagerException("父仓库编号格式不正确或不存在");
}
// 截取为三段,1-7位前缀,8-13位中间,14-19位后缀
String prefix = maxCode.substring(0, 7);
String middle = maxCode.substring(7, 13);
String suffix = maxCode.substring(13, 19);
if (!StringTools.hasText(suffix)) {
suffix = maxCode.substring(13, 19);
}

String newCode;
if (level == 2) {
// 二级仓库 中间加1
int middlePart = Integer.parseInt(middle) + 1;
newCode = prefix + middlePart + suffix;
InvwWarehouse existingWarehouse = warehouseRepo.findByCode(newCode);
@@ -102,6 +110,7 @@ public class InvwWarehouseManagerImpl extends AbstractInvwManager implements Inv
}
return newCode;
} else if (level == 3) {
// 三级仓库 后缀加1
int suffixPart = Integer.parseInt(suffix) + 1;
newCode = prefix + middle + suffixPart;
InvwWarehouse existingWarehouse = warehouseRepo.findByCode(newCode);
@@ -300,7 +309,7 @@ public class InvwWarehouseManagerImpl extends AbstractInvwManager implements Inv
@Override
public InvwWarehouseDetailResponseDTO detail(InvwWarehouseDetailRequestDTO req) throws ManagerException {
InvwWarehouse warehouse = warehouseRepo.findById(req.getId()).orElse(null);
if(warehouse==null) throw new ManagerException("仓库不存在");
if (warehouse == null) throw new ManagerException("仓库不存在");
InvwWarehouseDetailResponseDTO response = new InvwWarehouseDetailResponseDTO();
InvwWarehouseIdNameModel model = new InvwWarehouseIdNameModel();
BeanUtils.copyProperties(warehouse, model);

+ 0
- 1
zhywpt-service-ats/src/main/java/cn/com/taiji/ats/manager/handler/OcrServiceHandler.java Целия файл

@@ -1,6 +1,5 @@
package cn.com.taiji.ats.manager.handler;

import cn.com.taiji.ats.manager.handler.AbstractAtsServiceHandler;
import cn.com.taiji.ats.manager.ocr.BusinessLicenseOcrManager;
import cn.com.taiji.ats.manager.ocr.IdCardOcrManager;
import cn.com.taiji.ats.manager.ocr.VehicleLicenseOcrManager;

Loading…
Отказ
Запис