package tqq9.lc123.cloud.app.plugin.operate.sys; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.IDataModel; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.isc.util.script.feature.tool.string.Json2Xml; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.AttachmentServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; import org.json.XML; 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 ZczPostApi extends AbstractBillPlugIn implements Plugin { DynamicObject BJURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", new QFilter[]{new QFilter("number", QCP.equals, "BJ_POSTURL")}); String BJ_URL = (String) 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"); DynamicObject WMSURL = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name", new QFilter[]{new QFilter("number", QCP.equals, "Ttx_MainURL")}); String WMS_URL = WMSURL.getString("name"); @Override public void afterDoOperation(AfterDoOperationEventArgs e) { super.afterDoOperation(e); String operateKey = e.getOperateKey(); IDataModel model = this.getModel(); DynamicObject dataEntity = model.getDataEntity(); HashMap bj_map = new HashMap<>(); HashMap gz_map = new HashMap<>(); List bj = new ArrayList<>(); List gz = new ArrayList<>(); String number = dataEntity.getString("number"); if ("audit".equals(operateKey)) { DynamicObject file = BusinessDataServiceHelper.loadSingle("tqq9_registration", "id,tqq9_attachmentpanelbj,tqq9_supplier.number,tqq9_supplier.tqq9_prolicense,tqq9_entry,tqq9_entry.tqq9_e_supplier", new QFilter[]{new QFilter("number", QFilter.equals, number)}); DynamicObjectCollection tqq9_entry = file.getDynamicObjectCollection("tqq9_entry"); //分录 ArrayList> bglist = new ArrayList<>(); for (DynamicObject entry : tqq9_entry) { DynamicObject tqq9_e_supplier = entry.getDynamicObject("tqq9_e_supplier"); if (tqq9_e_supplier != null) { //北广map HashMap scsmap = new HashMap<>(); String number2 = tqq9_e_supplier.getString("number"); DynamicObject file2 = BusinessDataServiceHelper.loadSingle("tqq9_proxyandfactory", "id,number,name,tqq9_prolicense", new QFilter[]{new QFilter("number", QFilter.equals, number2)}); String MFCode = file2.getString("number"); String ProLicenceCode = file2.getString("tqq9_prolicense"); scsmap.put("MFCode", MFCode); scsmap.put("ProLicenceCode", ProLicenceCode); scsmap.put("IsAgent", "0"); scsmap.put("isAgent", "Y"); bglist.add(scsmap); } } //123564 //北京 //获取单据中附件面板信息 List> bj_atts = AttachmentServiceHelper.getAttachments("tqq9_registration", file.getPkValue().toString(), "tqq9_attachmentpanelbj"); for (Map att : bj_atts) { String url = (String) att.get("url"); bj.add(url); } String[] bjcollect = bj.toArray(new String[0]); //广州 //获取单据中附件面板信息 List> gz_atts = AttachmentServiceHelper.getAttachments("tqq9_registration", file.getPkValue().toString(), "tqq9_attachmentpanelgz1"); for (Map att : gz_atts) { String url = (String) att.get("url"); gz.add(url); } String[] gzcollect = gz.toArray(new String[0]); //post请求body String dEndDate = dataEntity.getString("tqq9_enddate");//有效期至 String cRemark = dataEntity.getString("tqq9_remark");//备注 String IsImportation = dataEntity.getString("tqq9_type").equals("A") ? "1" : "0";//是否进口 bj_map.put("cRegNo", number); bj_map.put("dEndDate", dEndDate); bj_map.put("cRemark", cRemark); bj_map.put("lstImageUrls", bjcollect); bj_map.put("IsImportation", IsImportation); bj_map.put("lstManufacturer", bglist);//成产商 String bjjsonBody = JSON.toJSONString(bj_map); gz_map.put("cRegNo", number); gz_map.put("dEndDate", dEndDate); gz_map.put("cRemark", cRemark); gz_map.put("lstImageUrls", gzcollect); gz_map.put("IsImportation", IsImportation); gz_map.put("lstManufacturer", bglist); String gzjsonBody = JSON.toJSONString(bj_map); //北京 try { String s1 = HttpRequestUtils.postJson(BJ_URL + "/api/BA/Registration", bjjsonBody, null); } catch (IOException ex) { throw new RuntimeException(ex); } //广州 try { String s2 = HttpRequestUtils.postJson(GZ_URL + "/api/BA/Registration", gzjsonBody, null); } catch (IOException ex) { throw new RuntimeException(ex); } } } }