From 3bc624b4f2a121703eb1b81032ef4a02ab2f9652 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Tue, 22 Sep 2020 00:15:50 +0800 Subject: [PATCH] . --- .../com/cowr/ssjygl/order/OrderService.java | 37 ++++ .../invoice/log/InvoiceLogController.java | 45 ----- .../invoice/log/InvoiceLogSyncService.java | 173 ----------------- ...derService.java => LocalOrderService.java} | 37 +--- .../OrderPurchaseController.java | 4 +- .../OrderPurchaseSyncService.java | 4 +- .../order/ordersale/OrderSaleController.java | 4 +- .../order/ordersale/OrderSaleSyncService.java | 6 +- .../order/ordertemp/OrderTempController.java | 4 +- .../order/ordertemp/OrderTempSyncService.java | 10 +- .../OrderTransferController.java | 4 +- .../OrderTransferSyncService.java | 4 +- .../ordertrash/OrderTrashController.java | 4 +- .../ordertrash/OrderTrashSyncService.java | 4 +- .../transport/TransportQueryService.java | 3 +- .../transport/TransportSyncService.java | 5 +- .../invoice/log/InvoiceLogController.java | 56 ++++++ .../invoice/log/InvoiceLogSyncService.java | 174 ++++++++++++++++++ 18 files changed, 300 insertions(+), 278 deletions(-) create mode 100644 ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/OrderService.java rename ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/{OrderService.java => LocalOrderService.java} (95%) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/OrderService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/OrderService.java new file mode 100644 index 0000000..b4c77b4 --- /dev/null +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/order/OrderService.java @@ -0,0 +1,37 @@ +package com.cowr.ssjygl.order; + +import com.cowr.common.base.BaseModel; +import com.cowr.common.enums.OrderTypeEnum; +import com.cowr.model.*; +import com.jfinal.kit.StrKit; + +public class OrderService { + public static OrderService me = new OrderService(); + /** + * 按 sn 查询订单相关信息 + * + * @param sn + * @return + */ + public BaseModel getOrderBySn(String sn) { + if (StrKit.isBlank(sn)) { + return null; + } + + int sntype = Integer.parseInt(sn.substring(10, 12)); + + if (sntype == OrderTypeEnum.SALE.getTypeid()) { + return OrderSale.dao.findById(sn); + } else if (sntype == OrderTypeEnum.TRANSFER.getTypeid()) { + return OrderTransfer.dao.findById(sn); + } else if (sntype == OrderTypeEnum.TEMP.getTypeid()) { + return OrderTemp.dao.findById(sn); + } else if (sntype == OrderTypeEnum.TRASH.getTypeid()) { + return OrderTrash.dao.findById(sn); + } else if (sntype == OrderTypeEnum.PURCHASE.getTypeid()) { + return OrderPurchase.dao.findById(sn); + } else { + return null; + } + } +} diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogController.java index c944f21..7770b4d 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogController.java @@ -63,49 +63,4 @@ public class InvoiceLogController extends Controller { InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段 renderJson(InvoiceLogService.me.findByPk(model)); } - - public void cancel() { - Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); - - if (tokenuser == null) { - renderJson(Result.noauth()); - return; - } - - String id = get("id"); - String invalid_memo = get("invalid_memo"); - - renderJson(InvoiceLogSyncService.me.cancel(id, invalid_memo, tokenuser)); - } - - public void cancelByCode() { - Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); - - if (tokenuser == null) { - renderJson(Result.noauth()); - return; - } - - String code = get("code"); - String invoice_number = get("invoice_number"); - String invalid_memo = get("invalid_memo"); - - renderJson(InvoiceLogSyncService.me.cancelByCode(invoice_number, code, invalid_memo, tokenuser)); - } - - public void invalid() { - Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); - - if (tokenuser == null) { - renderJson(Result.noauth()); - return; - } - - Integer supermarket_id = getInt("supermarket_id", 0); - String invoice_number = get("invoice_number"); - String code = get("code"); - String invalid_memo = get("invalid_memo"); - - renderJson(InvoiceLogSyncService.me.invalid(supermarket_id, invoice_number, code, invalid_memo, tokenuser)); - } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogSyncService.java index 4d76b54..d13c5f1 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/invoice/log/InvoiceLogSyncService.java @@ -1,183 +1,10 @@ package com.cowr.local.ssjygl.invoice.log; -import com.cowr.common.base.BaseModel; -import com.cowr.common.enums.Enums; -import com.cowr.common.enums.OrderStateEnum; -import com.cowr.common.view.Result; import com.cowr.local.ssjygl.base.BaseSyncService; -import com.cowr.local.ssjygl.order.OrderService; -import com.cowr.local.ssjygl.synctask.SyncTaskService; -import com.cowr.model.*; -import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; -import com.cowr.ssjygl.modifylog.ModifyLogService; -import com.jfinal.kit.StrKit; import com.jfinal.log.Log; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.IAtom; - -import java.sql.SQLException; -import java.util.Date; public class InvoiceLogSyncService extends BaseSyncService { private static Log log = Log.getLog(InvoiceLogSyncService.class); public static InvoiceLogSyncService me = new InvoiceLogSyncService(); - /** - * 作废发票,未关联订单的(损毁等,不是正常开票使用的发票) - * @return - */ - public Result invalid(int supermarket_id, String invoice_number, String code, String invalid_memo, Sysuser sysuser){ - Supermarket supermarket = Supermarket.dao.findById(supermarket_id); - - if(supermarket == null){ - return Result.failed("未找到超市信息"); - } - - InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where code = ? limit 1 ", code); - - if (invoiceLog != null) { - return Result.failed("发票已使用,请使用“取消发票”功能"); - } - - InvoiceReceive receive = InvoiceReceiveService.me.foremostReceive(supermarket_id, invoice_number); - if (receive == null) { - return Result.failed("没有有效的发票领用记录"); - } - - String next_invoice_code = InvoiceReceiveService.me.nextInvoiceCode(receive); - if (next_invoice_code == null) { - return Result.failed("没有可用发票"); - } - - if(!next_invoice_code.equals(code)){ - return Result.failed("只能按顺序作废发票"); - } - - invoiceLog = new InvoiceLog(); - invoiceLog.setId(StrKit.getRandomUUID()); - invoiceLog.setInvalidUserId(sysuser.getId()); - invoiceLog.setInvalidUserName(sysuser.getName()); - invoiceLog.setInvalidTime(new Date()); - invoiceLog.setInvalidMemo(invalid_memo); - invoiceLog.setState(OrderStateEnum.INVALID.getStateid()); - invoiceLog.setInvoiceReceiveId(receive.getId()); - invoiceLog.setCode(code); - invoiceLog.setInvoiceNumber(invoice_number); - - InvoiceLog finalInvoiceLog = invoiceLog; - boolean ret = Db.tx(new IAtom() { - @Override - public boolean run() throws SQLException { - try { - boolean ret = finalInvoiceLog.save(); - - if(!ret){ - return false; - } - - SyncTask synctask = new SyncTask(); - synctask.addSaveData(finalInvoiceLog); - - receive.setSurplus(receive.getSurplus() - 1); - receive.setCurrentCode(next_invoice_code); - - ret = receive.update(); - - if (!ret) { - log.error("发票领用信息更新失败", next_invoice_code); - return false; - } - - synctask.addUpdateData(receive); - - return SyncTaskService.me.save(synctask) - && ModifyLogService.me.save(finalInvoiceLog, null, Enums.DataOpType.SAVE.getId(), sysuser); - } catch (Exception e) { - log.error(e.getMessage(), e); - return false; - } - } - }); - - return ret ? Result.success(invoiceLog) : Result.failed(false, "处理失败"); - } - - public Result cancelByCode(String invoice_number, String code, String invalid_memo, Sysuser sysuser){ - InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where invoice_number = ? and code = ? limit 1 ", invoice_number, code); - - if (invoiceLog == null) { - return Result.failed("未找到发票记录"); - } - - return cancel(invoiceLog, invalid_memo, sysuser); - } - - - public Result cancel(String id, String invalid_memo, Sysuser sysuser){ - InvoiceLog invoiceLog = InvoiceLog.dao.findById(id); - - if(invoiceLog == null){ - return Result.failed("未找到发票记录"); - } - - return cancel(invoiceLog, invalid_memo, sysuser); - } - - /** - * 取消已使用的发票,必须关联了订单的 - * @param invoiceLog - * @param sysuser - * @return - */ - public Result cancel(InvoiceLog invoiceLog, String invalid_memo, Sysuser sysuser){ - if(invoiceLog.getState() == OrderStateEnum.INVALID.getStateid()){ - return Result.failed("记录已作废"); - } - - InvoiceLog old = invoiceLog.clone(); - BaseModel order = OrderService.me.getOrderBySn(invoiceLog.getOrderSn()); - - if(order == null){ - return Result.failedstr("未找到订单信息"); - } - - invoiceLog.setInvalidMemo(invalid_memo); - invoiceLog.setInvalidTime(new Date()); - invoiceLog.setInvalidUserId(sysuser.getId()); - invoiceLog.setInvalidUserName(sysuser.getName()); - invoiceLog.setState(OrderStateEnum.INVALID.getStateid()); - - boolean ret = Db.tx(new IAtom() { - @Override - public boolean run() { - try{ - order.set("invoice_code", null); - order.set("invoice_number", null); - boolean ret = order.update(); - - if(!ret){ - return false; - } - - SyncTask synctask = new SyncTask(); - synctask.addUpdateData(order); - - ret = invoiceLog.update(); - - if(!ret){ - return false; - } - - synctask.addUpdateData(invoiceLog); - - return SyncTaskService.me.save(synctask) && ModifyLogService.me.save(invoiceLog, old, Enums.DataOpType.UPDATE.getId(), sysuser); - }catch (Exception e){ - log.error(e.getMessage(), e); - } - return false; - } - }); - - return ret ? Result.success() : Result.failed("作废失败"); - } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/OrderService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java similarity index 95% rename from ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/OrderService.java rename to ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java index feb6d63..39af0e4 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/OrderService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/LocalOrderService.java @@ -14,6 +14,7 @@ import com.cowr.local.ssjygl.main.Config; import com.cowr.local.ssjygl.transport.TransportDeviceService; import com.cowr.model.*; import com.cowr.ssjygl.CacheData; +import com.cowr.ssjygl.order.OrderService; import com.cowr.ssjygl.transprice.TransPriceService; import com.jfinal.kit.PathKit; import com.jfinal.kit.StrKit; @@ -30,9 +31,9 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; -public class OrderService { - private static Log log = Log.getLog(OrderService.class); - public static OrderService me = new OrderService(); +public class LocalOrderService { + private static Log log = Log.getLog(LocalOrderService.class); + public static LocalOrderService me = new LocalOrderService(); private static final ThreadLocal sdf = new ThreadLocal() { protected SimpleDateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -513,7 +514,7 @@ public class OrderService { return Result.failed("sn 不能为 null"); } - BaseModel order = getOrderBySn(sn); + BaseModel order = OrderService.me.getOrderBySn(sn); if (order == null) { return Result.failed("未找到订单信息"); @@ -549,34 +550,6 @@ public class OrderService { return Result.success("打印指令已发送"); } - /** - * 按 sn 查询订单相关信息 - * - * @param sn - * @return - */ - public BaseModel getOrderBySn(String sn) { - if (StrKit.isBlank(sn)) { - return null; - } - - int sntype = Integer.parseInt(sn.substring(10, 12)); - - if (sntype == OrderTypeEnum.SALE.getTypeid()) { - return OrderSale.dao.findById(sn); - } else if (sntype == OrderTypeEnum.TRANSFER.getTypeid()) { - return OrderTransfer.dao.findById(sn); - } else if (sntype == OrderTypeEnum.TEMP.getTypeid()) { - return OrderTemp.dao.findById(sn); - } else if (sntype == OrderTypeEnum.TRASH.getTypeid()) { - return OrderTrash.dao.findById(sn); - } else if (sntype == OrderTypeEnum.PURCHASE.getTypeid()) { - return OrderPurchase.dao.findById(sn); - } else { - return null; - } - } - /** * 银行支付成功 * diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseController.java index 8549e5d..38980ce 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseController.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.Sysuser; import com.cowr.ssjygl.order.OrderCancelValidator; @@ -92,7 +92,7 @@ public class OrderPurchaseController extends BaseController { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.PURCHASE.getTypeid()) { renderJson(Result.failed("sn 不能为 null")); }else{ - renderJson(OrderService.me.print(sn, printer, tokenuser)); + renderJson(LocalOrderService.me.print(sn, printer, tokenuser)); } } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseSyncService.java index ad45cee..3ac6c24 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/orderpurchase/OrderPurchaseSyncService.java @@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; @@ -175,7 +175,7 @@ public class OrderPurchaseSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result cancel(String sn, Sysuser sysuser, String password) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleController.java index 88d64fa..a1d1e61 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleController.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.Sysuser; import com.cowr.ssjygl.order.OrderCancelValidator; @@ -118,7 +118,7 @@ public class OrderSaleController extends BaseController { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.SALE.getTypeid()) { renderJson(Result.failed("sn 不能为 null")); }else{ - renderJson(OrderService.me.print(sn, printer, tokenuser)); + renderJson(LocalOrderService.me.print(sn, printer, tokenuser)); } } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleSyncService.java index 56535c6..241b6c7 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordersale/OrderSaleSyncService.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.utils.DateTimeUtil; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.local.ssjygl.synctask.SyncTaskService; @@ -218,7 +218,7 @@ public class OrderSaleSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result prepay( @@ -518,7 +518,7 @@ public class OrderSaleSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result cancel(String sn, Sysuser sysuser, String password) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempController.java index 1cf1d73..c040157 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempController.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.Sysuser; import com.cowr.ssjygl.order.OrderCancelValidator; @@ -164,7 +164,7 @@ public class OrderTempController extends BaseController { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TEMP.getTypeid()) { renderJson(Result.failed("sn 不能为 null")); } else { - renderJson(OrderService.me.print(sn, printer, tokenuser)); + renderJson(LocalOrderService.me.print(sn, printer, tokenuser)); } } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java index 9145dfc..cac2157 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java @@ -7,7 +7,7 @@ import com.cowr.common.utils.DateTimeUtil; import com.cowr.common.view.Result; import com.cowr.local.ssjygl.actioncmdlog.ActionCmdLogService; import com.cowr.local.ssjygl.main.Config; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; import com.cowr.ssjygl.order.ordercluster.OrderclusterService; @@ -208,7 +208,7 @@ public class OrderTempSyncService { }); // if (order.getPayType() == 1) { - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); // } else { // return ret ? Result.success(order) : Result.failed("结算失败"); // } @@ -464,7 +464,7 @@ public class OrderTempSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result prepay( @@ -751,7 +751,7 @@ public class OrderTempSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result cancel(String sn, String invalid_memo, Sysuser sysuser, String password) { @@ -992,7 +992,7 @@ public class OrderTempSyncService { printdata.set("second_weight", transport.getSecondWeight()); try { - Config.deviceThread.print(printerId, OrderService.me.getPrintFile(printdata)); + Config.deviceThread.print(printerId, LocalOrderService.me.getPrintFile(printdata)); } catch (Exception e) { log.error(e.getMessage(), e); return Result.failed("打印指令失败"); diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferController.java index 799bb27..3bfb274 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferController.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.Sysuser; import com.cowr.ssjygl.order.OrderCancelValidator; @@ -92,7 +92,7 @@ public class OrderTransferController extends BaseController { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRANSFER.getTypeid()) { renderJson(Result.failed("sn 不能为 null")); }else{ - renderJson(OrderService.me.print(sn, printer, tokenuser)); + renderJson(LocalOrderService.me.print(sn, printer, tokenuser)); } } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferSyncService.java index 44b306b..b4fd915 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertransfer/OrderTransferSyncService.java @@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; @@ -188,7 +188,7 @@ public class OrderTransferSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result cancel(String sn, Sysuser sysuser, String password) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashController.java index 1cfa546..fc9664d 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashController.java @@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.Sysuser; import com.cowr.ssjygl.order.OrderCancelValidator; @@ -90,7 +90,7 @@ public class OrderTrashController extends BaseController { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRASH.getTypeid()) { renderJson(Result.failed("sn 不能为 null")); }else{ - renderJson(OrderService.me.print(sn, printer, tokenuser)); + renderJson(LocalOrderService.me.print(sn, printer, tokenuser)); } } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashSyncService.java index 4a93b31..7aed7b8 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertrash/OrderTrashSyncService.java @@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums; import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; @@ -164,7 +164,7 @@ public class OrderTrashSyncService { } }); - return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); + return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); } public Result cancel(String sn, Sysuser sysuser, String password) { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportQueryService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportQueryService.java index 18aba6b..318b371 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportQueryService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportQueryService.java @@ -7,8 +7,9 @@ import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.utils.ImageUtil; import com.cowr.common.view.Result; import com.cowr.local.ssjygl.main.Config; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; +import com.cowr.ssjygl.order.OrderService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.model.*; diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java index 1bd915c..5b9dce9 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java @@ -9,16 +9,15 @@ import com.cowr.common.view.Result; import com.cowr.local.ssjygl.devicectrl.common.Const; import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.main.Config; -import com.cowr.local.ssjygl.order.OrderService; +import com.cowr.local.ssjygl.order.LocalOrderService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.*; import com.cowr.ssjygl.CacheData; -import com.cowr.ssjygl.authlicense.AuthLicenseService; import com.cowr.ssjygl.blacklist.BlacklistService; import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.cowr.ssjygl.order.OrderService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; -import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckService; import com.cowr.ssjygl.transport.TransportService; import com.cowr.ssjygl.truck.TruckService; import com.jfinal.kit.StrKit; diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogController.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogController.java index 7973173..4e0f4ee 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogController.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/invoice/log/InvoiceLogController.java @@ -3,6 +3,8 @@ package com.cowr.service.ssjygl.invoice.log; import com.cowr.common.view.PageParam; import com.cowr.common.view.Result; import com.cowr.model.InvoiceLog; +import com.cowr.model.Sysuser; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.ssjygl.invoice.log.InvoiceLogPKValidator; import com.cowr.ssjygl.invoice.log.InvoiceLogService; import com.cowr.ssjygl.invoice.log.InvoiceLogValidator; @@ -62,4 +64,58 @@ public class InvoiceLogController extends Controller { InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段 renderJson(InvoiceLogService.me.findByPk(model)); } + + public void invalid() { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票 + renderJson(Result.permissionDenied()); + return; + } + + Integer supermarket_id = getInt("supermarket_id", 0); + String invoice_number = get("invoice_number"); + String code = get("code"); + String invalid_memo = get("invalid_memo"); + + renderJson(InvoiceLogSyncService.me.invalid(supermarket_id, invoice_number, code, invalid_memo, tokenuser)); + } + + public void cancel() { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票 + renderJson(Result.permissionDenied()); + return; + } + + String id = get("id"); + String invalid_memo = get("invalid_memo"); + + renderJson(InvoiceLogSyncService.me.cancel(id, invalid_memo, tokenuser)); + } + + public void cancelByCode() { + Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token")); + + if (tokenuser == null) { + renderJson(Result.noauth()); + return; + } else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票 + renderJson(Result.permissionDenied()); + return; + } + + String code = get("code"); + String invoice_number = get("invoice_number"); + String invalid_memo = get("invalid_memo"); + + renderJson(InvoiceLogSyncService.me.cancelByCode(invoice_number, code, invalid_memo, tokenuser)); + } } 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 2107cb6..9f81b5a 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 @@ -1,9 +1,183 @@ package com.cowr.service.ssjygl.invoice.log; +import com.cowr.common.base.BaseModel; +import com.cowr.common.enums.Enums; +import com.cowr.common.enums.OrderStateEnum; +import com.cowr.common.view.Result; +import com.cowr.model.*; import com.cowr.service.ssjygl.base.BaseSyncService; +import com.cowr.service.ssjygl.synctask.SyncTaskService; +import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; +import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.cowr.ssjygl.order.OrderService; +import com.jfinal.kit.StrKit; import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; + +import java.sql.SQLException; +import java.util.Date; public class InvoiceLogSyncService extends BaseSyncService { private static Log log = Log.getLog(InvoiceLogSyncService.class); public static InvoiceLogSyncService me = new InvoiceLogSyncService(); + + /** + * 作废发票,未关联订单的(损毁等,不是正常开票使用的发票) + * @return + */ + public Result invalid(int supermarket_id, String invoice_number, String code, String invalid_memo, Sysuser sysuser){ + Supermarket supermarket = Supermarket.dao.findById(supermarket_id); + + if(supermarket == null){ + return Result.failed("未找到超市信息"); + } + + InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where code = ? limit 1 ", code); + + if (invoiceLog != null) { + return Result.failed("发票已使用,请使用“取消发票”功能"); + } + + InvoiceReceive receive = InvoiceReceiveService.me.foremostReceive(supermarket_id, invoice_number); + if (receive == null) { + return Result.failed("没有有效的发票领用记录"); + } + + String next_invoice_code = InvoiceReceiveService.me.nextInvoiceCode(receive); + if (next_invoice_code == null) { + return Result.failed("没有可用发票"); + } + + if(!next_invoice_code.equals(code)){ + return Result.failed("只能按顺序作废发票"); + } + + invoiceLog = new InvoiceLog(); + invoiceLog.setId(StrKit.getRandomUUID()); + invoiceLog.setInvalidUserId(sysuser.getId()); + invoiceLog.setInvalidUserName(sysuser.getName()); + invoiceLog.setInvalidTime(new Date()); + invoiceLog.setInvalidMemo(invalid_memo); + invoiceLog.setState(OrderStateEnum.INVALID.getStateid()); + invoiceLog.setInvoiceReceiveId(receive.getId()); + invoiceLog.setCode(code); + invoiceLog.setInvoiceNumber(invoice_number); + + InvoiceLog finalInvoiceLog = invoiceLog; + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() throws SQLException { + try { + boolean ret = finalInvoiceLog.save(); + + if(!ret){ + return false; + } + + SyncTask synctask = new SyncTask(); + synctask.addSaveData(finalInvoiceLog); + + receive.setSurplus(receive.getSurplus() - 1); + receive.setCurrentCode(next_invoice_code); + + ret = receive.update(); + + if (!ret) { + log.error("发票领用信息更新失败", next_invoice_code); + return false; + } + + synctask.addUpdateData(receive); + + return SyncTaskService.me.save(synctask) + && ModifyLogService.me.save(finalInvoiceLog, null, Enums.DataOpType.SAVE.getId(), sysuser); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.success(invoiceLog) : Result.failed(false, "处理失败"); + } + + public Result cancelByCode(String invoice_number, String code, String invalid_memo, Sysuser sysuser){ + InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where invoice_number = ? and code = ? limit 1 ", invoice_number, code); + + if (invoiceLog == null) { + return Result.failed("未找到发票记录"); + } + + return cancel(invoiceLog, invalid_memo, sysuser); + } + + + public Result cancel(String id, String invalid_memo, Sysuser sysuser){ + InvoiceLog invoiceLog = InvoiceLog.dao.findById(id); + + if(invoiceLog == null){ + return Result.failed("未找到发票记录"); + } + + return cancel(invoiceLog, invalid_memo, sysuser); + } + + /** + * 取消已使用的发票,必须关联了订单的 + * @param invoiceLog + * @param sysuser + * @return + */ + public Result cancel(InvoiceLog invoiceLog, String invalid_memo, Sysuser sysuser){ + if(invoiceLog.getState() == OrderStateEnum.INVALID.getStateid()){ + return Result.failed("记录已作废"); + } + + InvoiceLog old = invoiceLog.clone(); + BaseModel order = OrderService.me.getOrderBySn(invoiceLog.getOrderSn()); + + if(order == null){ + return Result.failedstr("未找到订单信息"); + } + + invoiceLog.setInvalidMemo(invalid_memo); + invoiceLog.setInvalidTime(new Date()); + invoiceLog.setInvalidUserId(sysuser.getId()); + invoiceLog.setInvalidUserName(sysuser.getName()); + invoiceLog.setState(OrderStateEnum.INVALID.getStateid()); + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try{ + order.set("invoice_code", null); + order.set("invoice_number", null); + boolean ret = order.update(); + + if(!ret){ + return false; + } + + SyncTask synctask = new SyncTask(); + synctask.addUpdateData(order); + + ret = invoiceLog.update(); + + if(!ret){ + return false; + } + + synctask.addUpdateData(invoiceLog); + + return SyncTaskService.me.save(synctask) && ModifyLogService.me.save(invoiceLog, old, Enums.DataOpType.UPDATE.getId(), sysuser); + }catch (Exception e){ + log.error(e.getMessage(), e); + } + return false; + } + }); + + return ret ? Result.success() : Result.failed("作废失败"); + } }