lc/lc123/cloud/app/plugin/operate/sys/WmsScsSyncOpPlugin.java

128 lines
6.6 KiB
Java
Raw Normal View History

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;
2025-10-28 03:19:59 +00:00
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<Map<String, String>> urlPathsArray = new ArrayList<>();
List<Map<String, Object>> wms_atts = AttachmentServiceHelper.getAttachments("tqq9_proxyandfactory", dataEntity.getPkValue(), "tqq9_attachmentpanelap");
for (Map<String, Object> att : wms_atts) {
HashMap<String, String> map = new HashMap<>();
String url = (String) att.get("url");
map.put("urlPath", url);
urlPathsArray.add(map);
}
Map<String, Object> urlPathList = new HashMap<>();
urlPathList.put("urlPaths", urlPathsArray);
//其他入参:
String number1 = dataEntity.getString("number");//生产厂商编码
String name = dataEntity.getString("name");//生产厂商名称
String tqq9_address = dataEntity.getString("tqq9_address");//地址1string(50)
String tqq9_proaddress = dataEntity.getString("tqq9_proaddress");//地址2string(50)
// <actionType>add|update, 必填</actionType>
// <manufactoryCode>生产厂商编码, string (50) , 必填</ manufactoryCode>
// <manufactoryName>生产厂商名称, string (200) </ manufactoryName>
//<manufactoryLicense>生产企业许可证/备案凭证号, string (50) </ manufactoryLicense >
//<permitType>准证类型, string (50) </ permitType >
//<urlPath>url链接地址, string200, 必填</ urlPath>
//<status>是否有效Y/N(默认为Y)</status>
//<address1>地址1string(50)</address1>
//<address2>地址2string(50)</address2>
//<state>省份string(50)</state>
//<city>城市string(50)</city>
//<district>区县string(50)</district>
//<town>镇string(50)</town>
//<country>国家string(50)</country>
//<countryCode>国家编码string(50)</countryCode>
//<stateCode>省份编码string(50)</stateCode>
//<cityCode>城市编码string(50)</cityCode>
//<districtCode>区/县编码string(50)</districtCode>
//<townCode>镇编码string(50)</townCode>
//<postalCode>邮编string(50)</postalCode>
//<attentionTo>联系人string(50)</attentionTo>
//<phoneNum>电话string(50)</phoneNum>
//<mobile>手机string(50)</mobile>
//<faxNum>传真string(50)</faxNum>
//<email>E-mailstring(200)</email>
//<remark>备注string(500)</remark>
//开始封装
Map<String, Object> 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<String, Object> finalMap = new HashMap<>();
finalMap.put("request", request);
logger.info("wms生产商同步——request" + request);
StringBuilder xmlBuilder = new StringBuilder();
xmlBuilder.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
2025-10-27 07:30:18 +00:00
HttpRequestUtils.buildXml(xmlBuilder, finalMap, 0);
logger.info("wms生产商同步——xml" + xmlBuilder);
HashMap<String, String> headMap = new HashMap<>();
2025-10-28 03:19:59 +00:00
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 {
2025-10-28 03:19:59 +00:00
String s = HttpRequestUtils.postXml(ttx_mainUrl, xmlBuilder.toString(), headMap);
logger.info("wms生产商同步接口结果" + s);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}
}