fix:收款单报错处理

This commit is contained in:
ljw 2024-09-23 15:50:04 +08:00
parent 21c883fadf
commit c3b9adf1e1

View File

@ -698,7 +698,8 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL
boolean dataChanged = model.getDataChanged(); boolean dataChanged = model.getDataChanged();
String pageId = dataEntity.getDynamicObjectType().getName(); String pageId = dataEntity.getDynamicObjectType().getName();
String[] noCheck = new String[]{"save", "delete", "refresh", "close", "modify", "new", "newentrya1", "copyentryrowa", "insertentrya", "deleteentrya1", "batchfillentrya", "newentryb", "insertentryb", "copyentryrowb", "deleteentryb", "batchfillentryb"}; String[] noCheck = new String[]{"save", "delete", "refresh", "close", "modify", "new", "newentrya1", "copyentryrowa"
, "insertentrya", "deleteentrya1", "batchfillentrya", "newentryb", "insertentryb", "copyentryrowb", "deleteentryb", "batchfillentryb"};
if (dataChanged && !Arrays.asList(noCheck).contains(operateKey) && ("yem_gathering".equals(pageId) || "yem_gathering_cw".equals(pageId))) { if (dataChanged && !Arrays.asList(noCheck).contains(operateKey) && ("yem_gathering".equals(pageId) || "yem_gathering_cw".equals(pageId))) {
// throw new KDBizException("检测到单据内容更新,请保存后再进行操作!"); // throw new KDBizException("检测到单据内容更新,请保存后再进行操作!");
@ -1000,9 +1001,22 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL
// 合同号 - 认领金额, 认领金额本位币 // 合同号 - 认领金额, 认领金额本位币
Map<Long, Map<String, BigDecimal>> longMapLinkedHashMap = new LinkedHashMap<>(); Map<Long, Map<String, BigDecimal>> longMapLinkedHashMap = new LinkedHashMap<>();
BigDecimal yem_claimamt_a = BigDecimal.ZERO;
BigDecimal yem_claimamtbase_a = BigDecimal.ZERO;
// 获取子单据体中 合同号对应的认领金额总和 // 获取子单据体中 合同号对应的认领金额总和
for (DynamicObject object : subCollection) { for (DynamicObject object : subCollection) {
DynamicObject[] yemGathering = BusinessDataServiceHelper.load("yem_gathering"
, "yem_receiptdetail,yem_receiptdetail.yem_claimdetail,yem_claimdetail.yem_salcontractno,yem_receiptdetail.yem_claimamt_a,yem_receiptdetail.yem_claimamtbase_a"
, new QFilter[]{new QFilter("yem_receiptdetail.yem_claimdetail.yem_salcontractno.billno", QCP.equals, object.getString("yem_salcontractno.billno"))});
if (yemGathering.length > 0) {
for (DynamicObject dynamicObject1 : yemGathering) {
DynamicObjectCollection dynamicObjectCollection = dynamicObject1.getDynamicObjectCollection("yem_receiptdetail");
for (DynamicObject dynamicObject2 : dynamicObjectCollection) {
yem_claimamt_a = yem_claimamt_a.add(dynamicObject2.getBigDecimal("yem_claimamt_a"));
yem_claimamtbase_a = yem_claimamtbase_a.add(dynamicObject2.getBigDecimal("yem_claimamtbase_a"));
}
}
}
// 合同号 // 合同号
long contractno = object.getLong("yem_salcontractno.id"); long contractno = object.getLong("yem_salcontractno.id");
if (longMapLinkedHashMap.containsKey(contractno)) { if (longMapLinkedHashMap.containsKey(contractno)) {
@ -1028,6 +1042,8 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL
longMapLinkedHashMap.put(contractno, vVewMap); longMapLinkedHashMap.put(contractno, vVewMap);
} }
} }
BigDecimal finalYem_claimamt_a = yem_claimamt_a;
BigDecimal finalYem_claimamtbase_a = yem_claimamtbase_a;
longMapLinkedHashMap.forEach((k, v) -> longMapLinkedHashMap.forEach((k, v) ->
{ {
BigDecimal salcontractamt = BigDecimal.ZERO; BigDecimal salcontractamt = BigDecimal.ZERO;
@ -1042,23 +1058,23 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL
// 查询配件客商额度申请单 // 查询配件客商额度申请单
// 财务组织 // 财务组织
DynamicObject orgId =(DynamicObject) this.getModel().getValue("org"); DynamicObject orgId = (DynamicObject) this.getModel().getValue("org");
// 客户名称 // 客户名称
DynamicObject customerId =(DynamicObject) this.getModel().getValue("yem_comegoman"); DynamicObject customerId = (DynamicObject) this.getModel().getValue("yem_comegoman");
// 结算币别 // 结算币别
DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency"); DynamicObject currency = (DynamicObject) this.getModel().getValue("yem_currency");
// 单据状态 = 已审核 // 单据状态 = 已审核
QFilter qFilters = new QFilter("billstatus", QCP.equals, "C"); QFilter qFilters = new QFilter("billstatus", QCP.equals, "C");
// 业务组织 = 财务组织 // 业务组织 = 财务组织
if (orgId !=null ){ if (orgId != null) {
qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id"))); qFilters.and(new QFilter("org.id", QCP.equals, orgId.getLong("id")));
} }
// 客户名称 = 客户名称 // 客户名称 = 客户名称
if (customerId !=null ){ if (customerId != null) {
qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id"))); qFilters.and(new QFilter("yem_client.id", QCP.equals, customerId.getLong("id")));
} }
// 产品分类 = 产品分类 // 产品分类 = 产品分类
if (currency !=null ){ if (currency != null) {
qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id"))); qFilters.and(new QFilter("yem_currency.id", QCP.equals, currency.getLong("id")));
} }
// 合同上结算币别 = 额度申请上 额度币别 // 合同上结算币别 = 额度申请上 额度币别
@ -1071,14 +1087,13 @@ public class GatheringEcit extends AbstractBillPlugIn implements BeforeF7SelectL
for (DynamicObject object : partsmerchantCollection) { for (DynamicObject object : partsmerchantCollection) {
if (object.getLong("yem_cn.id") == k) { if (object.getLong("yem_cn.id") == k) {
BigDecimal writenamt = object.getBigDecimal("yem_claimamt");
BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase"); BigDecimal locwrittenamt = object.getBigDecimal("yem_claimamtbase");
// 合同金额 // 合同金额
object.set("yem_salcontractamt", v.get("salcontractamt")); object.set("yem_salcontractamt", v.get("salcontractamt"));
// 认领金额 // 认领金额
object.set("yem_claimamt", writenamt.add(v.get("claimamt"))); object.set("yem_claimamt", finalYem_claimamt_a);
// 认领金额本位币 // 认领金额本位币
object.set("yem_claimamtbase", locwrittenamt.add(v.get("claimamtbase"))); object.set("yem_claimamtbase", finalYem_claimamtbase_a);
// 合同金额 = 认领金额 // 合同金额 = 认领金额
if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) { if (salcontractamt.compareTo(object.getBigDecimal("yem_claimamt")) <= 0) {