|
|
@ -105,7 +105,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
|
|
|
|
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> checkpoolSerials = null; |
|
|
List<Map<String, Object>> checkpoolSerials = null; |
|
|
for(int i = 1; i<4 ;i++){ |
|
|
for(int i = 1; i<4 ;i++){ |
|
|
@ -130,10 +130,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (pass2 == 0) { |
|
|
if (pass2 == 0) { |
|
|
throw new RuntimeException("下卷首序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The first serial number of the next roll is not in the pool!"); |
|
|
} |
|
|
} |
|
|
if(pass!=pass2){ |
|
|
if(pass!=pass2){ |
|
|
throw new RuntimeException("2个序列号不在同一个通道!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The two serial numbers are not in the same channel!"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> map1= scanStationService.returnHSSerialNoId(job,String.valueOf(pass),endSerialNo); |
|
|
List<Map<String, Object>> map1= scanStationService.returnHSSerialNoId(job,String.valueOf(pass),endSerialNo); |
|
|
List<Map<String, Object>> map2= scanStationService.returnHSSerialNoId(job,String.valueOf(pass2),nextSerialNo); |
|
|
List<Map<String, Object>> map2= scanStationService.returnHSSerialNoId(job,String.valueOf(pass2),nextSerialNo); |
|
|
@ -141,7 +141,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
if(id1>=id2){ |
|
|
if(id1>=id2){ |
|
|
throw new RuntimeException("不允许创卷!原因:下卷开始序列号在本卷中。"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll creation not allowed! Reason: The next roll's starting serial number is within the current roll."); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -154,10 +154,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveHsSerialsFromPool(job,Integer.toString(pass)); |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveHsSerialsFromPool(job,Integer.toString(pass)); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn-"+pass, ""); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn-"+pass, ""); |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
throw new RuntimeException("请先扫描第一个序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Please scan the first serial number first!"); |
|
|
} |
|
|
} |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
throw new RuntimeException("池中无序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("No serial numbers in the pool!"); |
|
|
} |
|
|
} |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
@ -172,10 +172,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (index == -1) { |
|
|
if (index == -1) { |
|
|
throw new RuntimeException("序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The serial number is not in the pool!"); |
|
|
} |
|
|
} |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
throw new RuntimeException("结束序列号位置需大于第一个序列号"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end serial number position must be greater than the first serial number"); |
|
|
} |
|
|
} |
|
|
int qty = index - firstIndex + 1; |
|
|
int qty = index - firstIndex + 1; |
|
|
nowQty=qty; |
|
|
nowQty=qty; |
|
|
@ -184,7 +184,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
throw new RuntimeException("*****"); |
|
|
throw new RuntimeException("*****"); |
|
|
} |
|
|
} |
|
|
if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
} |
|
|
} |
|
|
String partMask = null; |
|
|
String partMask = null; |
|
|
logger.info("CFR-checkOrder"); |
|
|
logger.info("CFR-checkOrder"); |
|
|
@ -194,17 +194,17 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
if (order == null){ |
|
|
if (order == null){ |
|
|
throw new RuntimeException("无法根据序列号模板定位订单: " + serialNo); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Unable to locate order by serial number template: " + serialNo); |
|
|
} |
|
|
} |
|
|
if ( i == firstIndex ) { |
|
|
if ( i == firstIndex ) { |
|
|
partMask = SerialUtil.getPartMaskSerial(serialNo); |
|
|
partMask = SerialUtil.getPartMaskSerial(serialNo); |
|
|
orderNo = order.getOrderNo(); |
|
|
orderNo = order.getOrderNo(); |
|
|
} else { |
|
|
} else { |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
throw new RuntimeException("卷中存在不同订单的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different orders, unable to save"); |
|
|
} |
|
|
} |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
throw new RuntimeException("卷中存在不同part的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different parts, unable to save"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -220,7 +220,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
if (order == null){ |
|
|
if (order == null){ |
|
|
throw new RuntimeException("无法定位订单: " + serialNo); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Unable to locate order: " + serialNo); |
|
|
} |
|
|
} |
|
|
if (i == firstIndex) { |
|
|
if (i == firstIndex) { |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
@ -228,7 +228,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
}else{ |
|
|
}else{ |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
} |
|
|
} |
|
|
@ -259,13 +259,13 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if (i == index) { |
|
|
if (i == index) { |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
if (id == null || id <= 0) { |
|
|
if (id == null || id <= 0) { |
|
|
throw new RuntimeException("id没有找到"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("id not found"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> countList = scanStationService.countDataIdex(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
List<Map<String, Object>> countList = scanStationService.countDataIdex(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
int noReadQty = Integer.parseInt(String.valueOf(countList.get(0).get("countNumb"))); |
|
|
int noReadQty = Integer.parseInt(String.valueOf(countList.get(0).get("countNumb"))); |
|
|
int countNumb = (id - fromId + 1)-noReadQty; |
|
|
int countNumb = (id - fromId + 1)-noReadQty; |
|
|
if(qty!=countNumb){ |
|
|
if(qty!=countNumb){ |
|
|
throw new RuntimeException("序列号有丢失,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Serial numbers have been lost, unable to save"); |
|
|
} |
|
|
} |
|
|
lastId=id; |
|
|
lastId=id; |
|
|
} |
|
|
} |
|
|
@ -296,7 +296,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
|
|
|
|
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> checkpoolSerials = null; |
|
|
List<Map<String, Object>> checkpoolSerials = null; |
|
|
for(int i = 1; i<4 ;i++){ |
|
|
for(int i = 1; i<4 ;i++){ |
|
|
@ -321,10 +321,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (pass2 == 0) { |
|
|
if (pass2 == 0) { |
|
|
throw new RuntimeException("下卷首序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The first serial number of the next roll is not in the pool!"); |
|
|
} |
|
|
} |
|
|
if(pass!=pass2){ |
|
|
if(pass!=pass2){ |
|
|
throw new RuntimeException("2个序列号不在同一个通道!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The two serial numbers are not in the same channel!"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> map1= scanStationService.returnHSSerialNoId(job,String.valueOf(pass),endSerialNo); |
|
|
List<Map<String, Object>> map1= scanStationService.returnHSSerialNoId(job,String.valueOf(pass),endSerialNo); |
|
|
List<Map<String, Object>> map2= scanStationService.returnHSSerialNoId(job,String.valueOf(pass2),nextSerialNo); |
|
|
List<Map<String, Object>> map2= scanStationService.returnHSSerialNoId(job,String.valueOf(pass2),nextSerialNo); |
|
|
@ -332,7 +332,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
if(id1>=id2){ |
|
|
if(id1>=id2){ |
|
|
throw new RuntimeException("不允许创卷!原因:下卷开始序列号在本卷中。"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll creation not allowed! Reason: The next roll's starting serial number is within the current roll."); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -344,10 +344,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveHsSerialsFromPool(job,Integer.toString(pass)); |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveHsSerialsFromPool(job,Integer.toString(pass)); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn-"+pass, ""); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn-"+pass, ""); |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
throw new RuntimeException("请先扫描第一个序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Please scan the first serial number first!"); |
|
|
} |
|
|
} |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
throw new RuntimeException("池中无序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("No serial numbers in the pool!"); |
|
|
} |
|
|
} |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
@ -362,10 +362,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
if (index == -1) { |
|
|
if (index == -1) { |
|
|
throw new RuntimeException("序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The serial number is not in the pool!"); |
|
|
} |
|
|
} |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
throw new RuntimeException("结束序列号位置需大于第一个序列号"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end serial number position must be greater than the first serial number"); |
|
|
} |
|
|
} |
|
|
int qty = index - firstIndex + 1; |
|
|
int qty = index - firstIndex + 1; |
|
|
String partMask = null; |
|
|
String partMask = null; |
|
|
@ -380,10 +380,10 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
orderNo = order.getOrderNo(); |
|
|
orderNo = order.getOrderNo(); |
|
|
} else { |
|
|
} else { |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
throw new RuntimeException("卷中存在不同订单的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different orders, unable to save"); |
|
|
} |
|
|
} |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
throw new RuntimeException("卷中存在不同part的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different parts, unable to save"); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -399,7 +399,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
if (order == null){ |
|
|
if (order == null){ |
|
|
throw new RuntimeException("无法定位订单: " + serialNo); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Unable to locate order: " + serialNo); |
|
|
} |
|
|
} |
|
|
if (i == firstIndex) { |
|
|
if (i == firstIndex) { |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
@ -407,7 +407,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
}else{ |
|
|
}else{ |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
} |
|
|
} |
|
|
@ -438,13 +438,13 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if (i == index) { |
|
|
if (i == index) { |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
if (id == null || id <= 0) { |
|
|
if (id == null || id <= 0) { |
|
|
throw new RuntimeException("id没有找到"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("id not found"); |
|
|
} |
|
|
} |
|
|
List<Map<String, Object>> countList = scanStationService.countDataIdex(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
List<Map<String, Object>> countList = scanStationService.countDataIdex(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
int noReadQty = Integer.parseInt(String.valueOf(countList.get(0).get("countNumb"))); |
|
|
int noReadQty = Integer.parseInt(String.valueOf(countList.get(0).get("countNumb"))); |
|
|
int countNumb = (id - fromId + 1)-noReadQty; |
|
|
int countNumb = (id - fromId + 1)-noReadQty; |
|
|
if(qty!=countNumb){ |
|
|
if(qty!=countNumb){ |
|
|
throw new RuntimeException("序列号有丢失,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Serial numbers have been lost, unable to save"); |
|
|
} |
|
|
} |
|
|
lastId=id; |
|
|
lastId=id; |
|
|
// scanStationService.cutHsSerialsById(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
// scanStationService.cutHsSerialsById(jobRepo.findByJobId(jobId), fromId, id,Integer.toString(pass)); |
|
|
@ -490,7 +490,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
int nowQty=0; |
|
|
int nowQty=0; |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
SoInfo soInfo = getOrderBySerialNo(endSerialNo); |
|
|
SoInfo soInfo = getOrderBySerialNo(endSerialNo); |
|
|
String orderNo = soInfo.getOrderNo(); |
|
|
String orderNo = soInfo.getOrderNo(); |
|
|
@ -507,14 +507,14 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
if(id1>=id2){ |
|
|
if(id1>=id2){ |
|
|
throw new RuntimeException("不允许创卷!原因:下卷开始序列号在本卷中。"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll creation not allowed! Reason: The next roll's starting serial number is within the current roll."); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 end |
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 end |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn", ""); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn", ""); |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
throw new RuntimeException("请先扫描第一个序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Please scan the first serial number first!"); |
|
|
} |
|
|
} |
|
|
// String rollNo = kvService.getValueOrDefault(authentication.getName() + "_slittingRollNo", ""); |
|
|
// String rollNo = kvService.getValueOrDefault(authentication.getName() + "_slittingRollNo", ""); |
|
|
// if (StringUtils.isEmpty(rollNo)) { |
|
|
// if (StringUtils.isEmpty(rollNo)) { |
|
|
@ -526,7 +526,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
|
|
|
|
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveSerialsFromPool(job); |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveSerialsFromPool(job); |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
throw new RuntimeException("池中无序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("No serial numbers in the pool!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
@ -548,14 +548,14 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
throw new RuntimeException("*****"); |
|
|
throw new RuntimeException("*****"); |
|
|
} |
|
|
} |
|
|
if (index == -1) { |
|
|
if (index == -1) { |
|
|
throw new RuntimeException("序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The serial number is not in the pool!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
throw new RuntimeException("结束序列号位置需大于第一个序列号"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end serial number position must be greater than the first serial number"); |
|
|
} |
|
|
} |
|
|
if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
} |
|
|
} |
|
|
String partMask = null; |
|
|
String partMask = null; |
|
|
for (int i=firstIndex;i<=index;i++) { |
|
|
for (int i=firstIndex;i<=index;i++) { |
|
|
@ -567,11 +567,11 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
|
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
throw new RuntimeException("卷中存在不同订单的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different orders, unable to save"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
throw new RuntimeException("卷中存在不同part的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different parts, unable to save"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
@ -588,7 +588,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
if (order == null){ |
|
|
if (order == null){ |
|
|
throw new RuntimeException("无法定位订单: " + serialNo); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Unable to locate order: " + serialNo); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (i == firstIndex) { |
|
|
if (i == firstIndex) { |
|
|
@ -597,7 +597,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
}else{ |
|
|
}else{ |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
} |
|
|
} |
|
|
@ -629,13 +629,13 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
// frDtlRepo.save(dtl); |
|
|
// frDtlRepo.save(dtl); |
|
|
dtlList.add(dtl); |
|
|
dtlList.add(dtl); |
|
|
}catch (Exception e){ |
|
|
}catch (Exception e){ |
|
|
throw new RuntimeException("错误:" + e.getMessage()); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Error:" + e.getMessage()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (i == index) { |
|
|
if (i == index) { |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
if (id == null || id <= 0) { |
|
|
if (id == null || id <= 0) { |
|
|
throw new RuntimeException("id没有找到"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("id not found"); |
|
|
} |
|
|
} |
|
|
// int rows = scanStationService.cutById(job, fromId, id); |
|
|
// int rows = scanStationService.cutById(job, fromId, id); |
|
|
// //todo: check if delete rows equals insert rows |
|
|
// //todo: check if delete rows equals insert rows |
|
|
@ -660,7 +660,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
Map ret = new HashMap(); |
|
|
Map ret = new HashMap(); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 |
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 |
|
|
if(nextSerialNo!=null && !"".equals(nextSerialNo)){ |
|
|
if(nextSerialNo!=null && !"".equals(nextSerialNo)){ |
|
|
@ -670,7 +670,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id1=Integer.parseInt(map1.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
int id2=Integer.parseInt(map2.get(0).get("id").toString()); |
|
|
if(id1>=id2){ |
|
|
if(id1>=id2){ |
|
|
throw new RuntimeException("不允许创卷!原因:下卷开始序列号在本卷中。"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll creation not allowed! Reason: The next roll's starting serial number is within the current roll."); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -685,7 +685,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 end |
|
|
//2023-05-08 阮琦添加 检验下个首个序列号是否存在 end |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn", ""); |
|
|
String firstSn = kvService.getValueOrDefault(authentication.getName() + "_firstSn", ""); |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
if (StringUtils.isEmpty(firstSn)) { |
|
|
throw new RuntimeException("请先扫描第一个序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Please scan the first serial number first!"); |
|
|
} |
|
|
} |
|
|
// String rollNo = kvService.getValueOrDefault(authentication.getName() + "_slittingRollNo", ""); |
|
|
// String rollNo = kvService.getValueOrDefault(authentication.getName() + "_slittingRollNo", ""); |
|
|
// if (StringUtils.isEmpty(rollNo)) { |
|
|
// if (StringUtils.isEmpty(rollNo)) { |
|
|
@ -697,7 +697,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
|
|
|
|
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveSerialsFromPool(job); |
|
|
List<Map<String, Object>> poolSerials = scanStationService.retrieveSerialsFromPool(job); |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
if (poolSerials == null || poolSerials.size() == 0) { |
|
|
throw new RuntimeException("池中无序列号!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("No serial numbers in the pool!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
for (int i=0;i<poolSerials.size();i++){ |
|
|
@ -716,11 +716,11 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (index == -1) { |
|
|
if (index == -1) { |
|
|
throw new RuntimeException("序列号不在池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The serial number is not in the pool!"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
if (firstIndex == -1 || index < firstIndex) { |
|
|
throw new RuntimeException("结束序列号位置需大于第一个序列号"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end serial number position must be greater than the first serial number"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
String partMask = null; |
|
|
String partMask = null; |
|
|
@ -733,11 +733,11 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
} else { |
|
|
} else { |
|
|
|
|
|
|
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
if (orderNo != null && !orderNo.equals(order.getOrderNo())){ |
|
|
throw new RuntimeException("卷中存在不同订单的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different orders, unable to save"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
if (partMask != null && !partMask.equals(SerialUtil.getPartMaskSerial(serialNo))){ |
|
|
throw new RuntimeException("卷中存在不同part的序列号,无法保存"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Roll contains serial numbers from different parts, unable to save"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
@ -754,7 +754,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
String serialNo = (String) poolSerials.get(i).get("serialNo"); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
SoInfo order = getOrderBySerialNo(serialNo); |
|
|
if (order == null){ |
|
|
if (order == null){ |
|
|
throw new RuntimeException("无法定位订单: " + serialNo); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Unable to locate order: " + serialNo); |
|
|
} |
|
|
} |
|
|
if (i == firstIndex) { |
|
|
if (i == firstIndex) { |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
finalRollNo = order.getOrderNo() + "-R" + sequenceService.getSequence(order.getOrderNo(), 4); |
|
|
@ -762,7 +762,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
if(qty < standardRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
finalRoll.setStatus("Inspected - Frozen"); |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
}else if(qty > maxRollQty){//数量改成配置文件设置参数 2023-02-28 LR |
|
|
throw new RuntimeException("实际数量("+qty+")大于创卷最大数量("+maxRollQty+"),禁止创建!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Actual quantity ("+qty+") exceeds the maximum roll creation quantity ("+maxRollQty+"), creation prohibited!"); |
|
|
}else{ |
|
|
}else{ |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
finalRoll.setStatus("Inspected - Passed"); |
|
|
} |
|
|
} |
|
|
@ -793,13 +793,13 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
dtlList.add(dtl); |
|
|
dtlList.add(dtl); |
|
|
// frDtlRepo.save(dtl); |
|
|
// frDtlRepo.save(dtl); |
|
|
}catch (Exception e){ |
|
|
}catch (Exception e){ |
|
|
throw new RuntimeException("错误:" + e.getMessage()); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Error:" + e.getMessage()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (i == index) { |
|
|
if (i == index) { |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
Integer id = (Integer) poolSerials.get(i).get("id"); |
|
|
if (id == null || id <= 0) { |
|
|
if (id == null || id <= 0) { |
|
|
throw new RuntimeException("id没有找到"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("id not found"); |
|
|
} |
|
|
} |
|
|
// int rows = scanStationService.cutById(job, fromId, id); |
|
|
// int rows = scanStationService.cutById(job, fromId, id); |
|
|
//todo: check if delete rows equals insert rows |
|
|
//todo: check if delete rows equals insert rows |
|
|
@ -819,12 +819,12 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
//校验工单 |
|
|
//校验工单 |
|
|
SoInfo order = soInfoRepo.findByOrderNo(orderNo); |
|
|
SoInfo order = soInfoRepo.findByOrderNo(orderNo); |
|
|
if (order == null) { |
|
|
if (order == null) { |
|
|
throw new RuntimeException("订单不存在!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Order does not exist!"); |
|
|
} |
|
|
} |
|
|
//校验是否已经创建过了 |
|
|
//校验是否已经创建过了 |
|
|
List<SoFinalRoll> existing = finalRollRepo.findByOrderNoAndJobId(orderNo, "ROLLOP_40_S"); |
|
|
List<SoFinalRoll> existing = finalRollRepo.findByOrderNoAndJobId(orderNo, "ROLLOP_40_S"); |
|
|
if (existing.size() > 0) { |
|
|
if (existing.size() > 0) { |
|
|
throw new RuntimeException("重复创建"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Duplicate creation"); |
|
|
} |
|
|
} |
|
|
//查询工单 40工序所有的不良 |
|
|
//查询工单 40工序所有的不良 |
|
|
List<SoRollBadSerial> badSerials = badRepo.findByOrderNoAndOperationNo(orderNo, 40); |
|
|
List<SoRollBadSerial> badSerials = badRepo.findByOrderNoAndOperationNo(orderNo, 40); |
|
|
@ -900,15 +900,15 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
public int countBatchBads(String jobId, String orderNo, String firstSerialNo, String endSerialNo) { |
|
|
public int countBatchBads(String jobId, String orderNo, String firstSerialNo, String endSerialNo) { |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
//检查工单号 |
|
|
//检查工单号 |
|
|
if (null == orderNo || "".equals(orderNo)) { |
|
|
if (null == orderNo || "".equals(orderNo)) { |
|
|
throw new RuntimeException("工单不能为空!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Shop order cannot be empty!"); |
|
|
} |
|
|
} |
|
|
SoInfo soInfo = soInfoRepo.findByOrderNo(orderNo); |
|
|
SoInfo soInfo = soInfoRepo.findByOrderNo(orderNo); |
|
|
if (soInfo == null) { |
|
|
if (soInfo == null) { |
|
|
throw new RuntimeException("工单号无效!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Shop order number is invalid!"); |
|
|
} |
|
|
} |
|
|
String partNo = soInfo.getPartNo(); |
|
|
String partNo = soInfo.getPartNo(); |
|
|
PartData part = basicDao.getPartDataByPartNo(partNo); |
|
|
PartData part = basicDao.getPartDataByPartNo(partNo); |
|
|
@ -940,7 +940,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
Map<String, Object> poolSerial2 = scanStationService.getSerialFromPoolBySn(jdbcTemplate, endSerialNo); |
|
|
Map<String, Object> poolSerial2 = scanStationService.getSerialFromPoolBySn(jdbcTemplate, endSerialNo); |
|
|
//先循环查询排位 |
|
|
//先循环查询排位 |
|
|
if(poolSerial2 == null) { |
|
|
if(poolSerial2 == null) { |
|
|
throw new RuntimeException("结束码包不在当前码池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end code package is not in the current code pool!"); |
|
|
} |
|
|
} |
|
|
int endId = Integer.parseInt(String.valueOf(poolSerial2.get("id"))); |
|
|
int endId = Integer.parseInt(String.valueOf(poolSerial2.get("id"))); |
|
|
//获取开始和结束的ID |
|
|
//获取开始和结束的ID |
|
|
@ -984,16 +984,16 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
public List<SoRollBadSerial> createBatchBads(String jobId, String orderNo, String firstSerialNo, String endSerialNo, String username) { |
|
|
public List<SoRollBadSerial> createBatchBads(String jobId, String orderNo, String firstSerialNo, String endSerialNo, String username) { |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
ScanJob job = jobRepo.findByJobId(jobId); |
|
|
if (job == null){ |
|
|
if (job == null){ |
|
|
throw new RuntimeException("Job不存在"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Job does not exist"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//检查工单号 |
|
|
//检查工单号 |
|
|
if (null == orderNo || "".equals(orderNo)) { |
|
|
if (null == orderNo || "".equals(orderNo)) { |
|
|
throw new RuntimeException("工单不能为空!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Shop order cannot be empty!"); |
|
|
} |
|
|
} |
|
|
SoInfo soInfo = soInfoRepo.findByOrderNo(orderNo); |
|
|
SoInfo soInfo = soInfoRepo.findByOrderNo(orderNo); |
|
|
if (soInfo == null) { |
|
|
if (soInfo == null) { |
|
|
throw new RuntimeException("工单号无效!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Shop order number is invalid!"); |
|
|
} |
|
|
} |
|
|
//查询当前物料的数据 获取编码的类型 |
|
|
//查询当前物料的数据 获取编码的类型 |
|
|
String partNo = soInfo.getPartNo(); |
|
|
String partNo = soInfo.getPartNo(); |
|
|
@ -1025,7 +1025,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
Map<String, Object> poolSerial2 = scanStationService.getSerialFromPoolBySn(jdbcTemplate, endSerialNo); |
|
|
Map<String, Object> poolSerial2 = scanStationService.getSerialFromPoolBySn(jdbcTemplate, endSerialNo); |
|
|
//先循环查询排位 |
|
|
//先循环查询排位 |
|
|
if(poolSerial2 == null) { |
|
|
if(poolSerial2 == null) { |
|
|
throw new RuntimeException("结束码包不在当前码池中!"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("The end code package is not in the current code pool!"); |
|
|
} |
|
|
} |
|
|
int endId = Integer.parseInt(String.valueOf(poolSerial2.get("id"))); |
|
|
int endId = Integer.parseInt(String.valueOf(poolSerial2.get("id"))); |
|
|
//获取开始和结束的ID |
|
|
//获取开始和结束的ID |
|
|
@ -1124,7 +1124,7 @@ public class ScanningServiceImpl implements ScanningService { |
|
|
//String username = inData.getUsername(); |
|
|
//String username = inData.getUsername(); |
|
|
SoReceiveBoxsData resultRow = scanningDao.getOrderLastedActiveBox(receiveNo); |
|
|
SoReceiveBoxsData resultRow = scanningDao.getOrderLastedActiveBox(receiveNo); |
|
|
if (resultRow == null) { |
|
|
if (resultRow == null) { |
|
|
throw new RuntimeException("等待新增新的箱号"); |
|
|
|
|
|
|
|
|
throw new RuntimeException("Waiting for new box number to be added"); |
|
|
} |
|
|
} |
|
|
return resultRow; |
|
|
return resultRow; |
|
|
} |
|
|
} |
|
|
|