package tqq9.lc123.cloud.app.plugin.operate.sys; import com.alibaba.fastjson.JSON; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.AfterOperationArgs; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.AttachmentServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper; import tqq9.lc123.cloud.app.plugin.utils.HttpRequestUtils; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; //北广生产商同步 public class BGScsOpPlugin extends AbstractOperationServicePlugIn { private final static Log logger = LogFactory.getLog(BGScsOpPlugin.class); @Override public void afterExecuteOperationTransaction(AfterOperationArgs e) { super.afterExecuteOperationTransaction(e); DynamicObject[] dataEntities1 = e.getDataEntities(); if (null != dataEntities1 && dataEntities1.length > 0) { for (DynamicObject dataEntity : dataEntities1) { DynamicObject BJURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", new QFilter[]{new QFilter("number", QCP.equals, "BJ_POSTURL")}); String BJ_URL = BJURL.getString("name"); DynamicObject GZURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", new QFilter[]{new QFilter("number", QCP.equals, "GZ_POSTURL")}); String GZ_URL = GZURL.getString("name"); HashMap body = new HashMap<>(); List fj = new ArrayList<>(); //获取单据信息,并查询单据中的附件字段 dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getLong("id"), "tqq9_proxyandfactory"); String number = dataEntity.getString("number"); //获取单据中附件面板信息 List> atts = AttachmentServiceHelper.getAttachments("tqq9_proxyandfactory", dataEntity.getPkValue(), "tqq9_attachmentpanelap"); for (Map att : atts) { String url = (String) att.get("url"); fj.add(url); } String[] collectArray = fj.toArray(new String[0]); String fname = dataEntity.getString("name"); body.put("MFCode", number); body.put("MFName", fname); body.put("lstImageUrls", collectArray); String jsonBody = JSON.toJSONString(body); HashMap headMap = new HashMap<>(); logger.info("北广生产商同步body:" + jsonBody); try { String s1 = HttpRequestUtils.postJson(BJ_URL + "/api/BA/Manufacturer", jsonBody, headMap); logger.info("北京生产商同步结果:" + s1); } catch (IOException ex) { throw new RuntimeException(ex); } //广州 try { String s2 = HttpRequestUtils.postJson(GZ_URL + "/api/BA/Manufacturer", jsonBody, headMap); logger.info("广州生产商同步结果:" + s2); } catch (IOException ex) { throw new RuntimeException(ex); } } } } }