生成单号规则处理;+

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