From ac07c89372fce8995d9e8a43f7617f21e6f357f9 Mon Sep 17 00:00:00 2001 From: ljw Date: Wed, 25 Sep 2024 11:14:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=8A=A5=E5=85=B3=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yem/tws/task/CusdecToDeclaredocxTask.java | 123 +++++++++--------- 1 file changed, 63 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/yem/tws/task/CusdecToDeclaredocxTask.java b/src/main/java/com/yem/tws/task/CusdecToDeclaredocxTask.java index 6fc296ed..7ee5ee5d 100644 --- a/src/main/java/com/yem/tws/task/CusdecToDeclaredocxTask.java +++ b/src/main/java/com/yem/tws/task/CusdecToDeclaredocxTask.java @@ -112,75 +112,78 @@ public class CusdecToDeclaredocxTask extends AbstractTask { String yemCaCusdec = DynamicObjectUtil.getSelectfields("yem_ca_cusdec", false); DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("yem_ca_cusdec", yemCaCusdec , new QFilter[]{new QFilter("id", QCP.equals, yemCustomsdocumentid)}); + String yemCusdecstatusname = ""; if (dynamicObject != null) { - String yemCusdecstatusname = dynamicObject.getString("yem_cusdecstatusname");//申报状态 + yemCusdecstatusname = dynamicObject.getString("yem_cusdecstatusname");//申报状态 declaredocx.set("yem_declarationstatus", yemCusdecstatusname); - if ("结关".equals(yemCusdecstatusname)) { - extracted(Long.valueOf(declaredocx.getPkValue().toString())); - } + } else { declaredocx.set("yem_customsdocumentid", 0); } SaveServiceHelper.update(declaredocx); SaveServiceHelper.save(new DynamicObject[]{declaredocx}); + if ("结关".equals(yemCusdecstatusname)) { + extracted(Long.valueOf(declaredocx.getPkValue().toString())); + } } else { - //出口报关单分录 - DynamicObjectCollection dynamicObjectCollection = declaredocx.getDynamicObjectCollection("yem_es_declare_ec"); - //结算币别 - DynamicObject yemCurrency = declaredocx.getDynamicObject("yem_currency"); - String aLong = ""; - if (yemCurrency != null) { - aLong = yemCurrency.getString("number"); - } - //单据编号 - String declaredocxbillno = declaredocx.getString("billno"); - int i = dynamicObjectCollection.size(); - String seq = ""; - for (DynamicObject object : dynamicObjectCollection) { - //海关商品编码 - DynamicObject yemCusboxgoods = object.getDynamicObject("yem_cushscode"); - String billno = ""; - if (yemCusboxgoods != null) { - billno = yemCusboxgoods.getString("number"); - } - //报关名称 - String yemDecmatericalname = object.getString("yem_decmatericalname"); - //数量 - BigDecimal yemCusqty = object.getBigDecimal("yem_cusqty"); - //单价 - BigDecimal yemCusconsalesprice = object.getBigDecimal("yem_cusconsalesprice"); - //金额 - BigDecimal yemCusamount = object.getBigDecimal("yem_cusamount"); - //拼接KEY + "-" + billno - String yemErroriskey = billno + "-" + yemDecmatericalname + "-" + yemCusqty + "-" + yemCusconsalesprice + "-" + yemCusamount + "-" + aLong; - DynamicObject dynamicObject = maps.get(yemErroriskey); - if (dynamicObject != null) { - i = i - 1; - } else { - seq = seq + object.getString("seq") + ","; - } - } - if (i != 0) { - extracted(data, "出口报关报关单号【" + declaredocxbillno + "】,第" + seq + "行未匹配到单一窗口报关单;\n", id, declaredocxbillno, yemBillno); - } else { - String yemCusdecstatusname = user.getString("yem_cusdecstatusname");//申报状态 - Date yemFiedatets = user.getDate("yem_fiedatets");//出口日期 - extracted(data, "出口报关报关单号【" + declaredocxbillno + "】成功匹配单一窗口报关单;\n", id, declaredocxbillno, yemBillno); - declaredocx.set("yem_declarationstatus", yemCusdecstatusname); - declaredocx.set("yem_customsnumber", yemEntryid); - declaredocx.set("yem_exportdate", yemFiedatets); - declaredocx.set("yem_customsdocumentid", id); - BigDecimal exchangeRate = YEM.getExchangeRate(declaredocx.getDynamicObject("yem_exratetable") - , declaredocx.getDynamicObject("yem_currencybase") - , declaredocx.getDynamicObject("yem_usdcurrency") - , yemFiedatets); - declaredocx.set("exchangeRate",exchangeRate); - if ("结关".equals(yemCusdecstatusname) && !YEM.isEmpty(yemFiedatets)) { - extracted(Long.valueOf(declaredocx.getPkValue().toString())); - } - SaveServiceHelper.update(declaredocx); - SaveServiceHelper.save(new DynamicObject[]{declaredocx}); + //出口报关单分录 + DynamicObjectCollection dynamicObjectCollection = declaredocx.getDynamicObjectCollection("yem_es_declare_ec"); + //结算币别 + DynamicObject yemCurrency = declaredocx.getDynamicObject("yem_currency"); + String aLong = ""; + if (yemCurrency != null) { + aLong = yemCurrency.getString("number"); + } + //单据编号 + String declaredocxbillno = declaredocx.getString("billno"); + int i = dynamicObjectCollection.size(); + String seq = ""; + for (DynamicObject object : dynamicObjectCollection) { + //海关商品编码 + DynamicObject yemCusboxgoods = object.getDynamicObject("yem_cushscode"); + String billno = ""; + if (yemCusboxgoods != null) { + billno = yemCusboxgoods.getString("number"); + } + //报关名称 + String yemDecmatericalname = object.getString("yem_decmatericalname"); + //数量 + BigDecimal yemCusqty = object.getBigDecimal("yem_cusqty"); + //单价 + BigDecimal yemCusconsalesprice = object.getBigDecimal("yem_cusconsalesprice"); + //金额 + BigDecimal yemCusamount = object.getBigDecimal("yem_cusamount"); + //拼接KEY + "-" + billno + String yemErroriskey = billno + "-" + yemDecmatericalname + "-" + yemCusqty + "-" + yemCusconsalesprice + "-" + yemCusamount + "-" + aLong; + DynamicObject dynamicObject = maps.get(yemErroriskey); + if (dynamicObject != null) { + i = i - 1; + } else { + seq = seq + object.getString("seq") + ","; + } + } + if (i != 0) { + extracted(data, "出口报关报关单号【" + declaredocxbillno + "】,第" + seq + "行未匹配到单一窗口报关单;\n", id, declaredocxbillno, yemBillno); + } else { + String yemCusdecstatusname = user.getString("yem_cusdecstatusname");//申报状态 + Date yemFiedatets = user.getDate("yem_fiedatets");//出口日期 + extracted(data, "出口报关报关单号【" + declaredocxbillno + "】成功匹配单一窗口报关单;\n", id, declaredocxbillno, yemBillno); + declaredocx.set("yem_declarationstatus", yemCusdecstatusname); + declaredocx.set("yem_customsnumber", yemEntryid); + declaredocx.set("yem_exportdate", yemFiedatets); + declaredocx.set("yem_customsdocumentid", id); + BigDecimal exchangeRate = YEM.getExchangeRate(declaredocx.getDynamicObject("yem_exratetable") + , declaredocx.getDynamicObject("yem_currencybase") + , declaredocx.getDynamicObject("yem_usdcurrency") + , yemFiedatets); + declaredocx.set("yem_usbexrate", exchangeRate); + + SaveServiceHelper.update(declaredocx); + SaveServiceHelper.save(new DynamicObject[]{declaredocx}); + if ("结关".equals(yemCusdecstatusname) && !YEM.isEmpty(yemFiedatets)) { + extracted(Long.valueOf(declaredocx.getPkValue().toString())); + } } } }