lc/lc123/cloud/app/plugin/operate/im/PurOrderPushReceiptNoticePl...

66 lines
2.9 KiB
Java

package tqq9.lc123.cloud.app.plugin.operate.im;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.ExtendedDataEntitySet;
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.sdk.plugin.Plugin;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 采购订单下推收获通知单转换插件
* 退货补货数量修改
*/
public class PurOrderPushReceiptNoticePlugin extends AbstractConvertPlugIn implements Plugin {
private final static Log logger = LogFactory.getLog(PurOrderPushReceiptNoticePlugin.class);
private static String RECEIPTNOTICE = "pm_receiptnotice";
@Override
public void afterConvert(AfterConvertEventArgs e) {
super.afterConvert(e);
ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet();
ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(RECEIPTNOTICE);
Map<String, String> variables = this.getOption().getVariables();
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
//收货通知单
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry");
for (DynamicObject dynamicObject : dynamicObjectCollection) {
String mainbillentryid = dynamicObject.getString("mainbillentryid");
//核心单据号一致,修改补货数量
if (variables.containsKey(mainbillentryid)) {
String jsonString = variables.get(mainbillentryid);
ObjectMapper objectMapper = new ObjectMapper();
List<HashMap<String, Object>> jsonList = null;
try {
jsonList = objectMapper.readValue(jsonString, objectMapper.getTypeFactory().constructCollectionType(List.class, HashMap.class));
} catch (JsonProcessingException ex) {
throw new RuntimeException(ex);
}
if (jsonList != null) {
for (int i = 0; i < jsonList.size(); i++) {
HashMap<String, Object> jsonMap = jsonList.get(i);
BigDecimal entry_qty = (BigDecimal) jsonMap.get("qty");//类型
dynamicObject.set("qty", entry_qty);//数量
dynamicObject.set("baseqty", entry_qty);//基本数量
}
}
}
}
}
}
}