diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java index d773a47..331f094 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/PlanningService.java @@ -1,5 +1,6 @@ package shkd.sys.sys.mservice; +import com.alibaba.fastjson.JSONArray; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; @@ -23,6 +24,7 @@ import microsoft.exchange.webservices.data.core.service.response.ResponseObject; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -105,7 +107,7 @@ public class PlanningService { // 4. 反序列化响应结果 FpmResponse responseObject = SerializationUtils.deSerializeFromBase64(result); - logger.info("是否成功:{}\n消息列表:{}\n反序列化对象:{}", + logger.info("计划编制批量写入是否成功:{}\n消息列表:{}\n反序列化对象:{}", responseObject.isSuccess(), responseObject.getMessage(), responseObject.getData()); return responseObject; } @@ -116,13 +118,12 @@ public class PlanningService { * @param adjustReason 调整原因 * @param orgCode 编报主体编码 * @param periodCode 编报期间编码 - * @param subjectCode 计划科目 * @param entryPeriodCode 主维度数据分录期间 code - * @param amount 调整金额 + * @param adjustProjects 调整项目(计划科目 和 金额) * @return */ - public static FpmResponse planAdjustment(String adjustReason, String orgCode, String periodCode, String subjectCode, String entryPeriodCode, String amount) { - logger.info("计划调整服务入参:adjustReason={},orgCode={},periodCode={},subjectCode={},entryPeriodCode={},amount={}", adjustReason, orgCode, periodCode, subjectCode, entryPeriodCode, amount); + public static FpmResponse planAdjustment(String adjustReason, String orgCode, String periodCode, String entryPeriodCode, JSONArray adjustProjects) { + logger.info("计划调整服务入参:adjustReason={},orgCode={},periodCode={},subjectCode={},entryPeriodCode={},amount={}", adjustReason, orgCode, periodCode, entryPeriodCode, adjustProjects); ReportAdjustBillBatchSaveDTO reportAdjustBillBatchSaveDTO = new ReportAdjustBillBatchSaveDTO(); reportAdjustBillBatchSaveDTO.setSystemCode("SYS-005");// 体系编码 @@ -137,21 +138,29 @@ public class PlanningService { reportAdjustBillSaveDTO.setReportTypeCode("M-002");// 编报类型编码 ArrayList reportAdjustDataSaveDTOS = new ArrayList<>(); - ReportAdjustDataSaveDTO reportAdjustDataSaveDTO = new ReportAdjustDataSaveDTO(); + + for (Object adjustProject : adjustProjects) { + HashMap adjustProjectHashMap = (HashMap) adjustProject; + // 计划科目 + Object subjectCode = adjustProjectHashMap.get("subjectCode"); + // 调整金额 + Object amount = adjustProjectHashMap.get("amount"); + + ReportAdjustDataSaveDTO reportAdjustDataSaveDTO = new ReportAdjustDataSaveDTO(); // reportAdjustDataSaveDTO.setAdjustReason();// 维度组合下每一行的调整原因 // reportAdjustDataSaveDTO.setAmountUnit();// 单位 - reportAdjustDataSaveDTO.setCurrencyCode("CNY");// 币别 code - reportAdjustDataSaveDTO.setSubjectCode(subjectCode);// 计划科目 - reportAdjustDataSaveDTO.setTemplateCode("FIX-013");// 调整数据所属编制表的模板编码 + reportAdjustDataSaveDTO.setCurrencyCode("CNY");// 币别 code + reportAdjustDataSaveDTO.setSubjectCode(subjectCode.toString());// 计划科目 + reportAdjustDataSaveDTO.setTemplateCode("FIX-013");// 调整数据所属编制表的模板编码 // reportAdjustDataSaveDTO.setCompanyCode();// 公司code - reportAdjustDataSaveDTO.setCurrentAdjustAmt(new BigDecimal(amount));// 本次调整金额 + reportAdjustDataSaveDTO.setCurrentAdjustAmt(new BigDecimal(amount.toString()));// 本次调整金额 // reportAdjustDataSaveDTO.setCustom1Code();// 自定义维度1值code // reportAdjustDataSaveDTO.setCustom2Code();// 自定义维度2值code // reportAdjustDataSaveDTO.setCustom3Code();// 自定义维度3值code - reportAdjustDataSaveDTO.setEntryPeriodCode(entryPeriodCode);// 主维度数据分录期间 code + reportAdjustDataSaveDTO.setEntryPeriodCode(entryPeriodCode);// 主维度数据分录期间 code // reportAdjustDataSaveDTO.setSettleTypeCode();// 结算方式 code - reportAdjustDataSaveDTOS.add(reportAdjustDataSaveDTO); - + reportAdjustDataSaveDTOS.add(reportAdjustDataSaveDTO); + } reportAdjustBillSaveDTO.setAdjustDataList(reportAdjustDataSaveDTOS);// 调整数据 List adjustDataList reportAdjustBillSaveDTOS.add(reportAdjustBillSaveDTO); @@ -172,7 +181,7 @@ public class PlanningService { reportAdjustBillBatchSaveResDTO.getSuccessSize();// 成功写入的调整单据总数 reportAdjustBillBatchSaveResDTO.getFailSize();// 失败写入的调整单据总数 List adjustBillNoList = reportAdjustBillBatchSaveResDTO.getAdjustBillNoList();// 调整单据编号列表 - logger.info("是否成功:{}\n消息列表:{}\n反序列化对象:{}", + logger.info("计划调整是否成功:{}\n消息列表:{}\n反序列化对象:{}", responseObject.isSuccess(), responseObject.getMessage(), responseObject.getData()); if (responseObject.isSuccess()) { logger.info("调整单据编号列表:{}", adjustBillNoList); 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 index 4b71b1f..93d57b5 100644 --- 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 @@ -1,5 +1,6 @@ package shkd.sys.sys.plugin.api; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.logging.Log; @@ -79,16 +80,14 @@ public class InterfacePracticePlug extends AbstractListPlugin implements Seriali jsonObject.getString("adjustReason");// 调整原因 jsonObject.getString("orgCode");// 编报主体 jsonObject.getString("periodCode");// 编报期间 - jsonObject.getString("subjectCode");// 计划科目 jsonObject.getString("entryPeriodCode");// 主维度数据分录期间code - jsonObject.getString("amount");// 金额 + jsonObject.getJSONArray("adjustProject");// 调整项目(计划科目 和 金额) FpmResponse fpmResponse = planAdjustment( jsonObject.getString("adjustReason"), jsonObject.getString("orgCode"), jsonObject.getString("periodCode"), - jsonObject.getString("subjectCode"), jsonObject.getString("entryPeriodCode"), - jsonObject.getString("amount") + jsonObject.getJSONArray("adjustProject") );