|
|
@@ -0,0 +1,55 @@
|
|
|
+package org.jeecg.modules.medical.ruleengine.plugin;
|
|
|
+
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jeecg.common.util.dynamic.db.DynamicDBUtil;
|
|
|
+import org.jeecg.modules.medical.ColumnTypeEnum;
|
|
|
+import org.jeecg.modules.medical.Constant;
|
|
|
+import org.jeecg.modules.medical.entity.EventAttr;
|
|
|
+import org.jeecg.modules.medical.entity.FactorAttrRela;
|
|
|
+import org.jeecg.modules.medical.entity.FactorEnchance;
|
|
|
+import org.jeecg.modules.medical.ruleengine.FactorEnchangeFactory;
|
|
|
+import org.jeecg.modules.medical.ruleengine.PluginInterface;
|
|
|
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
|
|
|
+import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+@Slf4j
|
|
|
+@Component("insertSqlPlugin")
|
|
|
+public class InsertSqlPlugin implements PluginInterface {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void plugin(Map<String, Object> localMap, Map<Integer, List<FactorAttrRela>> ioTypeMap, FactorEnchance factorEnchance, Integer medicalInsRuleInfoId) {
|
|
|
+ NamedParameterJdbcTemplate namedParameterJdbcTemplate = DynamicDBUtil.getNamedParameterJdbcTemplate(Constant.LOCAL_MYSQL);
|
|
|
+ List<FactorAttrRela> factorAttrRelaList = ioTypeMap.get(Constant.INPUT);
|
|
|
+ if(CollectionUtil.isEmpty(factorAttrRelaList)){
|
|
|
+ log.error("要素提取:{} 未配置入参", factorEnchance);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Object paramSql = factorEnchance.getEnhanceValue();
|
|
|
+ if(null == paramSql){
|
|
|
+ log.error("要素提取:{} 插件未获取到sql配置", factorEnchance);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ EventAttr eventAttr = FactorEnchangeFactory.enchanceAttrMap.get(factorAttrRelaList.get(0).getEventAttrId());
|
|
|
+ ColumnTypeEnum columnTypeEnum = ColumnTypeEnum.getType(eventAttr.getDispType());
|
|
|
+ if(ColumnTypeEnum.ARRAY_MAP == columnTypeEnum){
|
|
|
+ List<MapSqlParameterSource> batchArgs = new ArrayList<>();
|
|
|
+ List<Map<String,Object>> dataList = (List<Map<String, Object>>) localMap.get(FactorEnchangeFactory.getParamName(eventAttr.getId()));
|
|
|
+
|
|
|
+ for (Map<String,Object> dataMap : dataList) {
|
|
|
+ dataMap.putAll(localMap);
|
|
|
+ MapSqlParameterSource parameters = new MapSqlParameterSource(dataMap);
|
|
|
+
|
|
|
+ batchArgs.add(parameters);
|
|
|
+ }
|
|
|
+ namedParameterJdbcTemplate.batchUpdate(paramSql.toString(), batchArgs.toArray(new MapSqlParameterSource[batchArgs.size()]));
|
|
|
+ }else{
|
|
|
+ namedParameterJdbcTemplate.update(paramSql.toString(), localMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|