From f7b2ab6dfadd63ec210e296b36474ccc54c6bc0a Mon Sep 17 00:00:00 2001 From: mzr Date: Thu, 19 Jun 2025 19:56:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E5=87=BA=E5=BA=93=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=A0=A1=E9=AA=8C=E5=9C=A8=E9=94=80=E5=94=AE=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E4=B8=9A=E5=8A=A1=E6=97=A5=E6=9C=9F6.26=E5=8F=B7?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84=E4=B8=8D=E5=8F=82=E4=B8=8E=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ic/ic/saleout/saveBeforeCheck.java | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java b/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java index 55cecdc..325ecb6 100644 --- a/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java +++ b/ic/src/public/nccloud/resources/ic/ic/saleout/saveBeforeCheck.java @@ -18,6 +18,7 @@ import nc.vo.ic.m4c.entity.SaleOutVO; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFDouble; import nc.vo.pubapp.AppContext; +import nc.vo.pubapp.pattern.pub.SqlBuilder; import nc.vo.tmpub.util.ModuleEnum; import nc.vo.tmpub.util.ModuleUtil; import nccloud.baseapp.core.log.NCCForUAPLogger; @@ -66,6 +67,14 @@ public class saveBeforeCheck implements IBusinessListener { if (storedDate.isBefore(targetDate)) { return; } + // 在销售发票业务日期6.26号之前的不参与控制 + String invDateStr = (String) valMap.get("dbilldate"); + String invTargetDateStr = "2025-06-26 00:00:00"; + LocalDateTime invDate = LocalDateTime.parse(invDateStr, formatter); + LocalDateTime invTargetDate = LocalDateTime.parse(invTargetDateStr, formatter); + if (invDate.isBefore(invTargetDate)) { + return; + } // 销售发票表头pk_billtypecode=30-Cxx-12 Set billTypeCodes = Set.of( "30-Cxx-12", "30-Cxx-02", "30-Cxx-08", "30-Cxx-13", "30-Cxx-16" @@ -125,19 +134,30 @@ public class saveBeforeCheck implements IBusinessListener { private Map getSaleorderPK(String csourcebillbidStr) throws BusinessException { IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class); - String sql = " SELECT s.creationtime,bt.pk_billtypecode,sb.csaleorderbid,sb.vbdef2 AS sQty,\n" + "s.vdef11,\n" - + "si.vdef20,\n" + "sbv.nassistnum,\n" + "sbv.ntotaloutnums\n" + "FROM so_saleinvoice_b sib\n" - + "INNER JOIN so_saleinvoice si ON si.csaleinvoiceid = sib.csaleinvoiceid\n" - + "INNER JOIN so_saleorder_b sb ON sb.csaleorderbid = sib.csrcbid\n" - + "left join (SELECT SUM(b.nshouldassistnum) AS ntotaloutnums,sum(nassistnum) as nassistnum,c.csaleorderbid\n" - + "FROM so_saleorder_b c\n" + "INNER JOIN so_saleinvoice_b a ON c.csaleorderbid = a.csrcbid\n" - + "INNER JOIN ic_saleout_b b ON b.csourcebillbid = a.csaleinvoicebid\n" + "where a.dr=0 and b.dr=0 \n" - + "GROUP BY c.csaleorderbid) sbv on sbv.csaleorderbid=sb.csaleorderbid\n" - + "INNER JOIN so_saleorder s ON s.csaleorderid = sb.csaleorderid\n" - + "INNER JOIN bd_billtype bt on bt.pk_billtypeid=s.ctrantypeid\n" - + "INNER JOIN so_saleorder_exe se ON sb.csaleorderbid = se.csaleorderbid\n" - + "WHERE sib.csaleinvoicebid = '" + csourcebillbidStr + "' "; + + SqlBuilder sqlBuilder = new SqlBuilder(); + sqlBuilder.append("SELECT s.creationtime, bt.pk_billtypecode, sb.csaleorderbid, si.dbilldate, "); + sqlBuilder.append("sb.vbdef2 AS sQty, s.vdef11, si.vdef20, sbv.nassistnum, sbv.ntotaloutnums "); + sqlBuilder.append("FROM so_saleinvoice_b sib "); + sqlBuilder.append("INNER JOIN so_saleinvoice si ON si.csaleinvoiceid = sib.csaleinvoiceid "); + sqlBuilder.append("INNER JOIN so_saleorder_b sb ON sb.csaleorderbid = sib.csrcbid "); + sqlBuilder.append("LEFT JOIN ( "); + sqlBuilder.append(" SELECT SUM(b.nshouldassistnum) AS ntotaloutnums, SUM(nassistnum) AS nassistnum, c.csaleorderbid "); + sqlBuilder.append(" FROM so_saleorder_b c "); + sqlBuilder.append(" INNER JOIN so_saleinvoice_b a ON c.csaleorderbid = a.csrcbid "); + sqlBuilder.append(" INNER JOIN ic_saleout_b b ON b.csourcebillbid = a.csaleinvoicebid "); + sqlBuilder.append(" WHERE a.dr = 0 AND b.dr = 0 "); + sqlBuilder.append(" GROUP BY c.csaleorderbid "); + sqlBuilder.append(") sbv ON sbv.csaleorderbid = sb.csaleorderbid "); + sqlBuilder.append("INNER JOIN so_saleorder s ON s.csaleorderid = sb.csaleorderid "); + sqlBuilder.append("INNER JOIN bd_billtype bt ON bt.pk_billtypeid = s.ctrantypeid "); + sqlBuilder.append("INNER JOIN so_saleorder_exe se ON sb.csaleorderbid = se.csaleorderbid "); + sqlBuilder.append("WHERE "); + sqlBuilder.append("sib.csaleinvoicebid", csourcebillbidStr); + + String sql = sqlBuilder.toString(); Map valList = (Map) queryBS.executeQuery(sql, new MapProcessor()); + return valList; }