This commit is contained in:
parent
c3b061861f
commit
9086a9d93b
|
@ -5,12 +5,16 @@ import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import nc.bs.dao.DAOException;
|
||||||
import nc.bs.framework.common.NCLocator;
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.bs.trade.business.HYSuperDMO;
|
||||||
import nc.impl.pubapp.pattern.rule.IRule;
|
import nc.impl.pubapp.pattern.rule.IRule;
|
||||||
import nc.itf.uap.IUAPQueryBS;
|
import nc.itf.uap.IUAPQueryBS;
|
||||||
import nc.itf.uif.pub.IUifService;
|
import nc.itf.uif.pub.IUifService;
|
||||||
import nc.jdbc.framework.processor.ColumnProcessor;
|
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||||
import nc.jdbc.framework.processor.MapProcessor;
|
import nc.jdbc.framework.processor.MapProcessor;
|
||||||
|
import nc.vo.bd.defdoc.DefdocVO;
|
||||||
import nc.vo.ic.m4c.entity.SaleOutHeadVO;
|
import nc.vo.ic.m4c.entity.SaleOutHeadVO;
|
||||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO;
|
||||||
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
|
import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO;
|
||||||
|
@ -58,6 +62,16 @@ public class putBeforeCheckRule implements IRule<PMOAggVO> {
|
||||||
|| valMap.get("pk_billtypecode").equals("30-Cxx-16")) {
|
|| valMap.get("pk_billtypecode").equals("30-Cxx-16")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String code = valMap.get("code").toString();
|
||||||
|
LocalDateTime dbilldate = LocalDateTime.parse(valMap.get("dbilldate").toString(),
|
||||||
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
LocalDateTime targetDate1 = LocalDateTime.parse("2025-06-27 00:00:00",
|
||||||
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
List<String> defMap = checkOrgCtrl1();
|
||||||
|
if (!valMap.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate1)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// ÀúÊ·Êý¾Ý²»¿¼ÂÇ
|
// ÀúÊ·Êý¾Ý²»¿¼ÂÇ
|
||||||
String storedDateStr = (String) valMap.get("creationtime");
|
String storedDateStr = (String) valMap.get("creationtime");
|
||||||
String targetDateStr = "2024-12-31 00:00:00";
|
String targetDateStr = "2024-12-31 00:00:00";
|
||||||
|
@ -106,4 +120,19 @@ public class putBeforeCheckRule implements IRule<PMOAggVO> {
|
||||||
public IUAPQueryBS getQueryService() {
|
public IUAPQueryBS getQueryService() {
|
||||||
return NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
return NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
||||||
}
|
}
|
||||||
|
private List<String> checkOrgCtrl1() {
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,15 @@ public class saveBeforeCheckRule implements IRule<PMOAggVO> {
|
||||||
if (valMap == null || valMap.isEmpty()) {
|
if (valMap == null || valMap.isEmpty()) {
|
||||||
throw new BusinessException("无法关联到销售订单,无法保存!");
|
throw new BusinessException("无法关联到销售订单,无法保存!");
|
||||||
}
|
}
|
||||||
|
String code = valMap.get("code").toString();
|
||||||
|
LocalDateTime dbilldate = LocalDateTime.parse(valMap.get("dbilldate").toString(),
|
||||||
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
LocalDateTime targetDate1 = LocalDateTime.parse("2025-06-27 00:00:00",
|
||||||
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
List<String> defMap = checkOrgCtrl1();
|
||||||
|
if (!valMap.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate1)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 销售发票表头pk_billtypecode=30-Cxx-12
|
// 销售发票表头pk_billtypecode=30-Cxx-12
|
||||||
if (valMap.get("pk_billtypecode").equals("30-Cxx-12")
|
if (valMap.get("pk_billtypecode").equals("30-Cxx-12")
|
||||||
|| valMap.get("pk_billtypecode").equals("30-Cxx-02")
|
|| valMap.get("pk_billtypecode").equals("30-Cxx-02")
|
||||||
|
@ -94,8 +103,9 @@ public class saveBeforeCheckRule implements IRule<PMOAggVO> {
|
||||||
|
|
||||||
private Map<String, Object> getVbdef6(String vsrcbidStr,String cmoid) throws BusinessException {
|
private Map<String, Object> getVbdef6(String vsrcbidStr,String cmoid) throws BusinessException {
|
||||||
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
||||||
String sql = " SELECT bt.pk_billtypecode,s.creationtime,b.vbdef12,d.nastnum FROM so_saleorder_b b\n"
|
String sql = " SELECT org_salesorg.CODE ,s.dbilldate, bt.pk_billtypecode,s.creationtime,b.vbdef12,d.nastnum FROM so_saleorder_b b\n"
|
||||||
+ "INNER JOIN so_saleorder s ON s.csaleorderid = b.csaleorderid\n"
|
+ "INNER JOIN so_saleorder s ON s.csaleorderid = b.csaleorderid\n"
|
||||||
|
+ " LEFT JOIN org_salesorg ON org_salesorg.PK_SALESORG = s.PK_ORG "
|
||||||
+ "left join (select mm_mo.Vsrcbid,sum(nastnum) as nastnum \n" + "from mm_mo\n" + "where mm_mo.dr=0\n"+" and cmoid !='"+cmoid+ "' "
|
+ "left join (select mm_mo.Vsrcbid,sum(nastnum) as nastnum \n" + "from mm_mo\n" + "where mm_mo.dr=0\n"+" and cmoid !='"+cmoid+ "' "
|
||||||
+ "group by mm_mo.Vsrcbid) d on b.csaleorderbid=d.Vsrcbid\n"
|
+ "group by mm_mo.Vsrcbid) d on b.csaleorderbid=d.Vsrcbid\n"
|
||||||
+ "INNER JOIN bd_billtype bt on bt.pk_billtypeid=s.ctrantypeid\n" + "where b.csaleorderbid='"
|
+ "INNER JOIN bd_billtype bt on bt.pk_billtypeid=s.ctrantypeid\n" + "where b.csaleorderbid='"
|
||||||
|
@ -138,5 +148,19 @@ public class saveBeforeCheckRule implements IRule<PMOAggVO> {
|
||||||
public IUAPQueryBS getQueryService() {
|
public IUAPQueryBS getQueryService() {
|
||||||
return NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
return NCLocator.getInstance().lookup(IUAPQueryBS.class);
|
||||||
}
|
}
|
||||||
|
private List<String> checkOrgCtrl1() {
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue