From a3a027ee9540d6fef0dd8791eaaaa5b0d1348f68 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Wed, 26 Mar 2025 17:23:21 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OrderInvalidVerifyController.java | 4 +- .../OrderInvalidVerifySyncService.java | 36 ++++-- .../TicketInvalidVerifyController.java | 6 +- .../TicketInvalidVerifySyncService.java | 29 +++-- .../OrderInvalidVerifySyncService.java | 11 +- .../OrderTransferSyncService.java | 115 ++++++++++++++++++ .../TicketInvalidVerifySyncService.java | 39 +++++- 7 files changed, 206 insertions(+), 34 deletions(-) create mode 100644 ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/ordertransfer/OrderTransferSyncService.java diff --git a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifyController.java b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifyController.java index 84beac3..4458ecc 100644 --- a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifyController.java +++ b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifyController.java @@ -33,8 +33,8 @@ public class OrderInvalidVerifyController extends Controller { String order_sn = get("order_sn"); String invalid_memo = get("invalid_memo"); String attachment = get("attachment"); - - renderJson(OrderInvalidVerifySyncService.me.save(order_sn, attachment, invalid_memo, tokenuser)); + Integer type = getInt("type"); + renderJson(OrderInvalidVerifySyncService.me.save(order_sn, attachment, invalid_memo, tokenuser,type)); } /** diff --git a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java index 5683785..8269933 100644 --- a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java +++ b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java @@ -5,10 +5,7 @@ import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.synctask.SyncTaskService; -import com.cowr.model.OrderInvalidVerify; -import com.cowr.model.OrderTemp; -import com.cowr.model.SyncTask; -import com.cowr.model.Sysuser; +import com.cowr.model.*; import com.jfinal.kit.StrKit; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; @@ -20,16 +17,29 @@ public class OrderInvalidVerifySyncService { private static Log log = Log.getLog(OrderInvalidVerifySyncService.class); public static OrderInvalidVerifySyncService me = new OrderInvalidVerifySyncService(); - public Result save(String order_sn, String attachment, String invalid_memo, Sysuser sysuser) { - OrderTemp order = OrderTemp.dao.findById(order_sn); + public Result save(String order_sn, String attachment, String invalid_memo, Sysuser sysuser, Integer type) { + if(type == OrderTypeEnum.TEMP.getTypeid()){ + OrderTemp order = OrderTemp.dao.findById(order_sn); - if (order == null) { - return Result.failedstr("按 %s 没有找到订单信息", order_sn); + if (order == null) { + return Result.failedstr("按 %s 没有找到订单信息", order_sn); + } + + if(order.getState() != OrderStateEnum.RECEIVED.getStateid()){ + return Result.failed("只能对已收货的订单提出作废申请"); + } + } else { + OrderTransfer order = OrderTransfer.dao.findById(order_sn); + + if (order == null) { + return Result.failedstr("按 %s 没有找到订单信息", order_sn); + } + + if(order.getState() != OrderStateEnum.RECEIVED.getStateid()){ + return Result.failed("只能对已收货的订单提出作废申请"); + } } - if(order.getState() != OrderStateEnum.RECEIVED.getStateid()){ - return Result.failed("只能对已收货的订单提出作废申请"); - } OrderInvalidVerify old = OrderInvalidVerify.dao.findFirst("select * from order_invalid_verify t \n" + " where t.order_sn = ? \n" + @@ -46,8 +56,8 @@ public class OrderInvalidVerifySyncService { model.setCreateTime(new Date()); model.setCreateUserId(sysuser.getId()); model.setCreateUserName(sysuser.getName()); - model.setOrderSn(order.getSn()); - model.setType(OrderTypeEnum.TEMP.getTypeid()); + model.setOrderSn(order_sn); + model.setType(type); model.setAttachment(attachment); model.setInvalidMemo(invalid_memo); diff --git a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifyController.java b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifyController.java index b590719..67394d3 100644 --- a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifyController.java +++ b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifyController.java @@ -42,7 +42,7 @@ public class TicketInvalidVerifyController extends Controller { } /** - * 新增 invoice_invalid_verify 发票管理 - 发票作废申请 + * 新增 ticket_invalid_verify 发票管理 - 发票作废申请 */ @Before(InvoiceInvalidBySnVerifyValidator.class) public void saveBySn() { @@ -55,7 +55,7 @@ public class TicketInvalidVerifyController extends Controller { String order_sn = get("order_sn"); String invalid_memo = get("invalid_memo"); - - renderJson(TicketInvalidVerifySyncService.me.save(order_sn, invalid_memo, tokenuser)); + Integer type = getInt("type"); + renderJson(TicketInvalidVerifySyncService.me.save(order_sn, invalid_memo, tokenuser,type)); } } diff --git a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java index bc78327..2157655 100644 --- a/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java +++ b/ssjygl-xsct-local/src/main/java/com/cowr/local/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java @@ -18,18 +18,31 @@ public class TicketInvalidVerifySyncService { private static final Log log = Log.getLog(TicketInvalidVerifySyncService.class); public static TicketInvalidVerifySyncService me = new TicketInvalidVerifySyncService(); - public Result save(String order_sn, String invalid_memo, Sysuser sysuser) { - OrderTransfer order = OrderTransfer.dao.findById(order_sn); + public Result save(String order_sn, String invalid_memo, Sysuser sysuser ,Integer type) { + String ticket_code = ""; + if(type == OrderTypeEnum.TRANSFER.getTypeid()){ + OrderTransfer order = OrderTransfer.dao.findById(order_sn); - if (order == null) { - return Result.failedstr("按 %s 没有找到订单信息", order_sn); + if (order == null) { + return Result.failedstr("按 %s 没有找到订单信息", order_sn); + } + ticket_code = order.getTicketCode(); + }else{ + OrderTemp order = OrderTemp.dao.findById(order_sn); + + if (order == null) { + return Result.failedstr("按 %s 没有找到订单信息", order_sn); + } + + ticket_code = order.getTicketCode(); } + // if (order.getInvoiceType() == 2 && order.getInvoiceCode() != null) { // return Result.failed("已经开专票的结算单不能取消"); // } - TicketReceive receive = TicketReceiveService.me.checkReceive(CliCacheData.SUP.getId(), order.getTicketCode()); + TicketReceive receive = TicketReceiveService.me.checkReceive(CliCacheData.SUP.getId(), ticket_code); if (receive == null) { return Result.failed("没有有效的结算单领用记录,或者订单没有开具有效的结算单"); } @@ -48,11 +61,11 @@ public class TicketInvalidVerifySyncService { model.setCreateUserId(sysuser.getId()); model.setCreateUserName(sysuser.getName()); model.setTicketReceiveId(receive.getId()); - model.setOrderSn(order.getSn()); - model.setType(OrderTypeEnum.TEMP.getTypeid()); + model.setOrderSn(order_sn); + model.setType(type); model.setInvalidMemo(invalid_memo); - model.setTicketCode(order.getTicketCode()); + model.setTicketCode(ticket_code); SyncTask synctask = new SyncTask(); diff --git a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java index 7c76918..b6f39b1 100644 --- a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java +++ b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/invalidverify/OrderInvalidVerifySyncService.java @@ -1,11 +1,13 @@ package com.cowr.service.ssjygl.order.invalidverify; import com.cowr.common.enums.OrderStateEnum; +import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; import com.cowr.model.OrderInvalidVerify; import com.cowr.model.SyncTask; import com.cowr.model.Sysuser; import com.cowr.service.ssjygl.order.ordertemp.OrderTempSyncService; +import com.cowr.service.ssjygl.order.ordertransfer.OrderTransferSyncService; import com.cowr.service.ssjygl.synctask.SyncTaskService; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; @@ -42,8 +44,13 @@ public class OrderInvalidVerifySyncService { if (state == OrderStateEnum.INVALID.getStateid()) { return notPass(model); } else if (state == 2) { - // 订单取消申请 - return OrderTempSyncService.me.cancel(model.getOrderSn(), model.getInvalidMemo(), user, password, model); + if(model.getType() == OrderTypeEnum.TEMP.getTypeid()){ + // 订单取消申请 + return OrderTempSyncService.me.cancel(model.getOrderSn(), model.getInvalidMemo(), user, password, model); + }else { + return OrderTransferSyncService.me.cancel(model.getOrderSn(), model.getInvalidMemo(), user, password, model); + } + } return Result.failed("修改失败"); diff --git a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/ordertransfer/OrderTransferSyncService.java b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/ordertransfer/OrderTransferSyncService.java new file mode 100644 index 0000000..fbd1e6c --- /dev/null +++ b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/order/ordertransfer/OrderTransferSyncService.java @@ -0,0 +1,115 @@ +package com.cowr.service.ssjygl.order.ordertransfer; + +import com.alibaba.fastjson.JSONObject; +import com.cowr.common.enums.Enums; +import com.cowr.common.enums.OrderStateEnum; +import com.cowr.common.utils.DateTimeUtil; +import com.cowr.common.view.Result; +import com.cowr.model.*; +import com.cowr.service.ssjygl.synctask.SyncTaskService; +import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService; +import com.cowr.ssjygl.modifylog.ModifyLogService; +import com.cowr.ssjygl.order.orderend.OrderEndService; +import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService; +import com.jfinal.log.Log; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.IAtom; +import com.jfinal.plugin.activerecord.Record; + +import java.util.Date; + +public class OrderTransferSyncService { + public static OrderTransferSyncService me = new OrderTransferSyncService(); + private static Log log = Log.getLog(OrderTransferSyncService.class); + + + public Result cancel(String sn, String invalid_memo, Sysuser sysuser, String password, OrderInvalidVerify orderInvalidVerify) { + OrderTransfer order = OrderTransfer.dao.findById(sn); + + if (order == null) { + return Result.failedstr("按订单号【%s】未找到记录", sn); + } + + int orderstate = order.getState(); + + if (orderstate == OrderStateEnum.INVALID.getStateid()) { + return Result.failed("订单已经取消"); + } + + order.setState(OrderStateEnum.INVALID.getStateid()); // 将订单状态置为 9 + + Record logrecord = new Record(); + logrecord.set("sn", sn); + logrecord.set("state", OrderStateEnum.INVALID.getStateid()); + + SyncTask synctask = new SyncTask(); + SyncTask synctaskincrement = new SyncTask(); + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + synctask.addUpdateData(order); + + boolean ret = order.update(); + + if (!ret) { + return false; + } + + if (orderInvalidVerify != null) { + ret = orderInvalidVerify.update(); + + if (!ret) { + return false; + } + + synctask.addUpdateData(orderInvalidVerify); + } + + // 开具过结算单的 + if(order.getTicketCode() != null){ + TicketLog ticketLog = TicketLog.dao.findFirst( + "select * from ticket_log t where ticket_code = ? limit 1 ", + order.getTicketCode()); + + if (ticketLog != null) { + ticketLog.setInvalidUserId(sysuser.getId()); + ticketLog.setInvalidUserName(sysuser.getName()); + ticketLog.setInvalidTime(new Date()); + ticketLog.setInvalidMemo(invalid_memo); + ticketLog.setState(OrderStateEnum.INVALID.getStateid()); + + ret = ticketLog.update(); + + if (!ret) { + return false; + } + + synctask.addUpdateData(ticketLog); + } else { + log.error("订单[%s]没有找到结算单记录", order.getSn()); + } + } + + if (!ret) { + return false; + } + + + return ret && SyncTaskService.me.save(synctask, order.getSupermarketId()) + && ModifyLogService.me.save(order.tablename, "sn", logrecord.toJson(), Enums.DataOpType.UPDATE.getId(), sysuser); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + if (ret) { + SyncTaskService.me.send(synctask); + } + + return ret ? Result.success(order) : Result.failed("取消失败"); + } +} diff --git a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java index 7fd7981..b853d02 100644 --- a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java +++ b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/invalidverify/TicketInvalidVerifySyncService.java @@ -1,6 +1,7 @@ package com.cowr.service.ssjygl.ticket.invalidverify; import com.cowr.common.enums.OrderStateEnum; +import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.view.Result; import com.cowr.model.*; import com.cowr.service.ssjygl.synctask.SyncTaskService; @@ -99,20 +100,38 @@ public class TicketInvalidVerifySyncService { OrderTemp order = null; - if (StrKit.notBlank(model.getOrderSn())) { - order = OrderTemp.dao.findById(model.getOrderSn()); + OrderTransfer orderTransfer = null; - if (order == null) { - return Result.failedstr("按 %s 没有找到订单信息", model.getOrderSn()); + if (StrKit.notBlank(model.getOrderSn())) { + if(model.getType() == OrderTypeEnum.TEMP.getTypeid()){ + order = OrderTemp.dao.findById(model.getOrderSn()); + + if (order == null) { + return Result.failedstr("按 %s 没有找到订单信息", model.getOrderSn()); + } + + order.setTicketCode(null); + + synctask.addUpdateData(order); // 关联了订单的,要更新订单信息,清除开票信息 + } else { + orderTransfer = OrderTransfer.dao.findById(model.getOrderSn()); + + if (orderTransfer == null) { + return Result.failedstr("按 %s 没有找到订单信息", model.getOrderSn()); + } + + orderTransfer.setTicketCode(null); + + synctask.addUpdateData(orderTransfer); // 关联了订单的,要更新订单信息,清除开票信息 } - order.setTicketCode(null); - synctask.addUpdateData(order); // 关联了订单的,要更新订单信息,清除开票信息 + } TicketLog finalTicketLog = ticketLog; OrderTemp finalOrder = order; + OrderTransfer finalOrderTransfer = orderTransfer; boolean ret = Db.tx(new IAtom() { @Override public boolean run() { @@ -148,6 +167,14 @@ public class TicketInvalidVerifySyncService { } } + if(finalOrderTransfer != null){ + ret = finalOrderTransfer.update(); + + if (!ret) { + return false; + } + } + return SyncTaskService.me.save(synctask, model.getSupermarketId()); } catch (Exception e) { log.error(e.getMessage(), e);