From b3fb47a6803bd73945311b9b63f7a2bda91de4c5 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Thu, 24 Jul 2025 17:16:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E4=BB=98=E6=AC=BE=E5=8D=95=E5=85=A8?= =?UTF-8?q?=E9=87=8F=E6=9B=B4=E6=96=B0=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=89=8D=E5=8F=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/task/RecBillZjjhTask.java | 24 +++++++--- .../jhzj7/fi/fi/plugin/task/ZjjhTask.java | 45 ++++++++++++++----- 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillZjjhTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillZjjhTask.java index ae3a5a4..a34211b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillZjjhTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/RecBillZjjhTask.java @@ -13,6 +13,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; +import shjh.jhzj7.fi.fi.utils.JhzjUtils; import java.util.*; @@ -21,7 +22,7 @@ public class RecBillZjjhTask extends AbstractTask implements Plugin { private static final String recbillName = "cas_recbill";//收款单 T_CAS_ReceivingBill - private static final String updateZero = "update T_CAS_ReceivingBill set fk_shjh_planclass=0 where fid=?";//更新资金计划科目为0 +// private static final String updateZero = "update T_CAS_ReceivingBill set fk_shjh_planclass=0 where fid=?";//更新资金计划科目为0 private static final String updateKM = "update T_CAS_ReceivingBill set fk_shjh_planclass=? where fid=?";//更新资金计划科目为指定科目 @Override @@ -35,18 +36,31 @@ public class RecBillZjjhTask extends AbstractTask implements Plugin { } Map recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), recbillName); DynamicObject zjaccount;//资金计划科目 + DynamicObject oldbillkm;//原单上资金计划科目 + String billno;//收款单编号 for (DynamicObject recbill : recBillMap.values()) { //根据配置表携带资金计划科目 zjaccount = xdMembersubject(recbill); + billno = recbill.getString("billno"); + oldbillkm = recbill.getDynamicObject("shjh_planclass"); // recbill.set("shjh_planclass", zjaccount); // SaveServiceHelper.save(new DynamicObject[]{recbill}); if(zjaccount == null){ - logger.info(recbill.getString("billno")+"对应资金计划科目为空"); - DB.update(DBRoute.of("fi"), updateZero, new Object[]{recbill.getPkValue()}); - }else{ - logger.info(recbill.getString("billno")+"对应资金计划科目为"+zjaccount.getLong("id")); + logger.info(billno+"对应新资金计划科目为空"); +// DB.update(DBRoute.of("fi"), updateZero, new Object[]{recbill.getPkValue()}); + }else if(oldbillkm != null && oldbillkm.getLong("id") != zjaccount.getLong("id")){ + logger.info(billno+"对应新资金计划科目为"+zjaccount.getPkValue()); DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjaccount.getPkValue(), recbill.getPkValue()}); + JhzjUtils.saveLog(billno,"收款单更新资金计划科目","原科目id:"+oldbillkm.getPkValue()+" 新科目id:"+zjaccount.getPkValue(), + null,true,"task"); + }else if(oldbillkm == null){ + //原单上资金计划科目为空,现在获取到新的科目需要更新 + logger.info(billno+"对应新资金计划科目为"+zjaccount.getPkValue()); + DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjaccount.getPkValue(), recbill.getPkValue()}); + JhzjUtils.saveLog(billno,"收款单更新资金计划科目","原科目id为空 新科目id:"+zjaccount.getPkValue(), + null,true,"task0"); } + } } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java index c926b75..91bc941 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/ZjjhTask.java @@ -14,6 +14,7 @@ import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.util.StringUtils; import kd.sdk.plugin.Plugin; +import shjh.jhzj7.fi.fi.utils.JhzjUtils; import java.util.*; @@ -27,7 +28,7 @@ public class ZjjhTask extends AbstractTask implements Plugin { private static final String payapplyName = "ap_payapply";//付款申请单 - private static final String updateZero = "update T_CAS_PaymentBill set fk_shjh_membersubject=0 where fid=?";//更新资金计划科目为0 +// private static final String updateZero = "update T_CAS_PaymentBill set fk_shjh_membersubject=0 where fid=?";//更新资金计划科目为0 private static final String updateKM = "update T_CAS_PaymentBill set fk_shjh_membersubject=? where fid=?";//更新资金计划科目为指定科目 @Override @@ -45,21 +46,33 @@ public class ZjjhTask extends AbstractTask implements Plugin { } Map recBillMap = BusinessDataServiceHelper.loadFromCache(ids.toArray(), paybillName); String paymentidentify; + String billno;//付款单编号 DynamicObject payapply; - DynamicObject zjjhkm; + DynamicObject zjjhkm;//新资金计划科目 + DynamicObject oldbillkm;//原单上资金计划科目 for (DynamicObject cas_paybill : recBillMap.values()) { paymentidentify = cas_paybill.getString("paymentidentify.number"); + billno = cas_paybill.getString("billno"); + oldbillkm = cas_paybill.getDynamicObject("shjh_membersubject"); //被动 如果是被动付款,则将现有付款单保存操作后,获取资金计划科目的代码直接复制拷贝至此; if ("FKBS02".equals(paymentidentify)) { zjjhkm = xdMembersubject(cas_paybill); if(zjjhkm == null){ - //科目为空,将单子上的字段值置为0 - logger.info(cas_paybill.getString("billno")+"对应资金计划科目为空"); - DB.update(DBRoute.of("fi"), updateZero, new Object[]{cas_paybill.getPkValue()}); - }else{ - //将科目id更新到表字段上 - logger.info(cas_paybill.getString("billno")+"对应资金计划科目为"+zjjhkm.getLong("id")); + //科目为空,将单子上的字段值置为0--经讨论不用处理 + logger.info(billno+"对应新资金计划科目为空"); +// DB.update(DBRoute.of("fi"), updateZero, new Object[]{cas_paybill.getPkValue()}); + }else if(oldbillkm != null && oldbillkm.getLong("id") != zjjhkm.getLong("id")){ + //当单据上原科目和这次查询到科目不一致时将科目id更新到表字段上--增加前台日志 + logger.info(billno+"对应新资金计划科目为"+zjjhkm.getPkValue()); DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjjhkm.getPkValue(), cas_paybill.getPkValue()}); + JhzjUtils.saveLog(billno,"付款单更新资金计划科目","原科目id:"+oldbillkm.getPkValue()+" 新科目id:"+zjjhkm.getPkValue(), + null,true,"task"); + }else if(oldbillkm == null){ + //原单上资金计划科目为空,现在获取到新的科目需要更新 + logger.info(billno+"对应新资金计划科目为"+zjjhkm.getPkValue()); + DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjjhkm.getPkValue(), cas_paybill.getPkValue()}); + JhzjUtils.saveLog(billno,"付款单更新资金计划科目","原科目id为空 新科目id:"+zjjhkm.getPkValue(), + null,true,"task0"); } // cas_paybill.set("shjh_membersubject", ); // SaveServiceHelper.save(new DynamicObject[]{cas_paybill}); @@ -75,12 +88,20 @@ public class ZjjhTask extends AbstractTask implements Plugin { zjjhkm = getzjkmbyapply(payapply); if(zjjhkm == null){ //科目为空,将单子上的字段值置为0 - logger.info(cas_paybill.getString("billno")+"对应资金计划科目为空"); - DB.update(DBRoute.of("fi"), updateZero, new Object[]{cas_paybill.getPkValue()}); - }else{ + logger.info(billno+"对应新资金计划科目为空"); +// DB.update(DBRoute.of("fi"), updateZero, new Object[]{cas_paybill.getPkValue()}); + }else if(oldbillkm != null && oldbillkm.getLong("id") != zjjhkm.getLong("id")){ //将科目id更新到表字段上 - logger.info(cas_paybill.getString("billno")+"对应资金计划科目为"+zjjhkm.getLong("id")); + logger.info(billno+"对应新资金计划科目为"+zjjhkm.getPkValue()); DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjjhkm.getPkValue(), cas_paybill.getPkValue()}); + JhzjUtils.saveLog(billno,"付款单更新资金计划科目","原科目id:"+oldbillkm.getPkValue()+" 新科目id:"+zjjhkm.getPkValue(), + null,true,"task"); + }else if(oldbillkm == null){ + //原单上资金计划科目为空,现在获取到新的科目需要更新 + logger.info(billno+"对应新资金计划科目为"+zjjhkm.getPkValue()); + DB.update(DBRoute.of("fi"), updateKM, new Object[]{zjjhkm.getPkValue(), cas_paybill.getPkValue()}); + JhzjUtils.saveLog(billno,"付款单更新资金计划科目","原科目id为空 新科目id:"+zjjhkm.getPkValue(), + null,true,"task0"); } // cas_paybill.set("shjh_membersubject", xdMembersubject); // SaveServiceHelper.save(new DynamicObject[]{cas_paybill});