diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java index 0f5a5f6..c06d122 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillEditSaveBatchBSAction.java @@ -11,15 +11,22 @@ import nc.bs.arap.util.BillAccountCalendarUtils; import nc.bs.arap.util.BillDateUtils; import nc.bs.arap.validator.CrossRuleCheckValidator; import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.bs.trade.business.HYSuperDMO; import nc.jdbc.framework.processor.MapProcessor; import nc.vo.arap.basebill.BaseBillVO; import nc.vo.arap.gathering.GatheringBillItemVO; import nc.vo.arap.utils.StringUtil; +import nc.vo.bd.defdoc.DefdocVO; import nc.vo.pub.AggregatedValueObject; import nc.vo.pub.BusinessException; import nc.vo.pub.CircularlyAccessibleValueObject; import nc.vo.pub.lang.UFDouble; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; import java.util.Map; public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction { @@ -71,10 +78,21 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction UFDouble changeMoney = money.sub(oriMoney); // 根据销售订单id去查询销售订单 BaseDAO dao = new BaseDAO(); - String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3 - + "'"; + List defMap = checkOrgCtrl(); + if (defMap.isEmpty() ) { + return ; + } + String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG where so_saleorder.dr = 0 and so_saleorder.csaleorderid = '" +def3+"'"; + Map saleMap = (Map)dao.executeQuery(sql1, new MapProcessor()); + String code = saleMap.get("code").toString(); + LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - Map saleMap = (Map) dao.executeQuery(sql, new MapProcessor()); + if (defMap.contains(code) && dbilldate.isBefore(targetDate)) { + return; + } // 销售订单价税合计 UFDouble ntotalorigmny = UFDouble.ZERO_DBL; // 销售订单实际收款金额 @@ -119,4 +137,19 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction this.checkOtherSystemBill(bills, orginBills); (new CrossRuleCheckValidator()).validate(bills); } + private List checkOrgCtrl() { + List list = new ArrayList<>(); + String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='org-ctrl' and dr=0 ) and dr=0"; + try { + DefdocVO[] defdocVOs = (DefdocVO[]) new HYSuperDMO().queryByWhereClause(DefdocVO.class, strWhere); + if (defdocVOs != null && defdocVOs.length > 0) { + for (DefdocVO defdocVO : defdocVOs) { + list.add(defdocVO.getCode()); + } + } + } catch (DAOException e) { + e.printStackTrace(); + } + return list; + } } diff --git a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java index 7db1f56..cde0bf2 100644 --- a/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java +++ b/arap/src/private/nc/bs/arap/actions/GatheringbillSaveBatchBSAction.java @@ -12,14 +12,22 @@ import nc.bs.arap.util.BillDateUtils; import nc.bs.arap.util.BillMoneyVUtils; import nc.bs.arap.validator.CrossRuleCheckValidator; import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; +import nc.bs.trade.business.HYSuperDMO; import nc.jdbc.framework.processor.MapProcessor; import nc.vo.arap.basebill.BaseBillVO; import nc.vo.arap.gathering.GatheringBillItemVO; import nc.vo.arap.utils.StringUtil; +import nc.vo.bd.defdoc.DefdocVO; import nc.vo.pub.AggregatedValueObject; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFDouble; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { @@ -84,7 +92,24 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { BaseDAO dao = new BaseDAO(); String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; - Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); + + + List defMap = checkOrgCtrl(); + if (defMap.isEmpty() ) { + return ; + } + String sql1="SELECT org_salesorg.CODE ,so_saleorder.dbilldate, so_saleorder.pk_org, so_saleorder.vbillcode,so_saleorder.nreceivedmny,so_saleorder.ntotalorigmny FROM so_saleorder LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = so_saleorder.PK_ORG where so_saleorder.dr = 0 and so_saleorder.csaleorderid = '" +def3+"'"; + Map saleMap = (Map)dao.executeQuery(sql1, new MapProcessor()); + String code = saleMap.get("code").toString(); + LocalDateTime dbilldate = LocalDateTime.parse(saleMap.get("dbilldate").toString(), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime targetDate = LocalDateTime.parse("2025-06-27 00:00:00", + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + if (defMap.contains(code) && dbilldate.isBefore(targetDate)) { + return; + } +// Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor()); //销售订单价税合计 UFDouble ntotalorigmny = UFDouble.ZERO_DBL; //销售订单实际收款金额 @@ -101,4 +126,19 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { } } } + private List checkOrgCtrl() { + List list = new ArrayList<>(); + String strWhere = " pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='org-ctrl' and dr=0 ) and dr=0"; + try { + DefdocVO[] defdocVOs = (DefdocVO[]) new HYSuperDMO().queryByWhereClause(DefdocVO.class, strWhere); + if (defdocVOs != null && defdocVOs.length > 0) { + for (DefdocVO defdocVO : defdocVOs) { + list.add(defdocVO.getCode()); + } + } + } catch (DAOException e) { + e.printStackTrace(); + } + return list; + } }