|
|
@@ -6,110 +6,160 @@ import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
|
|
import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
|
|
|
import kd.bos.servicehelper.AttachmentServiceHelper;
|
|
|
import nckd.base.common.utils.*;
|
|
|
+import nckd.fi.er.opplugin.config.DatasetConfig;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
- * @description:业务招待制度推送国资委
|
|
|
+ * @description:业务招待制度推送国资委,其他逻辑不要写在此处
|
|
|
* @author: dingsixi
|
|
|
* @create: 2025/12/22 18:14
|
|
|
*/
|
|
|
-public class BizPolicyPushOpPlugin extends AbstractOperationServicePlugIn {
|
|
|
-
|
|
|
+public class BizPolicyPushOpPlugin extends GzwPushOpPlugin {
|
|
|
|
|
|
@Override
|
|
|
- public void onPreparePropertys(PreparePropertysEventArgs e) {
|
|
|
- super.onPreparePropertys(e);
|
|
|
- e.getFieldKeys().addAll(this.billEntityType.getAllFields().keySet());
|
|
|
+ protected List<DatasetConfig> getDatasetConfigs(Map<String, Object> sysCtrlParameter) {
|
|
|
+ List<DatasetConfig> configs = new ArrayList<>();
|
|
|
+ //所有资源代号信息
|
|
|
+ String resParam = (String) sysCtrlParameter.get("nckd_res");
|
|
|
+
|
|
|
+ // 基础信息
|
|
|
+ Map<String, String> mainResMap = GzwCommonUtils.getResMap(GzwSyncBillUtils.BIZ_REGULATION, resParam);
|
|
|
+ configs.add(new DatasetConfig(GzwSyncBillUtils.BIZ_REGULATION, mainResMap));
|
|
|
+
|
|
|
+ return configs;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void endOperationTransaction(EndOperationTransactionArgs e) {
|
|
|
- super.endOperationTransaction(e);
|
|
|
- DynamicObject[] dataEntities = e.getDataEntities();
|
|
|
- //业务招待制度推送国资委
|
|
|
- pushGzw(dataEntities, e);
|
|
|
+ protected LinkedHashMap<String, Object> convertMainBillData(DynamicObject bill) {
|
|
|
+ // 获取基础信息XML动态参数
|
|
|
+ return GzwSyncBillUtils.getBizPolicyData(bill);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ protected String getAttachmentPanelField() {
|
|
|
+ //单据附件面板标识
|
|
|
+ return "nckd_attachmentpanelap";
|
|
|
+ }
|
|
|
|
|
|
- private void pushGzw(DynamicObject[] bizPolicys, EndOperationTransactionArgs e) {
|
|
|
- //当前时间年月日时分秒
|
|
|
- String cusDateStr = GzwCommonUtils.getCusDateStr();
|
|
|
- //获取费控系统参数
|
|
|
- Map<String, Object> sysCtrlParameter = ParamUtils.getSysCtrlParameter(ParamUtils.EM);
|
|
|
- //获取资源代号信息 基础信息
|
|
|
- Map<String, String> resMap = GzwCommonUtils.getResMap(GzwSyncBillUtils.BIZ_REGULATION, (String) sysCtrlParameter.get("nckd_res"));
|
|
|
- //获取资源代号信息 附件信息
|
|
|
- Map<String, String> attrResMap = GzwCommonUtils.getResMap(GzwSyncBillUtils.BIZ_FILE, (String) sysCtrlParameter.get("nckd_res"));
|
|
|
-
|
|
|
- //获取版本号
|
|
|
- String ver = (String) sysCtrlParameter.get("nckd_ver");
|
|
|
- //接口代号
|
|
|
- String apiCode = (String) sysCtrlParameter.get("nckd_apicode");
|
|
|
- //基础信息资源代号
|
|
|
- String resCode = resMap.get("nckd_rescode");
|
|
|
- //附件信息资源代号
|
|
|
- String attrResCode = attrResMap.get("nckd_rescode");
|
|
|
-
|
|
|
-
|
|
|
- Object[] ids = Arrays.stream(bizPolicys).map(it -> it.getString("id")).toArray();
|
|
|
- //获取所有单据附件面板信息
|
|
|
- Map<String, List<Map<String, Object>>> bizPolicyAttrMap = AttachmentServiceHelper.getAttachments(this.billEntityType.getName(),
|
|
|
- ids, "nckd_attachmentpanelap", Boolean.FALSE);
|
|
|
-
|
|
|
-
|
|
|
- //业务单据根据业务单元统一社会信用代码分组
|
|
|
- Map<String, List<DynamicObject>> bizPolicyByOrgCodeMap = Arrays.stream(bizPolicys).collect(Collectors.groupingBy(
|
|
|
- it -> it.getString("nckd_code")
|
|
|
- ));
|
|
|
-
|
|
|
- for (Map.Entry<String, List<DynamicObject>> bizPolicyEntrySet : bizPolicyByOrgCodeMap.entrySet()) {
|
|
|
- //统一社会信用代码
|
|
|
- String orgCode = bizPolicyEntrySet.getKey();
|
|
|
- List<DynamicObject> bizPolicyList = bizPolicyEntrySet.getValue();
|
|
|
- //将所有单据数据转换成动态参数
|
|
|
- List<LinkedHashMap<String, Object>> dataList = new ArrayList<>();
|
|
|
- //将所有单据附件数据转换成动态参数
|
|
|
- List<LinkedHashMap<String, Object>> attrDataList = new ArrayList<>();
|
|
|
-
|
|
|
- //所有单据附件信息
|
|
|
- List<File> billAttrFileList = new ArrayList<>();
|
|
|
-
|
|
|
- //生成XMLRecords内容
|
|
|
- for (DynamicObject bizPolicy : bizPolicyList) {
|
|
|
- //业务单元
|
|
|
- DynamicObject org = bizPolicy.getDynamicObject("nckd_org");
|
|
|
- //获取数据标识
|
|
|
- String dataFlag = GzwCommonUtils.getDataFlag(e.getOperationKey(), bizPolicy);
|
|
|
-
|
|
|
- //将单据数据转换成XML动态参数内容
|
|
|
- LinkedHashMap<String, Object> dynamicData = GzwSyncBillUtils.getBizPolicyData(bizPolicy);
|
|
|
- //XML固定参数内容
|
|
|
- Map<String, Object> fixedData = GzwCommonUtils.getFixedData(resMap, org, dataFlag);
|
|
|
- dynamicData.putAll(fixedData);
|
|
|
- dataList.add(dynamicData);
|
|
|
-
|
|
|
- //获取单据附件信息
|
|
|
- List<Map<String, Object>> bizPolicyAttr = bizPolicyAttrMap.getOrDefault(bizPolicy.getString("id"), Collections.emptyList());
|
|
|
- //附件信息转File、附件信息生成动态参数
|
|
|
- GzwCommonUtils.getBillAttrDataAndFile(bizPolicyAttr,billAttrFileList,attrDataList,fixedData);
|
|
|
- }
|
|
|
-
|
|
|
- Map<String,Object> xmlMap = new HashMap<>();
|
|
|
- //基础信息
|
|
|
- xmlMap.put(resCode,dataList);
|
|
|
- //附件信息
|
|
|
- xmlMap.put(attrResCode,attrDataList);
|
|
|
+ @Override
|
|
|
+ protected String getOrgCode(DynamicObject bill) {
|
|
|
+ //社会统一信用代码
|
|
|
+ return bill.getString("nckd_code");
|
|
|
+ }
|
|
|
|
|
|
- //将单据数据动态参数生成XML文件,附件转为FIle文件,合并生成zip文件
|
|
|
- File zipFile = GzwCommonUtils.createZipFile(orgCode, ver, cusDateStr, xmlMap, billAttrFileList, apiCode);
|
|
|
+ @Override
|
|
|
+ protected DynamicObject getBillOrg(DynamicObject bill) {
|
|
|
+ //单据组织字段
|
|
|
+ return bill.getDynamicObject("nckd_org");
|
|
|
+ }
|
|
|
|
|
|
- //TODO 推送国资委数据采集平台接口,记录日志,单据信息记录是否推送成功
|
|
|
+ @Override
|
|
|
+ protected boolean isMainDataset(String resourceType) {
|
|
|
+ //设置基础信息资源代号
|
|
|
+ return GzwSyncBillUtils.BIZ_REGULATION.equals(resourceType);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ protected List<LinkedHashMap<String, Object>> convertSubDatasetData(String resourceType, DynamicObject bill) {
|
|
|
+ //不需要推送单据明细,返回空
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- }
|
|
|
+// @Override
|
|
|
+// public void onPreparePropertys(PreparePropertysEventArgs e) {
|
|
|
+// super.onPreparePropertys(e);
|
|
|
+// e.getFieldKeys().addAll(this.billEntityType.getAllFields().keySet());
|
|
|
+// }
|
|
|
+//
|
|
|
+// @Override
|
|
|
+// public void endOperationTransaction(EndOperationTransactionArgs e) {
|
|
|
+// super.endOperationTransaction(e);
|
|
|
+// DynamicObject[] dataEntities = e.getDataEntities();
|
|
|
+// //业务招待制度推送国资委
|
|
|
+// pushGzw(dataEntities, e);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// private void pushGzw(DynamicObject[] bizPolicys, EndOperationTransactionArgs e) {
|
|
|
+// //当前时间年月日时分秒
|
|
|
+// String cusDateStr = GzwCommonUtils.getCusDateStr();
|
|
|
+// //获取费控系统参数
|
|
|
+// Map<String, Object> sysCtrlParameter = ParamUtils.getSysCtrlParameter(ParamUtils.EM);
|
|
|
+// //获取资源代号信息 基础信息
|
|
|
+// Map<String, String> resMap = GzwCommonUtils.getResMap(GzwSyncBillUtils.BIZ_REGULATION, (String) sysCtrlParameter.get("nckd_res"));
|
|
|
+// //获取资源代号信息 附件信息
|
|
|
+// Map<String, String> attrResMap = GzwCommonUtils.getResMap(GzwSyncBillUtils.BIZ_FILE, (String) sysCtrlParameter.get("nckd_res"));
|
|
|
+//
|
|
|
+// //获取版本号
|
|
|
+// String ver = (String) sysCtrlParameter.get("nckd_ver");
|
|
|
+// //接口代号
|
|
|
+// String apiCode = (String) sysCtrlParameter.get("nckd_apicode");
|
|
|
+// //基础信息资源代号
|
|
|
+// String resCode = resMap.get("nckd_rescode");
|
|
|
+// //附件信息资源代号
|
|
|
+// String attrResCode = attrResMap.get("nckd_rescode");
|
|
|
+//
|
|
|
+//
|
|
|
+// Object[] ids = Arrays.stream(bizPolicys).map(it -> it.getString("id")).toArray();
|
|
|
+// //获取所有单据附件面板信息
|
|
|
+// Map<String, List<Map<String, Object>>> bizPolicyAttrMap = AttachmentServiceHelper.getAttachments(this.billEntityType.getName(),
|
|
|
+// ids, "nckd_attachmentpanelap", Boolean.FALSE);
|
|
|
+//
|
|
|
+//
|
|
|
+// //业务单据根据业务单元统一社会信用代码分组
|
|
|
+// Map<String, List<DynamicObject>> bizPolicyByOrgCodeMap = Arrays.stream(bizPolicys).collect(Collectors.groupingBy(
|
|
|
+// it -> it.getString("nckd_code")
|
|
|
+// ));
|
|
|
+//
|
|
|
+// for (Map.Entry<String, List<DynamicObject>> bizPolicyEntrySet : bizPolicyByOrgCodeMap.entrySet()) {
|
|
|
+// //统一社会信用代码
|
|
|
+// String orgCode = bizPolicyEntrySet.getKey();
|
|
|
+// List<DynamicObject> bizPolicyList = bizPolicyEntrySet.getValue();
|
|
|
+// //将所有单据数据转换成动态参数
|
|
|
+// List<LinkedHashMap<String, Object>> dataList = new ArrayList<>();
|
|
|
+// //将所有单据附件数据转换成动态参数
|
|
|
+// List<LinkedHashMap<String, Object>> attrDataList = new ArrayList<>();
|
|
|
+//
|
|
|
+// //所有单据附件信息
|
|
|
+// List<File> billAttrFileList = new ArrayList<>();
|
|
|
+//
|
|
|
+// //生成XMLRecords内容
|
|
|
+// for (DynamicObject bizPolicy : bizPolicyList) {
|
|
|
+// //业务单元
|
|
|
+// DynamicObject org = bizPolicy.getDynamicObject("nckd_org");
|
|
|
+// //获取数据标识
|
|
|
+// String dataFlag = GzwCommonUtils.getDataFlag(e.getOperationKey(), bizPolicy);
|
|
|
+//
|
|
|
+// //将单据数据转换成XML动态参数内容
|
|
|
+// LinkedHashMap<String, Object> dynamicData = GzwSyncBillUtils.getBizPolicyData(bizPolicy);
|
|
|
+// //XML固定参数内容
|
|
|
+// Map<String, Object> fixedData = GzwCommonUtils.getFixedData(resMap, org, dataFlag);
|
|
|
+// dynamicData.putAll(fixedData);
|
|
|
+// dataList.add(dynamicData);
|
|
|
+//
|
|
|
+// //获取单据附件信息
|
|
|
+// List<Map<String, Object>> bizPolicyAttr = bizPolicyAttrMap.getOrDefault(bizPolicy.getString("id"), Collections.emptyList());
|
|
|
+// //附件信息转File、附件信息生成动态参数
|
|
|
+// GzwCommonUtils.getBillAttrDataAndFile(bizPolicyAttr,billAttrFileList,attrDataList,fixedData);
|
|
|
+// }
|
|
|
+//
|
|
|
+// Map<String,Object> xmlMap = new HashMap<>();
|
|
|
+// //基础信息
|
|
|
+// xmlMap.put(resCode,dataList);
|
|
|
+// //附件信息
|
|
|
+// xmlMap.put(attrResCode,attrDataList);
|
|
|
+//
|
|
|
+// //将单据数据动态参数生成XML文件,附件转为FIle文件,合并生成zip文件
|
|
|
+// File zipFile = GzwCommonUtils.createZipFile(orgCode, ver, cusDateStr, xmlMap, billAttrFileList, apiCode);
|
|
|
+//
|
|
|
+// //TODO 推送国资委数据采集平台接口,记录日志,单据信息记录是否推送成功
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// }
|
|
|
}
|