From 8a9aa6af7d4ab0c42853b0fa92e5aa7eb0a8c59a Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Tue, 10 Jun 2025 15:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ticket/log/TicketLogSyncService.java | 87 +++++++++++++++++-- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java index 016d22e..bf432ad 100644 --- a/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java +++ b/ssjygl-xsct-service/src/main/java/com/cowr/service/ssjygl/ticket/log/TicketLogSyncService.java @@ -131,7 +131,10 @@ public class TicketLogSyncService extends BaseSyncService { return Result.failed("未找到结算单记录"); } - return cancelType2(ticketLog, invalid_memo, sysuser); + if(ticketLog.getType() == 3){ + return cancelType2(ticketLog, invalid_memo, sysuser); + } + return cancelType(ticketLog, invalid_memo, sysuser); } public Result cancelByCode(String ticket_code, String invalid_memo, Sysuser sysuser) { @@ -141,7 +144,84 @@ public class TicketLogSyncService extends BaseSyncService { return Result.failed("未找到结算单记录"); } - return cancelType2(ticketLog, invalid_memo, sysuser); + if(ticketLog.getType() == 3){ + return cancelType2(ticketLog, invalid_memo, sysuser); + } + return cancelType(ticketLog, invalid_memo, sysuser); + } + + /** + * 原材料运输取消结算单 + * @param ticketLog + * @param invalid_memo + * @param sysuser + * @return + */ + public Result cancelType(TicketLog ticketLog, String invalid_memo, Sysuser sysuser) { + if (ticketLog.getState() == OrderStateEnum.INVALID.getStateid()) { + return Result.failed("记录已作废"); + } + + OrderTransfer transfer = OrderTransfer.dao.findFirst("select * from order_transfer t \n" + + " where t.state = ? \n" + + " and t.ticket_code = ? ", + OrderStateEnum.RECEIVED.getStateid(), + ticketLog.getTicketCode() + ); + + if (transfer == null) { + return Result.failed("关联订单信息错误"); + } + + Map map = new HashMap<>(); + Date now = new Date(); + Record logrecord = new Record(); + + logrecord.set("state", OrderStateEnum.INVALID.getStateid()); + logrecord.set("ticket_code", ticketLog.getTicketCode()); + + + transfer.setTicketCode(null); + int supermarket_id = transfer.getSupermarketId(); + SyncTask syncTask = new SyncTask(); + syncTask.addUpdateData(transfer); + + + ticketLog.setInvalidMemo(invalid_memo); + ticketLog.setInvalidTime(now); + ticketLog.setInvalidUserId(sysuser.getId()); + ticketLog.setInvalidUserName(sysuser.getName()); + ticketLog.setState(OrderStateEnum.INVALID.getStateid()); + + syncTask.addUpdateData(ticketLog); + map.put(supermarket_id,syncTask); + + boolean ret = Db.tx(new IAtom() { + @Override + public boolean run() { + try { + boolean ret = transfer.update() && ticketLog.update(); + + if (!ret) { + return false; + } + + // 将订单同步到不同的砂站 + for (Map.Entry entry : map.entrySet()) { + if (!SyncTaskService.me.save(entry.getValue(), entry.getKey())) { + return false; + } + } + + return ModifyLogService.me.save(TicketLog.tablename, "id", logrecord.toJson(), Enums.DataOpType.SAVE.getId(), sysuser); + } catch (Exception e) { + log.error(e.getMessage(), e); + return false; + } + } + }); + + return ret ? Result.success() : Result.failed("修改失败"); } /** @@ -189,9 +269,6 @@ 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);