From 2f1863908e14ac6473288039a168af84fdf9c986 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Thu, 15 May 2025 16:49:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9A?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=BC=96=E5=88=B6=E8=B0=83=E6=95=B4=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89API=E6=8E=A5=E5=8F=A3/=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=BC=96=E5=88=B6=E8=87=AA=E5=AE=9A=E4=B9=89API=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3/=E4=B8=8A=E5=AD=98=E9=87=91=E9=A2=9D=E6=89=A9?= =?UTF-8?q?=E5=B1=95/=E6=8E=A8=E9=80=81=E6=98=9F=E7=A9=BA=E6=94=B6?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=8D=95=E7=94=B5=E5=AD=90=E5=9B=9E=E5=8D=95?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=BB=A3=E7=A0=81=20=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=9A2025-05-15=2016=EF=BC=9A48=20=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/sys/plugin/Exp/BalanceExpansion.java | 32 ++++++ .../sys/plugin/api/InterfacePracticePlug.java | 105 ++++++++++++++++++ .../sys/plugin/form/ApiMappingBillPlugin.java | 50 +++------ .../mob/AccountClosureMobBillPlugin.java | 9 +- 4 files changed, 153 insertions(+), 43 deletions(-) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java new file mode 100644 index 0000000..1090e14 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/Exp/BalanceExpansion.java @@ -0,0 +1,32 @@ +package shkd.sys.sys.plugin.Exp; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.sdk.tmc.bei.extpoint.balance.IFillBankBalance; + +import java.math.BigDecimal; + +/** + * @Description + * @Author Tao + * @Date 2025/5/14 + */ +public class BalanceExpansion implements IFillBankBalance { + private static final Log logger = LogFactory.getLog(BalanceExpansion.class); + @Override + public void fillExtBankBalance(DynamicObject bankBalance, String balanceString) { + JSONObject jsonObject = JSON.parseObject(balanceString); + logger.info("bankBalance数据:{},balanceString数据:{}", bankBalance, jsonObject); + Object balance = jsonObject.get("depositBalance"); + if (balance != null) { + bankBalance.set("shkd_depositbalance", new BigDecimal(String.valueOf(balance))); + } else { + bankBalance.set("shkd_depositbalance", BigDecimal.ZERO); + } + SaveServiceHelper.save(new DynamicObject[]{bankBalance}); + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java new file mode 100644 index 0000000..028b080 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/InterfacePracticePlug.java @@ -0,0 +1,105 @@ +package shkd.sys.sys.plugin.api; + +import com.alibaba.fastjson.JSONObject; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.openapi.common.custom.annotation.*; +import kd.bos.openapi.common.result.CustomApiResult; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.tmc.fpm.business.dataproc.save.domain.FpmResponse; +import kd.tmc.fpm.business.dataproc.save.domain.ReportAdjustBillBatchSaveResDTO; +import shade.javax.validation.Valid; +import shkd.sys.sys.mservice.PlanningService; + +import javax.validation.constraints.Min; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static shkd.sys.sys.mservice.PlanningService.planAdjustment; +import static shkd.sys.sys.mservice.PlanningService.planningWrite; + +@ApiController(value = "open", desc = "用户example") +@ApiMapping("/example") +//请求头 +@ApiHeaders({ + @ApiHeader(name = "a", desc = "aa", example = "aaa"), + @ApiHeader(name = "b", desc = "bb", example = "bbb") +}) +//错误码 +@ApiErrorCodes({ + @ApiErrorCode(code = "001", desc = "0001"), + @ApiErrorCode(code = "002", desc = "0002") +}) +public class InterfacePracticePlug extends AbstractListPlugin implements Serializable { + private static final long serialVersionUID = 5265058589290098717L; + + private static final Log logger = LogFactory.getLog(InterfacePracticePlug.class); + + + /** + * 计划编制写入 + * @param arrHashMap + * @return + */ + @ApiPostMapping(value = "planning_save", desc = "计划编制写入") + public CustomApiResult<@ApiResponseBody("返回参数") String> planning_save(@ApiParam(value = "查询字段值") ArrayList> arrHashMap) { + StringBuilder stringBuffer = new StringBuilder(); + for (int i = 0; i < arrHashMap.size(); i++) { + HashMap hashMap = arrHashMap.get(i); + JSONObject jsonObject = new JSONObject(hashMap); + jsonObject.getString("periodCode");// 编报期间 + jsonObject.getString("orgCode");// 编报主体 + jsonObject.getString("subjectCode");// 计划科目 + jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code + jsonObject.getString("amount");//金额 + FpmResponse voidFpmResponse = planningWrite(jsonObject.getString("periodCode"), jsonObject.getString("orgCode"), jsonObject.getString("subjectCode"), jsonObject.getString("entryPeriodCode"), Integer.parseInt(jsonObject.getString("amount"))); + stringBuffer.append("第").append(i + 1).append("条数据写入").append(voidFpmResponse.isSuccess() ? "成功" : "失败") + .append(",返回信息:").append(voidFpmResponse.getMessage()).append("\n"); + } + return CustomApiResult.success(stringBuffer.toString()); + } + + /** + * 计划编制调整 + * + * @param arrHashMap + * @return + */ + @ApiPostMapping(value = "planAdjustment_save", desc = "计划编制写入") + public CustomApiResult<@ApiResponseBody("返回参数") String> planAdjustment_save(@ApiParam(value = "查询字段值") ArrayList> arrHashMap) { + logger.info("planAdjustment_save,请求参数:{}", arrHashMap.get(0)); + StringBuilder stringBuffer = new StringBuilder(); + for (int i = 0; i < arrHashMap.size(); i++) { + HashMap hashMap = arrHashMap.get(i); + JSONObject jsonObject = new JSONObject(hashMap); + jsonObject.getString("adjustReason");// 调整原因 + jsonObject.getString("orgCode");// 编报主体 + jsonObject.getString("periodCode");// 编报期间 + jsonObject.getString("subjectCode");// 计划科目 + jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code + jsonObject.getString("amount");//金额 + ReportAdjustBillBatchSaveResDTO resDTO = planAdjustment( + jsonObject.getString("adjustReason"), + jsonObject.getString("orgCode"), + jsonObject.getString("periodCode"), + jsonObject.getString("subjectCode"), + jsonObject.getString("entryPeriodCode"), + Integer.parseInt(jsonObject.getString("amount")) + ); + + List adjustBillNoList = resDTO.getAdjustBillNoList();// 调整单据编号列表 + if (adjustBillNoList.isEmpty()) { + stringBuffer.append("第").append(i + 1).append("条数据写入").append("失败").append("\n"); + }else { + stringBuffer.append("第").append(i + 1).append("条数据写入").append("成功,").append("单据编号:").append(adjustBillNoList).append("\n"); + } + } + return CustomApiResult.success(stringBuffer.toString()); + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java index 1ec356a..3547d81 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java @@ -23,6 +23,9 @@ import shkd.sys.sys.mservice.ApiService; import java.util.*; +import static shkd.sys.sys.mservice.ApiService.getBillObject; +import static shkd.sys.sys.mservice.ApiService.pushBillAttachment; + /** * 动态表单插件 */ @@ -114,46 +117,19 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { // 查询星空单据 if ("shkd_queryxk".equals(itemKey)) { + // 获取想要推送单据类型 + String billMark = dataEntity.getDynamicObject("shkd_sourcebill").getString("number"); // 获取想要推送单据编码 String billNumber = dataEntity.getString("shkd_sourcenumber"); logger.info("获取推送单据编码 → billNumber:{}", billNumber); - // 获取想要推送单据类型 - String billMark = dataEntity.getDynamicObject("shkd_sourcebill").getString("number"); - logger.info("获取推送单据类型 → billMark:{}", billMark); - String xkBillType = null; - if ("cas_paybill".equals(billMark)) { - xkBillType = "AP_PAYBILL"; - } else if ("cas_recbill".equals(billMark)) { - xkBillType = "AR_RECEIVEBILL"; - } - IdentifyInfo iden = new IdentifyInfo(); - iden.setUserName(dataEntity.getString("shkd_xkusername"));// properties.getProperty("X-KDApi-UserName") - iden.setAppId(dataEntity.getString("shkd_xkappid"));// properties.getProperty("X-KDApi-AppID") - iden.setdCID(dataEntity.getString("shkd_xkacctid"));// properties.getProperty("X-KDApi-AcctID") - iden.setAppSecret(dataEntity.getString("shkd_xkappsec"));// properties.getProperty("X-KDApi-AppSec") - iden.setlCID(2052); - iden.setServerUrl(dataEntity.getString("shkd_xkserverurl"));// properties.getProperty("X-KDApi-ServerUrl") - K3CloudApi k3CloudApi = new K3CloudApi(iden); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("OrderString", ""); - jsonObject.put("TopRowCount", 0); - jsonObject.put("SubSystemId", ""); - jsonObject.put("FieldKeys", "FBillNo,FID"); - jsonObject.put("FormId", xkBillType); - jsonObject.put("Limit", 2000); - jsonObject.put("FilterString", "F_keed_SKDJBH='" + billNumber + "'"); - jsonObject.put("StartRow", 0); - try { - List> lists = k3CloudApi.executeBillQuery(jsonObject.toString()); - if (lists.isEmpty()) { - this.getView().showTipNotification("未查找到单据"); - } else { - List objects = lists.get(0); - this.getView().showSuccessNotification("查找到单据 → 星空单据编码:" + objects.get(0) + ",星空单据ID:" + objects.get(1)); - } - } catch (Exception e) { - throw new RuntimeException(e); - } + HashMap map = getBillObject(dataEntity, billMark, billNumber); + this.getView().showTipNotification("查找到单据 → 星空单据编码:" + map.get("billNumber") + ",星空单据ID:" + map.get("billId")); + } + + // 推送星空单据附件 + if ("shkd_pushxk".equals(itemKey)) { + String result = pushBillAttachment(dataEntity); + this.getView().showTipNotification("返回结果:" + result); } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/mob/AccountClosureMobBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/mob/AccountClosureMobBillPlugin.java index ff60a16..a517254 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/mob/AccountClosureMobBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/mob/AccountClosureMobBillPlugin.java @@ -23,18 +23,15 @@ public class AccountClosureMobBillPlugin extends AbstractMobBillPlugIn implement if (afterDoOperationEventArgs.getOperateKey().equals("donothing")) { boolean success = afterDoOperationEventArgs.getOperationResult().isSuccess();//是否成功 if (success) { - this.getPageCache().put("xhsuccess", String.valueOf(true)); - String xhsuccess = this.getPageCache().get("xhsuccess"); - logger.info("xhsuccess:"+xhsuccess); - logger.info("进入donothing"); // 插件代码 HashMap map = new HashMap<>(); map.put("method", "setLocalStorage"); HashMap args = new HashMap<>(); - args.put("key", "123"); - args.put("value", "456"); + args.put("key", "frontKey"); + args.put("value", "frontValue"); map.put("args", args); this.getView().executeClientCommand("callAPPApi", map); + logger.info("进入销户申请 → 执行完前端触发代码"); } } }