出入库单按规则生成;
This commit is contained in:
+72
-2
@@ -172,12 +172,14 @@ public class ReservationStockInOrderDomainService {
|
|||||||
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);
|
||||||
stockInOrderDO.setInOrderNumber(datePrefix + seq);
|
stockInOrderDO.setInOrderNumber(datePrefix + seq);
|
||||||
|
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
|
||||||
} else {
|
} else {
|
||||||
//历史累加: 前缀 + 历史最大序号+1
|
//历史累加: 前缀 + 历史最大序号+1
|
||||||
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
|
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(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);
|
||||||
stockInOrderDO.setInOrderNumber(prefix + seq);
|
stockInOrderDO.setInOrderNumber(prefix + seq);
|
||||||
|
stockInOrderDO.setBusinessOrderNo(prefix + seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
// stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
|
// stockInOrderDO.setInOrderNumber(generateReserveOrderNumber());
|
||||||
@@ -234,12 +236,14 @@ public class ReservationStockInOrderDomainService {
|
|||||||
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);
|
||||||
stockInOrderDO.setInOrderNumber(datePrefix + seq);
|
stockInOrderDO.setInOrderNumber(datePrefix + seq);
|
||||||
|
stockInOrderDO.setBusinessOrderNo(datePrefix + seq);
|
||||||
} else {
|
} else {
|
||||||
//历史累加: 前缀 + 历史最大序号+1
|
//历史累加: 前缀 + 历史最大序号+1
|
||||||
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(prefix, organizationId, warehouseIdForCount);
|
List<String> orderNumbers = reserveStockInOrderMapper.getMaxStockInOrderByPrefixAndOrgAndWarehouse(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);
|
||||||
stockInOrderDO.setInOrderNumber(prefix + seq);
|
stockInOrderDO.setInOrderNumber(prefix + seq);
|
||||||
|
stockInOrderDO.setBusinessOrderNo(prefix + seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
// //设置物料信息
|
// //设置物料信息
|
||||||
@@ -651,7 +655,40 @@ public class ReservationStockInOrderDomainService {
|
|||||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||||
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
|
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
|
||||||
reservationStockInOrder.setInOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
|
||||||
|
|
||||||
|
//设置入库单号
|
||||||
|
Long warehouseId1 = reservationStockInOrder.getWarehouseId();
|
||||||
|
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId1);
|
||||||
|
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 = reservationStockInOrder.getOrganizationId();
|
||||||
|
Long warehouseIdForCount = reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setInOrderNumber(datePrefix + seq);
|
||||||
|
// reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setInOrderNumber(prefix + seq);
|
||||||
|
// reservationStockInOrder.setBusinessOrderNo(prefix + seq);
|
||||||
|
}
|
||||||
|
|
||||||
List<ExecutionInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ExecutionInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
int index = 1;
|
int index = 1;
|
||||||
@@ -808,7 +845,40 @@ public class ReservationStockInOrderDomainService {
|
|||||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||||
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
|
reservationStockInOrder.setBusinessInOrderNumber(inOrderNumber);
|
||||||
reservationStockInOrder.setInOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
|
||||||
|
|
||||||
|
//设置入库单号
|
||||||
|
// Long warehouseId1 = reservationStockInOrder.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 = reservationStockInOrder.getOrganizationId();
|
||||||
|
Long warehouseIdForCount = reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setInOrderNumber(datePrefix + seq);
|
||||||
|
// reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setInOrderNumber(prefix + seq);
|
||||||
|
// reservationStockInOrder.setBusinessOrderNo(prefix + seq);
|
||||||
|
}
|
||||||
|
|
||||||
List<ExecutionInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ExecutionInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
int index = 1;
|
int index = 1;
|
||||||
|
|||||||
+102
-4
@@ -230,9 +230,41 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean batchInsert(List<ReservationStockOutOrderDO> stockOutOrderDOList) {
|
public Boolean batchInsert(List<ReservationStockOutOrderDO> stockOutOrderDOList) {
|
||||||
for (ReservationStockOutOrderDO stockOutOrderDO : stockOutOrderDOList){
|
for (ReservationStockOutOrderDO stockOutOrderDO : stockOutOrderDOList){
|
||||||
if (StringUtils.isBlank(stockOutOrderDO.getOutOrderNumber())){
|
|
||||||
stockOutOrderDO.setOutOrderNumber(OrderSequence.getOrderCode("CK"));
|
|
||||||
|
//设置单号
|
||||||
|
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.getInOrderNoPrefix();
|
||||||
|
if (prefix == null || prefix.isEmpty()) {
|
||||||
|
prefix = "RK";
|
||||||
|
}
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
//设置物料信息
|
//设置物料信息
|
||||||
setMaterialDetailInfo(stockOutOrderDO);
|
setMaterialDetailInfo(stockOutOrderDO);
|
||||||
//统计种类
|
//统计种类
|
||||||
@@ -455,7 +487,40 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
// reservationStockInOrder.setTopOrganizationId(topOrgId);
|
// reservationStockInOrder.setTopOrganizationId(topOrgId);
|
||||||
|
|
||||||
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
||||||
reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
// reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
||||||
|
|
||||||
|
//设置单号
|
||||||
|
Long warehouseId1 = reservationStockInOrder.getWarehouseId();
|
||||||
|
AjaxResult ajaxResult = systemServiceFeign.getWarehouseInfoByWarehouseId(warehouseId1);
|
||||||
|
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 = 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);
|
||||||
|
reservationStockInOrder.setOutOrderNumber(datePrefix + seq);
|
||||||
|
// reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setOutOrderNumber(prefix + seq);
|
||||||
|
// reservationStockInOrder.setBusinessOrderNo(prefix + seq);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
@@ -584,7 +649,40 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
reservationStockInOrder.setWarehouseCode(warehouseCode);
|
||||||
reservationStockInOrder.setWarehouseName(warehouseName);
|
reservationStockInOrder.setWarehouseName(warehouseName);
|
||||||
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
reservationStockInOrder.setBusinessOutOrderNumber(inOrderNumber);
|
||||||
reservationStockInOrder.setOutOrderNumber(generateExecutionOrderNumber(warehouseCode));
|
|
||||||
|
|
||||||
|
//设置单号
|
||||||
|
// Long warehouseId1 = reservationStockInOrder.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 = 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);
|
||||||
|
reservationStockInOrder.setOutOrderNumber(datePrefix + seq);
|
||||||
|
// reservationStockInOrder.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);
|
||||||
|
reservationStockInOrder.setOutOrderNumber(prefix + seq);
|
||||||
|
// reservationStockInOrder.setBusinessOrderNo(prefix + seq);
|
||||||
|
}
|
||||||
|
|
||||||
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ExecutionOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) {
|
for (ReservationOutMaterialDetail reservationOutMaterialDetail : details) {
|
||||||
|
|||||||
+33
-5
@@ -166,8 +166,36 @@ public class ReserveStockInOrderDomainService {
|
|||||||
*/
|
*/
|
||||||
public Boolean batchInsert(List<ReserveStockInOrderDO> stockInOrderDOList) {
|
public Boolean batchInsert(List<ReserveStockInOrderDO> stockInOrderDOList) {
|
||||||
for (ReserveStockInOrderDO stockInOrderDO : stockInOrderDOList){
|
for (ReserveStockInOrderDO stockInOrderDO : stockInOrderDOList){
|
||||||
if (StringUtils.isBlank(stockInOrderDO.getInOrderNumber())){
|
Long warehouseId = stockInOrderDO.getWarehouseId();
|
||||||
stockInOrderDO.setInOrderNumber(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.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);
|
||||||
@@ -507,15 +535,15 @@ public class ReserveStockInOrderDomainService {
|
|||||||
String oldInOrderNumber = reservationStockInOrder.getInOrderNumber();
|
String oldInOrderNumber = reservationStockInOrder.getInOrderNumber();
|
||||||
// 生成新业务单号,防止与已生成的入库业务单号重复
|
// 生成新业务单号,防止与已生成的入库业务单号重复
|
||||||
String newOrderNumber = reservationStockInOrderDomainService.generateReserveOrderNumber();
|
String newOrderNumber = reservationStockInOrderDomainService.generateReserveOrderNumber();
|
||||||
reservationStockInOrder.setInOrderNumber(newOrderNumber);
|
// reservationStockInOrder.setInOrderNumber(newOrderNumber);
|
||||||
reservationStockInOrder.setBusinessOrderNo(newOrderNumber);
|
// reservationStockInOrder.setBusinessOrderNo(newOrderNumber);
|
||||||
List<ReserveInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReserveInMaterialDetail>().lambda().eq(ReserveInMaterialDetail::getInOrderNumber, oldInOrderNumber));
|
List<ReserveInMaterialDetail> materialDetailList = materialDetailService.list(new QueryWrapper<ReserveInMaterialDetail>().lambda().eq(ReserveInMaterialDetail::getInOrderNumber, oldInOrderNumber));
|
||||||
List<ReservationInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ReservationInMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
int index = 1;
|
int index = 1;
|
||||||
for (ReserveInMaterialDetail reserveInMaterialDetail : materialDetailList) {
|
for (ReserveInMaterialDetail reserveInMaterialDetail : materialDetailList) {
|
||||||
ReservationInMaterialDetail reservationInMaterialDetail = new ReservationInMaterialDetail();
|
ReservationInMaterialDetail reservationInMaterialDetail = new ReservationInMaterialDetail();
|
||||||
BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId");
|
BeanUtils.copyProperties(reserveInMaterialDetail, reservationInMaterialDetail,"materialDetailId");
|
||||||
reservationInMaterialDetail.setInOrderNumber(newOrderNumber); // 使用新单号保持与主表关联
|
// reservationInMaterialDetail.setInOrderNumber(newOrderNumber); // 使用新单号保持与主表关联
|
||||||
reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getReserveQuantity());
|
reservationInMaterialDetail.setQuantity(reserveInMaterialDetail.getReserveQuantity());
|
||||||
String lot = generateDateSerialNumber();
|
String lot = generateDateSerialNumber();
|
||||||
lot = lot+"-"+index;
|
lot = lot+"-"+index;
|
||||||
|
|||||||
+34
-5
@@ -185,8 +185,37 @@ 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 (StringUtils.isBlank(stockOutOrderDO.getOutOrderNumber())){
|
//设置单号
|
||||||
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.getInOrderNoPrefix();
|
||||||
|
if (prefix == null || prefix.isEmpty()) {
|
||||||
|
prefix = "RK";
|
||||||
|
}
|
||||||
|
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);
|
||||||
@@ -369,8 +398,8 @@ public class ReserveStockOutOrderDomainService {
|
|||||||
String oldOutOrderNumber = reservationStockOutOrder.getOutOrderNumber();
|
String oldOutOrderNumber = reservationStockOutOrder.getOutOrderNumber();
|
||||||
// 生成出库业务单号,防止与已生成的出库业务单号重复
|
// 生成出库业务单号,防止与已生成的出库业务单号重复
|
||||||
String newOrderNumber = reservationStockOutOrderDomainService.generateReserveOrderNumber();
|
String newOrderNumber = reservationStockOutOrderDomainService.generateReserveOrderNumber();
|
||||||
reservationStockOutOrder.setOutOrderNumber(newOrderNumber);
|
// reservationStockOutOrder.setOutOrderNumber(newOrderNumber);
|
||||||
reservationStockOutOrder.setBusinessOrderNo(newOrderNumber);
|
// reservationStockOutOrder.setBusinessOrderNo(newOrderNumber);
|
||||||
reservationStockOutOrderService.save(reservationStockOutOrder);
|
reservationStockOutOrderService.save(reservationStockOutOrder);
|
||||||
List<ReserveOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReserveOutMaterialDetail>().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, oldOutOrderNumber));
|
List<ReserveOutMaterialDetail> materialDetailList = outMaterialDetailService.list(new QueryWrapper<ReserveOutMaterialDetail>().lambda().eq(ReserveOutMaterialDetail::getOutOrderNumber, oldOutOrderNumber));
|
||||||
List<ReservationOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
List<ReservationOutMaterialDetail> inMaterialDetailList = new ArrayList<>();
|
||||||
@@ -378,7 +407,7 @@ public class ReserveStockOutOrderDomainService {
|
|||||||
for (ReserveOutMaterialDetail reserveOutMaterialDetail : materialDetailList) {
|
for (ReserveOutMaterialDetail reserveOutMaterialDetail : materialDetailList) {
|
||||||
ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail();
|
ReservationOutMaterialDetail reservationOutMaterialDetail = new ReservationOutMaterialDetail();
|
||||||
BeanUtils.copyProperties(reserveOutMaterialDetail, reservationOutMaterialDetail,"materialDetailId");
|
BeanUtils.copyProperties(reserveOutMaterialDetail, reservationOutMaterialDetail,"materialDetailId");
|
||||||
reservationOutMaterialDetail.setOutOrderNumber(newOrderNumber); // 使用新单号保持与主表关联
|
// reservationOutMaterialDetail.setOutOrderNumber(newOrderNumber); // 使用新单号保持与主表关联
|
||||||
String lot = generateDateSerialNumber();
|
String lot = generateDateSerialNumber();
|
||||||
lot = lot+"-"+index;
|
lot = lot+"-"+index;
|
||||||
index++;
|
index++;
|
||||||
|
|||||||
Reference in New Issue
Block a user