生成单号规则处理;+

This commit is contained in:
王奎兴
2026-08-12 14:01:56 +08:00
parent 898cc32452
commit 3866bfee05
11 changed files with 204 additions and 278 deletions
@@ -147,44 +147,44 @@ public class ReservationStockInOrderDomainService {
*/
@Transactional(rollbackFor = Exception.class)
public Boolean insert(ReservationStockInOrderDO stockInOrderDO) {
// if (stockInOrderDO.getInOrderNumber() == null) {
if (stockInOrderDO.getInOrderNumber() == null) {
//设置入库单号
Long warehouseId = stockInOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getInOrderNoPrefix();
if (prefix == null || prefix.isEmpty()) {
prefix = "RK";
}
Long organizationId = stockInOrderDO.getOrganizationId();
Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(datePrefix + seq);
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(prefix + seq);
stockInOrderDO.setBusinessOrderNo(prefix + seq);
}
// stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
// stockInOrderDO.setBusinessOrderNo(stockInOrderDO.getInOrderNumber());
// Long warehouseId = stockInOrderDO.getWarehouseId();
// AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
// if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
// throw new ServiceException("获取仓库信息失败");
// }
// //仓库信息
// WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
// String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
// String prefix = warehouseFeignPO.getInOrderNoPrefix();
// if (prefix == null || prefix.isEmpty()) {
// prefix = "RK";
// }
// Long organizationId = stockInOrderDO.getOrganizationId();
// Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
// if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
// //日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
// String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
// String datePrefix = prefix + dateStr;
// List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(datePrefix + seq);
// stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
// } else {
// //历史累加: 前缀 + 历史最大序号+1
// List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(prefix + seq);
// stockInOrderDO.setBusinessOrderNo(prefix + seq);
// }
stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
stockInOrderDO.setBusinessOrderNo(stockInOrderDO.getInOrderNumber());
}
// //设置默认值
// setDefaultValues(stockInOrderDO);
// //设置物料信息
@@ -213,37 +213,9 @@ public class ReservationStockInOrderDomainService {
public Boolean batchInsert(List<ReservationStockInOrderDO> stockInOrderDOList) {
for (ReservationStockInOrderDO stockInOrderDO : stockInOrderDOList){
//设置入库单号
Long warehouseId = stockInOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getInOrderNoPrefix();
if (prefix == null || prefix.isEmpty()) {
prefix = "RK";
}
Long organizationId = stockInOrderDO.getOrganizationId();
Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(datePrefix + seq);
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(prefix + seq);
stockInOrderDO.setBusinessOrderNo(prefix + seq);
if (stockInOrderDO.getInOrderNumber() == null) {
stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
stockInOrderDO.setBusinessOrderNo(stockInOrderDO.getInOrderNumber());
}
// //设置物料信息
@@ -157,42 +157,45 @@ public class ReservationStockOutOrderDomainService {
*/
@Transactional(rollbackFor = Exception.class)
public Boolean insert(ReservationStockOutOrderDO stockOutOrderDO) {
if (stockOutOrderDO.getOutOrderNumber() == null) {
stockOutOrderDO.setOutOrderNumber(generateReserveOrderNumber());
stockOutOrderDO.setBusinessOrderNo(stockOutOrderDO.getOutOrderNumber());
}
//设置单号
Long warehouseId = stockOutOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getOutOrderNoPrefix();
if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
}
if (prefix == null || prefix.isEmpty()) {
prefix = "CK";
}
Long organizationId = stockOutOrderDO.getOrganizationId();
Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(prefix + seq);
stockOutOrderDO.setBusinessOrderNo(prefix + seq);
}
// Long warehouseId = stockOutOrderDO.getWarehouseId();
// AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
// if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
// throw new ServiceException("获取仓库信息失败");
// }
// //仓库信息
// WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
// String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
// String prefix = warehouseFeignPO.getOutOrderNoPrefix();
// if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
// prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
// }
// if (prefix == null || prefix.isEmpty()) {
// prefix = "CK";
// }
// Long organizationId = stockOutOrderDO.getOrganizationId();
// Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
// if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
// //日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
// String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
// String datePrefix = prefix + dateStr;
// List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
// stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
// } else {
// //历史累加: 前缀 + 历史最大序号+1
// List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockOutOrderDO.setOutOrderNumber(prefix + seq);
// stockOutOrderDO.setBusinessOrderNo(prefix + seq);
// }
// update / batchInsert 一致前端传计划数量为 quantity outboundQuantity
setMaterialDetailInfo(stockOutOrderDO);
@@ -235,40 +238,9 @@ public class ReservationStockOutOrderDomainService {
for (ReservationStockOutOrderDO stockOutOrderDO : stockOutOrderDOList){
//设置单号
Long warehouseId = stockOutOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getOutOrderNoPrefix();
if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
}
if (prefix == null || prefix.isEmpty()) {
prefix = "CK";
}
Long organizationId = stockOutOrderDO.getOrganizationId();
Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reserveStockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(prefix + seq);
stockOutOrderDO.setBusinessOrderNo(prefix + seq);
if (stockOutOrderDO.getOutOrderNumber() == null) {
stockOutOrderDO.setOutOrderNumber(generateReserveOrderNumber());
stockOutOrderDO.setBusinessOrderNo(stockOutOrderDO.getOutOrderNumber());
}
//设置物料信息
@@ -103,39 +103,40 @@ public class ReserveStockInOrderDomainService {
*/
@Transactional(rollbackFor = Exception.class)
public Boolean insert(ReserveStockInOrderDO stockInOrderDO) {
// if (stockInOrderDO.getInOrderNumber() == null) {
Long warehouseId = stockInOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getInOrderNoPrefix();
if (prefix == null || prefix.isEmpty()) {
prefix = "RK";
}
Long organizationId = stockInOrderDO.getOrganizationId();
Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(datePrefix + seq);
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(prefix + seq);
stockInOrderDO.setBusinessOrderNo(prefix + seq);
}
if (stockInOrderDO.getInOrderNumber() == null) {
stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
// Long warehouseId = stockInOrderDO.getWarehouseId();
// AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
// if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
// throw new ServiceException("获取仓库信息失败");
// }
// //仓库信息
// WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
// String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
// String prefix = warehouseFeignPO.getInOrderNoPrefix();
// if (prefix == null || prefix.isEmpty()) {
// prefix = "RK";
// }
// Long organizationId = stockInOrderDO.getOrganizationId();
// Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
// if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
// //日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
// String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
// String datePrefix = prefix + dateStr;
// List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(datePrefix + seq);
// stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
// } else {
// //历史累加: 前缀 + 历史最大序号+1
// List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(prefix + seq);
// stockInOrderDO.setBusinessOrderNo(prefix + seq);
// }
}
// //设置默认值
// setDefaultValues(stockInOrderDO);
// //设置物料信息
@@ -166,37 +167,41 @@ public class ReserveStockInOrderDomainService {
*/
public Boolean batchInsert(List<ReserveStockInOrderDO> stockInOrderDOList) {
for (ReserveStockInOrderDO stockInOrderDO : stockInOrderDOList){
Long warehouseId = stockInOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getInOrderNoPrefix();
if (prefix == null || prefix.isEmpty()) {
prefix = "RK";
}
Long organizationId = stockInOrderDO.getOrganizationId();
Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(datePrefix + seq);
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockInOrderDO.setInOrderNumber(prefix + seq);
stockInOrderDO.setBusinessOrderNo(prefix + seq);
String inOrderNumber = stockInOrderDO.getInOrderNumber();
if (stockInOrderDO.getInOrderNumber() == null){
stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
}
// Long warehouseId = stockInOrderDO.getWarehouseId();
// AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
// if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
// throw new ServiceException("获取仓库信息失败");
// }
// //仓库信息
// WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
// String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
// String prefix = warehouseFeignPO.getInOrderNoPrefix();
// if (prefix == null || prefix.isEmpty()) {
// prefix = "RK";
// }
// Long organizationId = stockInOrderDO.getOrganizationId();
// Long warehouseIdForCount = stockInOrderDO.getWarehouseId();
// if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
// //日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
// String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
// String datePrefix = prefix + dateStr;
// List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(datePrefix + seq);
// stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
// } else {
// //历史累加: 前缀 + 历史最大序号+1
// List<String> orderNumbers = reservationStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockInOrderDO.setInOrderNumber(prefix + seq);
// stockInOrderDO.setBusinessOrderNo(prefix + seq);
// }
// //设置物料信息
// setMaterialDetailInfo(stockInOrderDO);
// //统计总物料种数
@@ -124,41 +124,44 @@ public class ReserveStockOutOrderDomainService {
*/
@Transactional(rollbackFor = Exception.class)
public Boolean insert(ReserveStockOutOrderDO stockOutOrderDO) {
if (stockOutOrderDO.getOutOrderNumber() == null) {
stockOutOrderDO.setOutOrderNumber(generateReserveOrderNumber());
}
//设置单号
Long warehouseId = stockOutOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getOutOrderNoPrefix();
if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
}
if (prefix == null || prefix.isEmpty()) {
prefix = "CK";
}
Long organizationId = stockOutOrderDO.getOrganizationId();
Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(prefix + seq);
stockOutOrderDO.setBusinessOrderNo(prefix + seq);
}
// Long warehouseId = stockOutOrderDO.getWarehouseId();
// AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
// if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
// throw new ServiceException("获取仓库信息失败");
// }
// //仓库信息
// WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
// String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
// String prefix = warehouseFeignPO.getOutOrderNoPrefix();
// if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
// prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
// }
// if (prefix == null || prefix.isEmpty()) {
// prefix = "CK";
// }
// Long organizationId = stockOutOrderDO.getOrganizationId();
// Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
// if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
// //日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
// String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
// String datePrefix = prefix + dateStr;
// List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
// stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
// } else {
// //历史累加: 前缀 + 历史最大序号+1
// List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
// int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
// String seq = String.format("%03d", maxSeq + 1);
// stockOutOrderDO.setOutOrderNumber(prefix + seq);
// stockOutOrderDO.setBusinessOrderNo(prefix + seq);
// }
// update / batchInsert 一致前端传计划数量为 quantity outboundQuantity
@@ -188,40 +191,8 @@ public class ReserveStockOutOrderDomainService {
@Transactional(rollbackFor = Exception.class)
public Boolean batchInsert(List<ReserveStockOutOrderDO> stockOutOrderDOList) {
for (ReserveStockOutOrderDO stockOutOrderDO : stockOutOrderDOList){
//设置单号
Long warehouseId = stockOutOrderDO.getWarehouseId();
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId);
if (!"200".equals(String.valueOf(ajaxResult.get("code")))) {
throw new ServiceException("获取仓库信息失败");
}
//仓库信息
WarehouseFeignPO warehouseFeignPO = com.alibaba.fastjson.JSON.parseObject(com.alibaba.fastjson2.JSONObject.toJSONString(ajaxResult.get("data")), WarehouseFeignPO.class);
String orderNoGenerateRule = warehouseFeignPO.getOrderNoGenerateRule();
String prefix = warehouseFeignPO.getOutOrderNoPrefix();
if ("yang_pin_chu_ku".equals(stockOutOrderDO.getBusinessType())) {
prefix = warehouseFeignPO.getSampleOutOrderNoPrefix();
}
if (prefix == null || prefix.isEmpty()) {
prefix = "CK";
}
Long organizationId = stockOutOrderDO.getOrganizationId();
Long warehouseIdForCount = stockOutOrderDO.getWarehouseId();
if (orderNoGenerateRule != null && "0".equals(orderNoGenerateRule)) {
//日期累加: 前缀 + 当前日期yymmdd + 当天最大序号+1
String dateStr = new SimpleDateFormat("yyMMdd").format(new Date());
String datePrefix = prefix + dateStr;
List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(datePrefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, datePrefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(datePrefix + seq);
stockOutOrderDO.setBusinessOrderNo(datePrefix + seq);
} else {
//历史累加: 前缀 + 历史最大序号+1
List<String> orderNumbers = stockOutOrderMapper.getMaxStockOutOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
int maxSeq = extractMaxSequenceNumber(orderNumbers, prefix.length());
String seq = String.format("%03d", maxSeq + 1);
stockOutOrderDO.setOutOrderNumber(prefix + seq);
stockOutOrderDO.setBusinessOrderNo(prefix + seq);
if (stockOutOrderDO.getOutOrderNumber() == null) {
stockOutOrderDO.setOutOrderNumber(generateReserveOrderNumber());
}
//设置物料信息
setMaterialDetailInfo(stockOutOrderDO);
@@ -476,7 +476,8 @@ public class ReviewOrderApplicationService {
handoverTaskOrderDO.setShipperId(stockOutOrderPO.getShipperId());
handoverTaskOrderDO.setShipperName(stockOutOrderPO.getShipperName());
handoverTaskOrderDO.setSerialNumber(OrderSequence.getOrderCode("JJZYLS"));
handoverTaskOrderDO.setTaskNumber(OrderSequence.getOrderCode("JJZY"));
// handoverTaskOrderDO.setTaskNumber(OrderSequence.getOrderCode("JJZY"));
handoverTaskOrderDO.setTaskNumber("HD-"+stockOutOrderPO.getOutOrderNumber());
handoverTaskOrderDO.setStatus(1);
handoverTaskOrderDO.setOrderTypeCode(stockOutOrderPO.getOrderTypeCode());
handoverTaskOrderDO.setOrderTypeName(stockOutOrderPO.getOrderTypeName());
@@ -870,7 +870,7 @@ public class PickingOrderDomainService {
handoverTaskOrderDO.setShipperId(pickingOrderPO.getShipperId());
handoverTaskOrderDO.setShipperName(pickingOrderPO.getShipperName());
handoverTaskOrderDO.setSerialNumber(OrderSequence.getOrderCode("JJZYLS"));
handoverTaskOrderDO.setTaskNumber(OrderSequence.getOrderCode("JJZY"));
handoverTaskOrderDO.setTaskNumber("HD-"+pickingOrderPO.getOutOrderNumber());
handoverTaskOrderDO.setStatus(1);
handoverTaskOrderDO.setOrderTypeCode(pickingOrderPO.getOrderTypeCode());
handoverTaskOrderDO.setOrderTypeName(pickingOrderPO.getOrderTypeName());
@@ -115,7 +115,8 @@ public class ReviewOrderDomainService {
Date now = new Date();
ReviewOrder header = new ReviewOrder();
header.setReviewOrderNumber(reviewOrderNumber);
// header.setReviewOrderNumber(reviewOrderNumber);
header.setReviewOrderNumber("RE-"+stockOutOrder.getOutOrderNumber());
header.setOutOrderId(stockOutOrder.getOutOrderId());
header.setOutOrderNumber(stockOutOrder.getOutOrderNumber());
header.setOrganizationId(stockOutOrder.getOrganizationId());
@@ -771,7 +771,8 @@ public class StockInOrderDomainService {
stockShelfOrder = list.get(0);
} else {
BeanUtils.copyProperties(stockReceiptOrder, stockShelfOrder);
stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
// stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
stockShelfOrder.setShelfOrderNumber("SH-"+inOrderNumber);
stockShelfOrder.setBatchNo(batchNo);
stockShelfOrderService.save(stockShelfOrder);
}
@@ -1040,7 +1041,8 @@ public class StockInOrderDomainService {
stockInOrderPOList.forEach(p -> {
StockReceiptOrderDO stockReceiptOrderDO = new StockReceiptOrderDO();
BeanUtils.copyProperties(p, stockReceiptOrderDO);
stockReceiptOrderDO.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
stockReceiptOrderDO.setReceiptOrderNumber("RV-"+p.getInOrderNumber());
// stockReceiptOrderDO.setReceiptOrderNumber(OrderSequence.getOrderCode("SH"));
List<InMaterialDetailPO> inMaterialDetailPOs = inMaterialDetailListMap.get(p.getInOrderNumber());
if (!CollectionUtils.isEmpty(inMaterialDetailPOs)){
List<ReceiptMaterialDetailDO> receiptMaterialDetailDOList = new ArrayList<>();
@@ -896,7 +896,8 @@ public class StockOutOrderDomainService {
PickingOrderDO pickingOrderDO = new PickingOrderDO();
BeanUtils.copyProperties(p, pickingOrderDO);
pickingOrderDO.setOrderNumber(p.getOutOrderNumber());
pickingOrderDO.setPickingOrderNumber(OrderSequence.getOrderCode("JH"));
// pickingOrderDO.setPickingOrderNumber(OrderSequence.getOrderCode("JH"));
pickingOrderDO.setPickingOrderNumber("PK-"+p.getOutOrderNumber());
pickingOrderDO.setQuantity(p.getAllocationQuantity());
if (pickingOrderDO.getWarehouseId() == null && p.getWarehouseId() != null) {
pickingOrderDO.setWarehouseId(p.getWarehouseId());
@@ -1235,7 +1236,7 @@ public class StockOutOrderDomainService {
PickingOrderDO pickingOrderDO = new PickingOrderDO();
BeanUtils.copyProperties(p, pickingOrderDO);
pickingOrderDO.setOrderNumber(p.getOutOrderNumber());
pickingOrderDO.setPickingOrderNumber(OrderSequence.getOrderCode("JH"));
pickingOrderDO.setPickingOrderNumber("PK-"+p.getOutOrderNumber());
pickingOrderDO.setQuantity(p.getAllocationQuantity());
if (pickingOrderDO.getWarehouseId() == null && p.getWarehouseId() != null) {
pickingOrderDO.setWarehouseId(p.getWarehouseId());
@@ -2151,7 +2152,7 @@ public class StockOutOrderDomainService {
handoverTaskOrderDO.setShipperId(stockOutOrderPO.getShipperId());
handoverTaskOrderDO.setShipperName(stockOutOrderPO.getShipperName());
handoverTaskOrderDO.setSerialNumber(OrderSequence.getOrderCode("JJZYLS"));
handoverTaskOrderDO.setTaskNumber(OrderSequence.getOrderCode("JJZY"));
handoverTaskOrderDO.setTaskNumber("HD-"+stockOutOrderPO.getOutOrderNumber());
handoverTaskOrderDO.setStatus(1);
handoverTaskOrderDO.setOrderTypeCode(stockOutOrderPO.getOrderTypeCode());
handoverTaskOrderDO.setOrderTypeName(stockOutOrderPO.getOrderTypeName());
@@ -187,7 +187,8 @@ public class StockShelfOrderDomainService {
BeanUtils.copyProperties(stockShelfOrderDO, stockShelfOrder, "createBy","createByName","createTime",
"updateBy","updateByName","updateTime");
if (StringUtils.isBlank(stockShelfOrder.getShelfOrderNumber())){
stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
// stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
stockShelfOrder.setShelfOrderNumber("SH-"+stockShelfOrder.getInOrderNumber());
}
// PDA收货完成=是否下发是(1)PC收货完成/无单收货/整单收货=是否下发否(2)DO未设置时默认2
stockShelfOrder.setTaskDistribution(stockShelfOrderDO.getTaskDistribution() != null ? stockShelfOrderDO.getTaskDistribution() : 2);
@@ -211,7 +211,7 @@ public class WaveOrderDomainService {
PickingOrderDO pickingOrderDO = new PickingOrderDO();
BeanUtils.copyProperties(p, pickingOrderDO);
pickingOrderDO.setOrderNumber(p.getWaveOrderNumber());
pickingOrderDO.setPickingOrderNumber(OrderSequence.getOrderCode("JH"));
pickingOrderDO.setPickingOrderNumber("PK-"+p.getWaveOrderNumber());
pickingOrderDO.setQuantity(p.getAllocationQuantity());
pickingOrderDO.setWeightLimit(p.getWeightLimit());
pickingOrderDO.setVolumeLimit(p.getVolumeLimit());