处理结算单编号验证可能存在的问题
parent
e1df7096b8
commit
0935c05b84
|
|
@ -40,13 +40,13 @@ public class InvoiceReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
Integer code = Integer.parseInt(invoice_code);
|
||||
Long code = Long.parseLong(invoice_code);
|
||||
String sql = "select * from invoice_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and t.surplus > 0 \n" +
|
||||
" and t.invoice_number = ? \n" +
|
||||
" and cast(t.start_code as unsigned integer) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned integer) >= ? \n" +
|
||||
" and cast(t.start_code as unsigned) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned) >= ? \n" +
|
||||
" limit 1";
|
||||
|
||||
InvoiceReceive receive = InvoiceReceive.dao.findFirst(sql, supermarket_id, invoice_number, code, code);
|
||||
|
|
@ -56,6 +56,7 @@ public class InvoiceReceiveService extends BaseService {
|
|||
|
||||
/**
|
||||
* 有领用记录,可以是已经被使用完的
|
||||
*
|
||||
* @param supermarket_id
|
||||
* @param invoice_number
|
||||
* @param invoice_code
|
||||
|
|
@ -66,12 +67,12 @@ public class InvoiceReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
Integer code = Integer.parseInt(invoice_code);
|
||||
Long code = Long.parseLong(invoice_code);
|
||||
String sql = "select * from invoice_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and t.invoice_number = ? \n" +
|
||||
" and cast(t.start_code as unsigned integer) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned integer) >= ? \n" +
|
||||
" and cast(t.start_code as unsigned) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned) >= ? \n" +
|
||||
" limit 1";
|
||||
|
||||
InvoiceReceive receive = InvoiceReceive.dao.findFirst(sql, supermarket_id, invoice_number, code, code);
|
||||
|
|
@ -90,7 +91,7 @@ public class InvoiceReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
String next_invoice_code = String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1);
|
||||
String next_invoice_code = String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1);
|
||||
|
||||
// 按领用 id 找到所有作废的发票
|
||||
List<InvoiceLog> invoiceLogs = InvoiceLog.dao.find(
|
||||
|
|
@ -114,7 +115,7 @@ public class InvoiceReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
String next_next_invoice_code = String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(next_invoice_code) + 1);
|
||||
String next_next_invoice_code = String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(next_invoice_code) + 1);
|
||||
|
||||
return getValidInvoiceCode(receive, next_next_invoice_code, invoiceLogs);
|
||||
}
|
||||
|
|
@ -125,7 +126,7 @@ public class InvoiceReceiveService extends BaseService {
|
|||
|
||||
private String getValidInvoiceCode(String invoice_number, String next_invoice_code, Map<String, InvoiceLog> map) {
|
||||
if (map.containsKey(invoice_number + "_" + next_invoice_code)) { // 说明下一个发票号码已经作废,需要继续顺延
|
||||
return getValidInvoiceCode(invoice_number, String.format("%0" + next_invoice_code.length() + "d", Integer.parseInt(next_invoice_code) + 1), map);
|
||||
return getValidInvoiceCode(invoice_number, String.format("%0" + next_invoice_code.length() + "d", Long.parseLong(next_invoice_code) + 1), map);
|
||||
} else {
|
||||
return next_invoice_code;
|
||||
}
|
||||
|
|
@ -142,7 +143,7 @@ public class InvoiceReceiveService extends BaseService {
|
|||
String sql = "select * from invoice_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and t.surplus > 0\n" +
|
||||
" order by cast(t.start_code as unsigned integer) asc";
|
||||
" order by cast(t.start_code as unsigned) asc";
|
||||
|
||||
List<InvoiceReceive> receives = InvoiceReceive.dao.find(sql, supermarket_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,13 @@ import java.util.List;
|
|||
public class TicketLogService extends BaseService {
|
||||
public static final TicketLogService me = new TicketLogService();
|
||||
|
||||
public TicketLog checkUseTicketLog(String ticket_code) {
|
||||
return TicketLog.dao.findFirst(
|
||||
"select * from ticket_log t where t.ticket_code = ?",
|
||||
ticket_code
|
||||
);
|
||||
}
|
||||
|
||||
public TicketLog checkInvalidTicketLog(String ticket_code) {
|
||||
return TicketLog.dao.findFirst(
|
||||
"select * from ticket_log t where t.state = ? and t.ticket_code = ?",
|
||||
|
|
|
|||
|
|
@ -38,13 +38,13 @@ public class TicketReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
Integer code = Integer.parseInt(ticket_code);
|
||||
Long code = Long.parseLong(ticket_code);
|
||||
|
||||
String sql = "select * from ticket_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and t.surplus > 0 \n" +
|
||||
" and cast(t.start_code as unsigned integer) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned integer) >= ? \n" +
|
||||
" and cast(t.start_code as unsigned) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned) >= ? \n" +
|
||||
" limit 1";
|
||||
TicketReceive receive = TicketReceive.dao.findFirst(sql, supermarket_id, code, code);
|
||||
|
||||
|
|
@ -56,11 +56,11 @@ public class TicketReceiveService extends BaseService {
|
|||
return null;
|
||||
}
|
||||
|
||||
Integer code = Integer.parseInt(ticket_code);
|
||||
Long code = Long.parseLong(ticket_code);
|
||||
String sql = "select * from ticket_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and cast(t.start_code as unsigned integer) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned integer) >= ? \n" +
|
||||
" and cast(t.start_code as unsigned) <= ? \n" +
|
||||
" and cast(t.end_code as unsigned) >= ? \n" +
|
||||
" limit 1";
|
||||
|
||||
TicketReceive receive = TicketReceive.dao.findFirst(sql, supermarket_id, code, code);
|
||||
|
|
@ -70,7 +70,7 @@ public class TicketReceiveService extends BaseService {
|
|||
|
||||
private String getValidTicketCode(String next_ticket_code, Map<String, TicketLog> map) {
|
||||
if (map.containsKey(next_ticket_code)) { // 说明下一个结算单号码已经作废,需要继续顺延
|
||||
return getValidTicketCode(String.format("%0" + next_ticket_code.length() + "d", Integer.parseInt(next_ticket_code) + 1), map);
|
||||
return getValidTicketCode(String.format("%0" + next_ticket_code.length() + "d", Long.parseLong(next_ticket_code) + 1), map);
|
||||
} else {
|
||||
return next_ticket_code;
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ public class TicketReceiveService extends BaseService {
|
|||
String sql = "select * from ticket_receive t\n" +
|
||||
" where t.supermarket_id = ? \n" +
|
||||
" and t.surplus > 0\n" +
|
||||
" order by cast(t.start_code as unsigned integer) asc";
|
||||
" order by cast(t.start_code as unsigned) asc";
|
||||
|
||||
List<TicketReceive> receives = TicketReceive.dao.find(sql, supermarket_id);
|
||||
|
||||
|
|
|
|||
|
|
@ -70,9 +70,9 @@ public class InvoiceLogSyncService extends BaseSyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (code.equals(receive.getStartCode())) { // 作废第一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (code.equals(receive.getCurrentCode())) { // 作废顺延的下一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,9 +125,9 @@ public class OrderTempSyncService {
|
|||
return Result.failed("没有有效的结算单领用记录,或者结算单已经被使用");
|
||||
}
|
||||
|
||||
TicketLog ticketLog = TicketLogService.me.checkInvalidTicketLog(ticket_code);
|
||||
TicketLog ticketLog = TicketLogService.me.checkUseTicketLog(ticket_code);
|
||||
if (ticketLog != null) {
|
||||
return Result.failedstr("结算单 %s 已作废", ticket_code);
|
||||
return Result.failedstr("结算单 %s 已使用", ticket_code);
|
||||
}
|
||||
|
||||
ticketReceive.setSurplus(ticketReceive.getSurplus() - 1);
|
||||
|
|
@ -397,9 +397,9 @@ public class OrderTempSyncService {
|
|||
return Result.failed("没有有效的结算单领用记录,或者结算单已经被使用");
|
||||
}
|
||||
|
||||
TicketLog ticketLog = TicketLogService.me.checkInvalidTicketLog(ticket_code);
|
||||
TicketLog ticketLog = TicketLogService.me.checkUseTicketLog(ticket_code);
|
||||
if (ticketLog != null) {
|
||||
return Result.failedstr("结算单 %s 已作废", ticket_code);
|
||||
return Result.failedstr("结算单 %s 已使用", ticket_code);
|
||||
}
|
||||
|
||||
ticketReceive.setSurplus(ticketReceive.getSurplus() - 1);
|
||||
|
|
@ -766,9 +766,9 @@ public class OrderTempSyncService {
|
|||
return Result.failed("没有有效的结算单领用记录,或者结算单已经被使用");
|
||||
}
|
||||
|
||||
TicketLog ticketLog = TicketLogService.me.checkInvalidTicketLog(ticket_code);
|
||||
TicketLog ticketLog = TicketLogService.me.checkUseTicketLog(ticket_code);
|
||||
if (ticketLog != null) {
|
||||
return Result.failedstr("结算单 %s 已作废", ticket_code);
|
||||
return Result.failedstr("结算单 %s 已使用", ticket_code);
|
||||
}
|
||||
|
||||
ticketReceive.setSurplus(ticketReceive.getSurplus() - 1);
|
||||
|
|
@ -1188,9 +1188,9 @@ public class OrderTempSyncService {
|
|||
return Result.failed("没有有效的结算单领用记录,或者结算单已经被使用");
|
||||
}
|
||||
|
||||
TicketLog ticketLog = TicketLogService.me.checkInvalidTicketLog(ticket_code);
|
||||
TicketLog ticketLog = TicketLogService.me.checkUseTicketLog(ticket_code);
|
||||
if (ticketLog != null) {
|
||||
return Result.failedstr("结算单 %s 已作废", ticket_code);
|
||||
return Result.failedstr("结算单 %s 已使用", ticket_code);
|
||||
}
|
||||
|
||||
order.setTicketCode(ticket_code);
|
||||
|
|
|
|||
|
|
@ -67,9 +67,9 @@ public class TicketLogSyncService extends BaseSyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (ticket_code.equals(receive.getStartCode())) { // 作废第一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (ticket_code.equals(receive.getCurrentCode())) { // 作废顺延的下一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ public class InvoiceInvalidVerifySyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (model.getInvoiceCode().equals(receive.getStartCode())) { // 作废第一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (model.getInvoiceCode().equals(receive.getCurrentCode())) { // 作废顺延的下一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,9 +207,9 @@ public class InvoiceLogSyncService extends BaseSyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (code.equals(receive.getStartCode())) { // 作废第一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (code.equals(receive.getCurrentCode())) { // 作废顺延的下一张发票
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,9 +78,9 @@ public class TicketInvalidVerifySyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (model.getTicketCode().equals(receive.getStartCode())) { // 作废第一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (model.getTicketCode().equals(receive.getCurrentCode())) { // 作废顺延的下一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,9 +76,9 @@ public class TicketLogSyncService extends BaseSyncService {
|
|||
receive.setCurrentCode(receive.getEndCode());
|
||||
} else {
|
||||
if (ticket_code.equals(receive.getStartCode())) { // 作废第一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getStartCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getStartCode()) + 1));
|
||||
} else if (ticket_code.equals(receive.getCurrentCode())) { // 作废顺延的下一张结算单
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Integer.parseInt(receive.getCurrentCode()) + 1));
|
||||
receive.setCurrentCode(String.format("%0" + receive.getStartCode().length() + "d", Long.parseLong(receive.getCurrentCode()) + 1));
|
||||
} else {
|
||||
// 其他情况下不更新 current_code
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue