This commit is contained in:
parent
1d06e025da
commit
c3b061861f
|
@ -13,6 +13,7 @@ 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.MapListProcessor;
|
||||
import nc.jdbc.framework.processor.MapProcessor;
|
||||
import nc.vo.arap.basebill.BaseBillVO;
|
||||
import nc.vo.arap.gathering.GatheringBillItemVO;
|
||||
|
@ -23,9 +24,11 @@ import nc.vo.pub.BusinessException;
|
|||
import nc.vo.pub.CircularlyAccessibleValueObject;
|
||||
import nc.vo.pub.lang.UFDouble;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
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;
|
||||
|
||||
|
@ -69,45 +72,80 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
|
|||
if(!"30".equals(srcBilltype)){
|
||||
continue;
|
||||
}
|
||||
|
||||
String def3 = ((GatheringBillItemVO)bill.getChildrenVO()[0]).getSrc_billid(); // 收款单对应的销售订单id
|
||||
if (StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)) {
|
||||
// 无绑定的销售订单则下一次循环
|
||||
continue;
|
||||
}
|
||||
List<String> def3List = new ArrayList<>();
|
||||
for (int j=0;j<bill.getChildrenVO().length;i++){
|
||||
def3List.add(((GatheringBillItemVO)bill.getChildrenVO()[j]).getSrc_billid());
|
||||
}
|
||||
String result = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (def3List.size() > 1) {
|
||||
for (int j = 0; j < def3List.size(); j++) {
|
||||
sb.append("'").append(def3List.get(j)).append("'");
|
||||
if (j < def3List.size() - 1) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
|
||||
result = sb.toString();
|
||||
} else {
|
||||
result = "'" + (String) def3List.get(0) + "'";
|
||||
}
|
||||
// 计算收款单金额差值
|
||||
UFDouble changeMoney = money.sub(oriMoney);
|
||||
// 根据销售订单id去查询销售订单
|
||||
BaseDAO dao = new BaseDAO();
|
||||
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"));
|
||||
// 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 in (" + result + ") ";
|
||||
ArrayList<HashMap<String, Object>> saleMap = (ArrayList<HashMap<String, Object>>)dao.executeQuery(sql1, new MapListProcessor());
|
||||
|
||||
if (defMap.contains(code) && dbilldate.isBefore(targetDate)) {
|
||||
return;
|
||||
}
|
||||
// List<Map> saleMap = (List<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.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate)) {
|
||||
// return;
|
||||
// }
|
||||
// Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
|
||||
//销售订单价税合计
|
||||
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
|
||||
//销售订单实际收款金额
|
||||
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
|
||||
String vbillcode = "";
|
||||
StringBuilder vbillcodeBuilder = new StringBuilder();
|
||||
if(saleMap != null) {
|
||||
nreceivedmny = new UFDouble(
|
||||
saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
|
||||
ntotalorigmny = new UFDouble(
|
||||
saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString());
|
||||
vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString();
|
||||
for (Map<String, Object> map : saleMap) {
|
||||
// 累加 nreceivedmny
|
||||
String nreceivedmnyStr = map.get("nreceivedmny") == null ? "0" : map.get("nreceivedmny").toString();
|
||||
nreceivedmny.add(new UFDouble(nreceivedmnyStr)) ;
|
||||
|
||||
// 累加 ntotalorigmny
|
||||
BigDecimal ntotalorigmnyStr = map.get("ntotalorigmny") == null ? BigDecimal.ZERO : (BigDecimal) map.get("ntotalorigmny");
|
||||
UFDouble ufd= new UFDouble(ntotalorigmnyStr);
|
||||
ntotalorigmny= ntotalorigmny.add(ufd);
|
||||
// 拼接 vbillcode
|
||||
String vbillcodeStr = map.get("vbillcode") == null ? "" : map.get("vbillcode").toString();
|
||||
if (!vbillcodeStr.isEmpty()) {
|
||||
if (vbillcodeBuilder.length() > 0) {
|
||||
vbillcodeBuilder.append(", ");
|
||||
}
|
||||
vbillcodeBuilder.append(vbillcodeStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (money.compareTo(ntotalorigmny) > 0) {
|
||||
UFDouble moreMoney = money.sub(ntotalorigmny);
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcodeBuilder + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ 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.MapListProcessor;
|
||||
import nc.jdbc.framework.processor.MapProcessor;
|
||||
import nc.vo.arap.basebill.BaseBillVO;
|
||||
import nc.vo.arap.gathering.GatheringBillItemVO;
|
||||
|
@ -23,6 +24,7 @@ import nc.vo.pub.AggregatedValueObject;
|
|||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.lang.UFDouble;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
|
@ -82,6 +84,24 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
|
|||
if(!"30".equals(srcBilltype)){
|
||||
continue;
|
||||
}
|
||||
List<String> def3List = new ArrayList<>();
|
||||
for (int i=0;i<bill.getChildrenVO().length;i++){
|
||||
def3List.add(((GatheringBillItemVO)bill.getChildrenVO()[i]).getSrc_billid());
|
||||
}
|
||||
String result = "";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (def3List.size() > 1) {
|
||||
for (int i = 0; i < def3List.size(); i++) {
|
||||
sb.append("'").append(def3List.get(i)).append("'");
|
||||
if (i < def3List.size() - 1) {
|
||||
sb.append(",");
|
||||
}
|
||||
}
|
||||
|
||||
result = sb.toString();
|
||||
} else {
|
||||
result = "'" + (String) def3List.get(0) + "'";
|
||||
}
|
||||
String def3 = ((GatheringBillItemVO)bill.getChildrenVO()[0]).getSrc_billid(); // 收款单对应的销售订单id
|
||||
if(StringUtil.isEmpty(def3) || "N".equals(def3) || "~".equals(def3)){
|
||||
//无绑定的销售订单则下一次循环
|
||||
|
@ -94,35 +114,53 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
|
|||
|
||||
|
||||
|
||||
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"));
|
||||
// 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+"'";
|
||||
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 in (" + result + ") ";
|
||||
ArrayList<HashMap<String, Object>> saleMap = (ArrayList<HashMap<String, Object>>)dao.executeQuery(sql1, new MapListProcessor());
|
||||
|
||||
if (defMap.contains(code) && dbilldate.isBefore(targetDate)) {
|
||||
return;
|
||||
}
|
||||
// List<Map> saleMap = (List<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.isEmpty()&& defMap.contains(code) && dbilldate.isBefore(targetDate)) {
|
||||
// return;
|
||||
// }
|
||||
// Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
|
||||
//销售订单价税合计
|
||||
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
|
||||
//销售订单实际收款金额
|
||||
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
|
||||
String vbillcode = "";
|
||||
StringBuilder vbillcodeBuilder = new StringBuilder();
|
||||
if(saleMap != null) {
|
||||
nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
|
||||
ntotalorigmny = new UFDouble(saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString());
|
||||
vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString();
|
||||
for (Map<String, Object> map : saleMap) {
|
||||
// 累加 nreceivedmny
|
||||
String nreceivedmnyStr = map.get("nreceivedmny") == null ? "0" : map.get("nreceivedmny").toString();
|
||||
nreceivedmny.add(new UFDouble(nreceivedmnyStr)) ;
|
||||
|
||||
// 累加 ntotalorigmny
|
||||
BigDecimal ntotalorigmnyStr = map.get("ntotalorigmny") == null ? BigDecimal.ZERO : (BigDecimal) map.get("ntotalorigmny");
|
||||
UFDouble ufd= new UFDouble(ntotalorigmnyStr);
|
||||
ntotalorigmny= ntotalorigmny.add(ufd);
|
||||
// 拼接 vbillcode
|
||||
String vbillcodeStr = map.get("vbillcode") == null ? "" : map.get("vbillcode").toString();
|
||||
if (!vbillcodeStr.isEmpty()) {
|
||||
if (vbillcodeBuilder.length() > 0) {
|
||||
vbillcodeBuilder.append(", ");
|
||||
}
|
||||
vbillcodeBuilder.append(vbillcodeStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (money.compareTo(ntotalorigmny) > 0) {
|
||||
UFDouble moreMoney = money.sub(ntotalorigmny);
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcodeBuilder + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue