排产控制逻辑增加组织机构过滤

This commit is contained in:
lihao 2025-06-19 16:31:33 +08:00
parent 3a39c9d9c7
commit 52a92baf40
2 changed files with 77 additions and 4 deletions

View File

@ -11,15 +11,22 @@ import nc.bs.arap.util.BillAccountCalendarUtils;
import nc.bs.arap.util.BillDateUtils; import nc.bs.arap.util.BillDateUtils;
import nc.bs.arap.validator.CrossRuleCheckValidator; import nc.bs.arap.validator.CrossRuleCheckValidator;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.bs.trade.business.HYSuperDMO;
import nc.jdbc.framework.processor.MapProcessor; import nc.jdbc.framework.processor.MapProcessor;
import nc.vo.arap.basebill.BaseBillVO; import nc.vo.arap.basebill.BaseBillVO;
import nc.vo.arap.gathering.GatheringBillItemVO; import nc.vo.arap.gathering.GatheringBillItemVO;
import nc.vo.arap.utils.StringUtil; import nc.vo.arap.utils.StringUtil;
import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.pub.AggregatedValueObject; import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
import nc.vo.pub.CircularlyAccessibleValueObject; import nc.vo.pub.CircularlyAccessibleValueObject;
import nc.vo.pub.lang.UFDouble; 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; import java.util.Map;
public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction { public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction {
@ -71,10 +78,21 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
UFDouble changeMoney = money.sub(oriMoney); UFDouble changeMoney = money.sub(oriMoney);
// 몽앴饋簡땐데id혼꿴璂饋簡땐데 // 몽앴饋簡땐데id혼꿴璂饋簡땐데
BaseDAO dao = new BaseDAO(); BaseDAO dao = new BaseDAO();
String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3 List<String> 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; UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
// 饋簡땐데茄셥澗운쏜띨 // 饋簡땐데茄셥澗운쏜띨
@ -119,4 +137,19 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
this.checkOtherSystemBill(bills, orginBills); this.checkOtherSystemBill(bills, orginBills);
(new CrossRuleCheckValidator()).validate(bills); (new CrossRuleCheckValidator()).validate(bills);
} }
private List<String> checkOrgCtrl() {
List<String> 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;
}
} }

View File

@ -12,14 +12,22 @@ import nc.bs.arap.util.BillDateUtils;
import nc.bs.arap.util.BillMoneyVUtils; import nc.bs.arap.util.BillMoneyVUtils;
import nc.bs.arap.validator.CrossRuleCheckValidator; import nc.bs.arap.validator.CrossRuleCheckValidator;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.dao.DAOException;
import nc.bs.trade.business.HYSuperDMO;
import nc.jdbc.framework.processor.MapProcessor; import nc.jdbc.framework.processor.MapProcessor;
import nc.vo.arap.basebill.BaseBillVO; import nc.vo.arap.basebill.BaseBillVO;
import nc.vo.arap.gathering.GatheringBillItemVO; import nc.vo.arap.gathering.GatheringBillItemVO;
import nc.vo.arap.utils.StringUtil; import nc.vo.arap.utils.StringUtil;
import nc.vo.bd.defdoc.DefdocVO;
import nc.vo.pub.AggregatedValueObject; import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDouble; 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; import java.util.Map;
public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction { public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
@ -84,7 +92,24 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
BaseDAO dao = new BaseDAO(); BaseDAO dao = new BaseDAO();
String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'"; String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'";
Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
List<String> 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; UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
//销售订单实际收款金额 //销售订单实际收款金额
@ -101,4 +126,19 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
} }
} }
} }
private List<String> checkOrgCtrl() {
List<String> 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;
}
} }