From d2df4c512e2fdaa0a99604cb2239e432fda5d353 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Fri, 5 Mar 2021 11:40:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=93=E7=AE=97=E7=AE=A1?= =?UTF-8?q?=E7=90=86bug=EF=BC=8C=E6=B7=BB=E5=8A=A0=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E7=BB=8F=E7=90=86=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cowr/common/enums/RoleEnum.java | 4 +- .../system/sysuser/SysuserSyncService.java | 11 +++++ .../TicketInvalidVerifySyncService.java | 4 ++ .../invoice/log/InvoiceLogSyncService.java | 42 +++++++++++-------- .../prepaydetail/PrepayDetailSyncService.java | 2 +- .../refunddetail/RefundDetailSyncService.java | 2 +- .../system/sysuser/SysuserSyncService.java | 13 ++++++ .../ticket/log/TicketLogController.java | 2 +- .../ticket/log/TicketLogSyncService.java | 4 ++ 9 files changed, 63 insertions(+), 21 deletions(-) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java b/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java index b9615c0..095a0e7 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/common/enums/RoleEnum.java @@ -14,9 +14,10 @@ import java.util.List; * 300 注册用户 * 400 占位 *

- * 500 公司总经理,权限:查看、付费审核、退费审核 + * 500 公司总经理,权限:查看、配额 * 501 公司财务人员,权限:查看、付费、退费 * 502 公司领导,权限:查看 + * 503 公司财务经理 付费审核、退费审核 */ public enum RoleEnum { DEVOPS(99), @@ -32,6 +33,7 @@ public enum RoleEnum { PRESIDENT(500), TREASURER(501), PRESIDENTVIEW(502), + FINANCEMANAGER(503), CHAISHA(600); diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/system/sysuser/SysuserSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/system/sysuser/SysuserSyncService.java index fe9b336..ce5fcd5 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/system/sysuser/SysuserSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/system/sysuser/SysuserSyncService.java @@ -125,6 +125,17 @@ public class SysuserSyncService extends BaseService { return roleid.equals(RoleEnum.TRANCOADMIN.getRoleid()); } + /** + * 是否财务经理 + * 预付费审批、退费审批 + * @param roleid + * @return + */ + public boolean isFinanceManager(Integer roleid){ + if (roleid == null) return false; + return roleid.equals(RoleEnum.FINANCEMANAGER.getRoleid()); + } + /** * 是否是司机 * diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java index 1f47e4a..52821a2 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java @@ -25,6 +25,10 @@ public class TicketInvalidVerifySyncService { return Result.failedstr("按 %s 没有找到订单信息", order_sn); } + if (order.getInvoiceType() == 2 && order.getInvoiceCode() != null) { + return Result.failed("已经开专票的结算单不能取消"); + } + TicketReceive receive = TicketReceiveService.me.checkReceive(CliCacheData.SUP.getId(), order.getTicketCode()); if (receive == null) { return Result.failed("没有有效的结算单领用记录,或者订单没有开具有效的结算单"); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogSyncService.java index f3f9d9d..68663b2 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogSyncService.java @@ -262,7 +262,13 @@ public class InvoiceLogSyncService extends BaseSyncService { return Result.failed("未找到发票记录"); } - return cancelType1(invoiceLog, invalid_memo, sysuser); + if (invoiceLog.getInvoiceType() == 1) { + return cancelType1(invoiceLog, invalid_memo, sysuser); + } else if (invoiceLog.getInvoiceType() == 2) { + return cancelType2(invoiceLog, invalid_memo, sysuser); + } else { + return Result.failed("发票记录错误"); + } } @@ -395,23 +401,14 @@ public class InvoiceLogSyncService extends BaseSyncService { return Result.failed("发票使用信息错误"); } - List ticketloglist = TicketLog.dao.find("select * from ticket_log t \n" + - " where t.state = ? \n" + - " and t.invoice_number = ? \n" + - " and t.ticket_code = ? ", - OrderStateEnum.RECEIVED.getStateid(), - invoiceLog.getInvoiceNumber(), - invoiceLog.getCode() - ); + Map map = new HashMap<>(); + Map ordmap = new HashMap<>(); + Date now = new Date(); + Record logrecord = new Record(); + List sql = new ArrayList<>(); + List ticketparams = new ArrayList<>(); - if (ticketloglist.isEmpty()) { - return Result.failed("发票使用信息错误"); - } - - Map map = new HashMap<>(); - Map ordmap = new HashMap<>(); - Date now = new Date(); - Record logrecord = new Record(); + ticketparams.add(OrderStateEnum.RECEIVED.getStateid()); logrecord.set("state", OrderStateEnum.INVALID.getStateid()); logrecord.set("invoice_type", invoiceLog.getInvoiceType()); @@ -431,6 +428,17 @@ public class InvoiceLogSyncService extends BaseSyncService { map.get(supermarket_id).addUpdateData(o); ordmap.put(o.getSn(), o); + + ticketparams.add(o.getTicketCode()); + sql.add("?"); + } + + List ticketloglist = TicketLog.dao.find("select * from ticket_log t \n" + + " where t.state = ? \n" + + " and t.ticket_code in(" + StrKit.join(sql, ",") + ")", ticketparams.toArray()); + + if (ticketloglist.isEmpty()) { + return Result.failed("结算单使用信息错误"); } for (InvoiceLog o : loglist) { diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaydetail/PrepayDetailSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaydetail/PrepayDetailSyncService.java index d4ec9a5..21d23c5 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaydetail/PrepayDetailSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/prepaydetail/PrepayDetailSyncService.java @@ -90,7 +90,7 @@ public class PrepayDetailSyncService extends BaseSyncService { * @return */ public Result verify(String id, int state, String memo, Sysuser user) { - if (!SysuserSyncService.me.isPresident(user.getRole())) { // 总经理审核预付费 + if (!SysuserSyncService.me.isFinanceManager(user.getRole())) { // 财务经理审核预付费 return Result.permissionDenied(); } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/refunddetail/RefundDetailSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/refunddetail/RefundDetailSyncService.java index 6478006..46b4600 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/refunddetail/RefundDetailSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/prepay/refunddetail/RefundDetailSyncService.java @@ -106,7 +106,7 @@ public class RefundDetailSyncService extends BaseSyncService { * @return */ public Result verify(String id, int state, String memo, Sysuser user) { - if (!SysuserSyncService.me.isPresident(user.getRole())) { // 总经理审核退费 + if (!SysuserSyncService.me.isFinanceManager(user.getRole())) { // 财务审核退费 return Result.permissionDenied(); } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java index 411980c..f2a2984 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/system/sysuser/SysuserSyncService.java @@ -136,6 +136,17 @@ public class SysuserSyncService extends BaseSyncService { return roleid.equals(RoleEnum.TRANCOADMIN.getRoleid()); } + /** + * 是否财务经理 + * 预付费审批、退费审批 + * @param roleid + * @return + */ + public boolean isFinanceManager(Integer roleid){ + if (roleid == null) return false; + return roleid.equals(RoleEnum.FINANCEMANAGER.getRoleid()); + } + /** * 是否是司机 * @@ -237,6 +248,7 @@ public class SysuserSyncService extends BaseSyncService { && !isConfigAdmin(model.getRole()) && !isChaisha(model.getRole()) && !isPresidentView(model.getRole()) + && !isFinanceManager(model.getRole()) ) { // 不是财务、经理、采砂局的时候,按照原来的规则检查 if (checkEntityId(model) == null) { @@ -755,6 +767,7 @@ public class SysuserSyncService extends BaseSyncService { && !isTreasurer(sysuser.getRole()) && !isCustomer(sysuser.getRole()) && !isChaisha(sysuser.getRole()) + && !isFinanceManager(sysuser.getRole()) ) { return Result.permissionDenied(); } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogController.java index 89b761e..c0ceb57 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogController.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogController.java @@ -125,7 +125,7 @@ public class TicketLogController extends Controller { return; } - String ticket_code = get("ticket_code"); + String ticket_code = get("code"); String invalid_memo = get("invalid_memo"); renderJson(TicketLogSyncService.me.cancelByCode(ticket_code, invalid_memo, tokenuser)); diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java index cbc2fb5..2ce2980 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java @@ -189,6 +189,10 @@ public class TicketLogSyncService extends BaseSyncService { logrecord.set("ticket_code", ticketLog.getTicketCode()); for (OrderTemp o : ordlist) { + if(o.getInvoiceType() == 2 && o.getInvoiceCode() != null){ + return Result.failed("已经开专票的结算单不能取消"); + } + o.setTicketCode(null); int supermarket_id = o.getSupermarketId();