package tqq9.lc123.cloud.app.plugin.operate.sys; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.PreparePropertysEventArgs; 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.ConfigUtils; 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; //wms生产商同步 public class WmsScsSyncOpPlugin extends AbstractOperationServicePlugIn { private final static Log logger = LogFactory.getLog(WmsScsSyncOpPlugin.class); 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 onPreparePropertys(PreparePropertysEventArgs e) { super.onPreparePropertys(e); e.getFieldKeys().add("number"); e.getFieldKeys().add("name"); e.getFieldKeys().add("tqq9_address"); e.getFieldKeys().add("tqq9_proaddress"); } @Override public void afterExecuteOperationTransaction(AfterOperationArgs e) { super.afterExecuteOperationTransaction(e); DynamicObject[] dataEntities1 = e.getDataEntities(); if (null != dataEntities1 && dataEntities1.length > 0) { for (DynamicObject dataEntity : dataEntities1) { //获取附件url路径信息 List> urlPathsArray = new ArrayList<>(); List> wms_atts = AttachmentServiceHelper.getAttachments("tqq9_proxyandfactory", dataEntity.getPkValue(), "tqq9_attachmentpanelap"); for (Map att : wms_atts) { HashMap map = new HashMap<>(); String url = (String) att.get("url"); map.put("urlPath", url); urlPathsArray.add(map); } Map urlPathList = new HashMap<>(); urlPathList.put("urlPaths", urlPathsArray); //其他入参: String number1 = dataEntity.getString("number");//生产厂商编码 String name = dataEntity.getString("name");//生产厂商名称 String tqq9_address = dataEntity.getString("tqq9_address");//地址1,string(50) String tqq9_proaddress = dataEntity.getString("tqq9_proaddress");//地址2,string(50) // add|update, 必填 // 生产厂商编码, string (50) , 必填 // 生产厂商名称, string (200) //生产企业许可证/备案凭证号, string (50) //准证类型, string (50) //url链接地址, string(200), 必填 //是否有效,Y/N(默认为Y) //地址1,string(50) //地址2,string(50) //省份,string(50) //城市,string(50) //区县,string(50) //镇,string(50) //国家,string(50) //国家编码,string(50) //省份编码,string(50) //城市编码,string(50) //区/县编码,string(50) //镇编码,string(50) //邮编,string(50) //联系人,string(50) //电话,string(50) //手机,string(50) //传真,string(50) //E-mail,string(200) //备注,string(500) //开始封装 Map request = new HashMap<>(); request.put("actionType", "update"); request.put("manufactoryCode", number1); request.put("manufactoryName", name); request.put("address1", tqq9_address); request.put("address2", tqq9_proaddress); request.put("urlPathList", urlPathList); request.put("status", "Y"); // 最终的外层Map Map finalMap = new HashMap<>(); finalMap.put("request", request); logger.info("wms生产商同步——request:" + request); StringBuilder xmlBuilder = new StringBuilder(); xmlBuilder.append("\n"); HttpRequestUtils.buildXml(xmlBuilder, finalMap, 0); logger.info("wms生产商同步——xml:" + xmlBuilder); HashMap headMap = new HashMap<>(); String ttx_customerId = ConfigUtils.getThirdConfigByNumber("Ttx_CustomerId"); String ttx_mainUrl = ConfigUtils.getThirdConfigByNumber("Ttx_MainURL"); ttx_mainUrl = ttx_mainUrl + "?method=manufacturer.create&v=2.0&format=xml&customerId=" + ttx_customerId; try { String s = HttpRequestUtils.postXml(ttx_mainUrl, xmlBuilder.toString(), headMap); logger.info("wms生产商同步接口结果:" + s); } catch (IOException ex) { throw new RuntimeException(ex); } } } } }