Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

lenovodn 2 yıl önce
ebeveyn
işleme
2660902150

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/SystemEventAttrConstant.java

@@ -110,4 +110,9 @@ public class SystemEventAttrConstant {
      */
     public static final String MEDICAL_INS_CORRELATIONPROJECTCODELIST = "medical_ins_correlationProjectCodeList";
 
+    /**
+     * 事前工单idkey
+     */
+    public static final String PRE_ADVANCEWARNINGAUDIT_ID_KEY = "pre_advancewarningaudit_id";
+
 }

+ 59 - 29
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/AfterIncidentDetailLog.java

@@ -58,62 +58,76 @@ public class AfterIncidentDetailLog implements Serializable {
 	/**就诊类别;1:住院 2:门诊*/
 	@Excel(name = "就诊类别;1:住院 2:门诊", width = 15)
     @ApiModelProperty(value = "就诊类别;1:住院 2:门诊")
-    private java.lang.String visitType;
+    @TableField(value = "visit_type")
+    private java.lang.String visit_type;
 	/**科室编码*/
 	@Excel(name = "科室编码", width = 15)
     @ApiModelProperty(value = "科室编码")
-    private java.lang.String medicalDeptCode;
+    @TableField(value = "medical_dept_code")
+    private java.lang.String medical_dept_code;
 	/**科室名称*/
 	@Excel(name = "科室名称", width = 15)
     @ApiModelProperty(value = "科室名称")
-    private java.lang.String medicalDeptName;
+    @TableField(value = "medical_dept_name")
+    private java.lang.String medical_dept_name;
 	/**医生姓名*/
 	@Excel(name = "医生姓名", width = 15)
     @ApiModelProperty(value = "医生姓名")
-    private java.lang.String doctorName;
+    @TableField(value = "doctor_name")
+    private java.lang.String doctor_name;
 	/**主诊医师编码*/
 	@Excel(name = "主诊医师编码", width = 15)
     @ApiModelProperty(value = "主诊医师编码")
-    private java.lang.String doctorId;
+    @TableField(value = "doctor_id")
+    private java.lang.String doctor_code;
 	/**医生级别;*/
 	@Excel(name = "医生级别;", width = 15)
     @ApiModelProperty(value = "医生级别;")
-    private java.lang.String doctorLevel;
+    @TableField(value = "doctor_level")
+    private java.lang.String doctor_level;
 	/**个人编号*/
 	@Excel(name = "个人编号", width = 15)
     @ApiModelProperty(value = "个人编号")
-    private java.lang.String patientId;
+    @TableField(value = "patient_id")
+    private java.lang.String patient_id;
 	/**患者姓名*/
 	@Excel(name = "患者姓名", width = 15)
     @ApiModelProperty(value = "患者姓名")
-    private java.lang.String patientName;
+    @TableField(value = "patient_name")
+    private java.lang.String patient_name;
 	/**患者性别;*/
 	@Excel(name = "患者性别;", width = 15)
     @ApiModelProperty(value = "患者性别;")
     @Dict(dicCode = "sex")
-    private java.lang.String patientGender;
+    @TableField(value = "patient_gender")
+    private java.lang.String patient_gender;
 	/**患者年龄;*/
 	@Excel(name = "患者年龄;", width = 15)
     @ApiModelProperty(value = "患者年龄;")
-    private java.lang.String patientAge;
+    @TableField(value = "patient_age")
+    private java.lang.String patient_age;
 	/**住院号/门诊号*/
 	@Excel(name = "住院号/门诊号", width = 15)
     @ApiModelProperty(value = "住院号/门诊号")
-    private java.lang.String visitNo;
+    @TableField(value = "visit_no")
+    private java.lang.String visit_no;
 	/**医嘱号/处方号*/
 	@Excel(name = "医嘱号/处方号", width = 15)
     @ApiModelProperty(value = "医嘱号/处方号")
-    private java.lang.String recipeNo;
+    @TableField(value = "recipe_no")
+    private java.lang.String recipe_no;
 	/**入院时间;*/
 	@Excel(name = "入院时间;", width = 15, format =  "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern= "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "入院时间;")
-    private java.util.Date inHospDate;
+    @TableField(value = "in_hosp_date")
+    private java.util.Date in_hosp_date;
 	/**项目类型*/
 	@Excel(name = "项目类型", width = 15)
     @ApiModelProperty(value = "项目类型")
-    private java.lang.String projectType;
+    @TableField(value = "project_type")
+    private java.lang.String project_type;
 	/**项目编码*/
 	@Excel(name = "项目编码", width = 15)
     @ApiModelProperty(value = "项目编码")
@@ -137,15 +151,18 @@ public class AfterIncidentDetailLog implements Serializable {
 	/**发票项目编号*/
 	@Excel(name = "发票项目编号", width = 15)
     @ApiModelProperty(value = "发票项目编号")
-    private java.lang.String invoiceProject;
+    @TableField(value = "invoice_project")
+    private java.lang.String invoice_project;
 	/**离院方式;*/
 	@Excel(name = "离院方式;", width = 15)
     @ApiModelProperty(value = "离院方式;")
-    private java.lang.String dischargeStatus;
+    @TableField(value = "discharge_status")
+    private java.lang.String discharge_status;
 	/**出院床位;*/
 	@Excel(name = "出院床位;", width = 15)
     @ApiModelProperty(value = "出院床位;")
-    private java.lang.String dscgBed;
+    @TableField(value = "dscg_bed")
+    private java.lang.String dscg_bed;
 	/**出院日期;*/
 	@Excel(name = "出院日期;", width = 15, format =  "yyyy-MM-dd HH:mm:ss")
 	@JsonFormat(timezone = "GMT+8",pattern =  "yyyy-MM-dd HH:mm:ss")
@@ -155,15 +172,18 @@ public class AfterIncidentDetailLog implements Serializable {
 	/**费用类别;01	床位费 02	诊察费 03	检查费 04	化验费 05	治疗费 06	手术费 07	护理费 08	卫生材料费 09	西药费 10	中药饮片费 11	中成药费 12	一般诊疗费 13	挂号费 14	其他费 14012	单病种除外内容 14013	单病种超标准床位费 14014	单病种定额标准费 1407	救护车费 1408	MRI费 1409	CT费 1410	彩超费 1411	输氧费 1412	输血费 1413	麻醉费 1414	麻醉相关项目费 1415	其他医疗费*/
 	@Excel(name = "费用类别;01	床位费 02	诊察费 03	检查费 04	化验费 05	治疗费 06	手术费 07	护理费 08	卫生材料费 09	西药费 10	中药饮片费 11	中成药费 12	一般诊疗费 13	挂号费 14	其他费 14012	单病种除外内容 14013	单病种超标准床位费 14014	单病种定额标准费 1407	救护车费 1408	MRI费 1409	CT费 1410	彩超费 1411	输氧费 1412	输血费 1413	麻醉费 1414	麻醉相关项目费 1415	其他医疗费", width = 15)
     @ApiModelProperty(value = "费用类别;01	床位费 02	诊察费 03	检查费 04	化验费 05	治疗费 06	手术费 07	护理费 08	卫生材料费 09	西药费 10	中药饮片费 11	中成药费 12	一般诊疗费 13	挂号费 14	其他费 14012	单病种除外内容 14013	单病种超标准床位费 14014	单病种定额标准费 1407	救护车费 1408	MRI费 1409	CT费 1410	彩超费 1411	输氧费 1412	输血费 1413	麻醉费 1414	麻醉相关项目费 1415	其他医疗费")
-    private java.lang.String expenseCategory;
+    @TableField(value = "expense_category")
+    private java.lang.String expense_category;
 	/**剂型*/
 	@Excel(name = "剂型", width = 15)
     @ApiModelProperty(value = "剂型")
-    private java.lang.String doseForm;
+    @TableField(value = "dose_form")
+    private java.lang.String dose_form;
 	/**规格*/
 	@Excel(name = "规格", width = 15)
     @ApiModelProperty(value = "规格")
-    private java.lang.String medicalSpecification;
+    @TableField(value = "medical_specification")
+    private java.lang.String medical_specification;
 	/**价格;单价,必须使用数值型,如”12.5”*/
 	@Excel(name = "价格;单价,必须使用数值型,如”12.5”", width = 15)
     @ApiModelProperty(value = "价格;单价,必须使用数值型,如”12.5”")
@@ -171,39 +191,49 @@ public class AfterIncidentDetailLog implements Serializable {
 	/**数量;数量,必须使用数值型,如”10”*/
 	@Excel(name = "数量;数量,必须使用数值型,如”10”", width = 15)
     @ApiModelProperty(value = "数量;数量,必须使用数值型,如”10”")
-    private java.lang.Integer medicalNumber;
+    @TableField(value = "medical_number")
+    private java.lang.Integer quantity;
 	/**单位*/
 	@Excel(name = "单位", width = 15)
     @ApiModelProperty(value = "单位")
-    private java.lang.String doseUnit;
+    @TableField(value = "dose_unit")
+    private java.lang.String dose_unit;
 	/**金额;金额,必须使用数值型,如”50.5”*/
 	@Excel(name = "金额;金额,必须使用数值型,如”50.5”", width = 15)
     @ApiModelProperty(value = "金额;金额,必须使用数值型,如”50.5”")
-    private java.math.BigDecimal amount;
+    private java.lang.Double amount;
 	/**用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”*/
 	@Excel(name = "用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”", width = 15)
     @ApiModelProperty(value = "用药天数;用药天数(项目为药品时非空),医嘱服用该药品天数,必须使用数值型,如”15”")
-    private java.lang.Integer useDay;
+    @TableField(value = "use_day")
+    private java.lang.Integer use_day;
 	/**单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”*/
 	@Excel(name = "单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”", width = 15)
     @ApiModelProperty(value = "单次用药量;单次用药量(项目为药品时非空),配合下一个字段的单位,如 50 mg,必须使用数值型,如”50”")
-    private java.lang.Integer singleDoseNumber;
+    @TableField(value = "single_dose_number")
+    private java.lang.Integer single_dose_number;
 	/**单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)*/
 	@Excel(name = "单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)", width = 15)
     @ApiModelProperty(value = "单次用药量剂量单位;单次用药量剂量单位(项目为药品时非空)")
-    private java.lang.String singleDoseUnit;
+    @TableField(value = "single_dose_unit")
+    private java.lang.String single_dose_unit;
 	/**药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”*/
 	@Excel(name = "药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”", width = 15)
     @ApiModelProperty(value = "药量天数;药量天数(项目为药品时非空),依据医嘱服药要求,所配药品患者可以服用的天数,必须使用数值型,如”5”")
-    private java.lang.Integer doseDay;
+    @TableField(value = "dose_day")
+    private java.lang.Integer dose_day;
 	/**服用频次*/
 	@Excel(name = "服用频次", width = 15)
     @ApiModelProperty(value = "服用频次")
-    private java.lang.String takeFrequence;
+    @TableField(value = "take_frequence")
+    private java.lang.String take_frequence;
 	/**医保标志*/
 	@Excel(name = "医保标志", width = 15)
     @ApiModelProperty(value = "医保标志")
-    private java.lang.String medicalInsuranceMark;
+    @TableField(value = "medical_insurance_mark")
+    private java.lang.String medical_insurance_mark;
+    @TableField(value = "total_amount")
+    private java.lang.Double total_amount;
 	/**检查部位*/
 	@Excel(name = "检查部位", width = 15)
     @ApiModelProperty(value = "检查部位")

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/entity/MedicalInsRuleProject.java

@@ -86,6 +86,8 @@ public class MedicalInsRuleProject implements Serializable {
     @ApiModelProperty(value = "关联项目名称")
     @TableField("correlation_project_name")
     private java.lang.String correlationProjectName;
+
+
     /**
      * 收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类
      */
@@ -94,6 +96,18 @@ public class MedicalInsRuleProject implements Serializable {
     @Dict(dicCode = "change_class")
     @TableField("change_class")
     private java.lang.String changeClass;
+
+    /**
+     * 关联项目收费等级
+     */
+    /**
+     * 收费等级;01 甲类 02 乙类 03 丙类 04 可报丙类
+     */
+    @Excel(name = "关联收费项目等级", width = 15)
+    @ApiModelProperty(value = "关联收费项目等级;01 甲类 02 乙类 03 丙类 04 可报丙类")
+    @Dict(dicCode = "change_class")
+    @TableField("correlation_change_class")
+    private java.lang.String correlationChangeClass;
     /**
      * 医疗收费项目类别
      */

+ 12 - 10
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/job/AfterWaringLogJob.java

@@ -70,27 +70,29 @@ public class AfterWaringLogJob implements Job {
             afterIncidentDetailLog.setAfterIncidentLogId(afterIncidentLog.getId());
 //            afterIncidentDetailLog.setMedical_diagnose_name_str(masterAdmissionBill.getDischargeDiseaseNameMain());
 //            afterIncidentDetailLog.setMedical_diagnose_code_str(masterAdmissionBill.getDischargeDiseaseIdMain());
-            afterIncidentDetailLog.setAmount(hospitalizatioSettleDetail.getCost());
+            afterIncidentDetailLog.setAmount(hospitalizatioSettleDetail.getCost().doubleValue());
             afterIncidentDetailLog.setMedical_project_code(hospitalizatioSettleDetail.getItemId());
             afterIncidentDetailLog.setMedical_project_name(hospitalizatioSettleDetail.getItemName());
             afterIncidentDetailLog.setProject_name(hospitalizatioSettleDetail.getItemNameHosp());
             afterIncidentDetailLog.setProject_code(hospitalizatioSettleDetail.getItemIdHosp());
             afterIncidentDetailLog.setCreateTime(afterIncidentLog.getCreateTime());
-            afterIncidentDetailLog.setDoctorId(afterIncidentLog.getDoctorId());
-            afterIncidentDetailLog.setDoctorName(afterIncidentLog.getDoctorName());
+            afterIncidentDetailLog.setDoctor_code(afterIncidentLog.getDoctorId());
+            afterIncidentDetailLog.setDoctor_name(afterIncidentLog.getDoctorName());
 
-            afterIncidentDetailLog.setDoctorLevel(doctorLevel);
-            afterIncidentDetailLog.setUseDay(hospitalizatioSettleDetail.getUseDay());
-            afterIncidentDetailLog.setDoseForm(hospitalizatioSettleDetail.getDosageForm());
-            afterIncidentDetailLog.setDoseUnit(hospitalizatioSettleDetail.getPackageUnit());
+            afterIncidentDetailLog.setDoctor_level(doctorLevel);
+            afterIncidentDetailLog.setUse_day(hospitalizatioSettleDetail.getUseDay());
+            afterIncidentDetailLog.setDose_form(hospitalizatioSettleDetail.getDosageForm());
+            afterIncidentDetailLog.setDose_unit(hospitalizatioSettleDetail.getPackageUnit());
             afterIncidentDetailLog.setPrice(new BigDecimal(hospitalizatioSettleDetail.getUnitPrice()));
-            afterIncidentDetailLog.setDscgBed(masterAdmissionBill.getAdmBed());
-            afterIncidentDetailLog.setExpenseCategory(hospitalizatioSettleDetail.getPCategory());
+            afterIncidentDetailLog.setDscg_bed(masterAdmissionBill.getAdmBed());
+            afterIncidentDetailLog.setExpense_category(hospitalizatioSettleDetail.getPCategory());
 //            afterIncidentDetailLog.setInspectionSite();
             afterIncidentDetailLog.setOutHospDate(masterAdmissionBill.getDischargeDate());
             afterIncidentDetailLog.setDiagnose_code_str(masterAdmissionBill.getDischargeDiseaseIdMain());
             afterIncidentDetailLog.setDiagnose_name_str(masterAdmissionBill.getDischargeDiseaseNameMain());
-            afterIncidentDetailLog.setMedicalInsuranceMark(masterAdmissionBill.getPayMethod());
+            afterIncidentDetailLog.setMedical_insurance_mark(masterAdmissionBill.getPayMethod());
+            afterIncidentDetailLog.setMedical_specification(hospitalizatioSettleDetail.getDrugSpec());
+            afterIncidentDetailLog.setTotal_amount(masterAdmissionBill.getMedfeeSumamt().doubleValue());
 //            afterIncidentDetailLog.setOrderType();
 //            afterIncidentDetailLog.setOrderCatalog();
             afterIncidentDetailLogList.add(afterIncidentDetailLog);

+ 4 - 5
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/FactorEnchangeFactory.java

@@ -161,11 +161,10 @@ public class FactorEnchangeFactory {
         if (null == audit || CollectionUtil.isEmpty(itemList)) {
             return;
         }
-//        if (audit instanceof AdvanceWarningAudit) {
-//            AdvanceWarningAudit advanceWarningAudit = (AdvanceWarningAudit) audit;
-//            insertAdvanceWaringDetail(itemMap, medicalInsRuleInfo, advanceWarningAudit);
-//        } else
-        if (audit instanceof MidIncidentAudit) {
+        if (audit instanceof AdvanceWarningAudit) {
+            AdvanceWarningAudit advanceWarningAudit = (AdvanceWarningAudit) audit;
+            insertAdvanceWaringDetail(itemMap, medicalInsRuleInfo, advanceWarningAudit);
+        } else if (audit instanceof MidIncidentAudit) {
             MidIncidentAudit midIncidentAudit = (MidIncidentAudit) audit;
             insertMidWarningDetail(itemMap, medicalInsRuleInfo, midIncidentAudit, itemList);
         } else {

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/RuleEngine.java

@@ -232,6 +232,7 @@ public class RuleEngine {
             }
             for(Integer medicalRuleInsInfoId : advanceWaringRuleIdList) {
                 MedicalInsRuleInfo medicalInsRuleInfo = medicalInsRuleInfoService.getById(medicalRuleInsInfoId);
+                paramMap.put(SystemEventAttrConstant.PRE_ADVANCEWARNINGAUDIT_ID_KEY, advanceWarningAudit.getId());
                 runAdvanceWaringEngine(paramMap, medicalInsRuleInfo, advanceWarningAudit);
             }
             JSONObject sendJson = new JSONObject();

+ 14 - 9
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/dict/DictUtil.java

@@ -173,6 +173,7 @@ public class DictUtil {
         if (CollectionUtil.isNotEmpty(midIncidentWarningVO.getAdvice_details())) {
             List<String> projectCodeList = new ArrayList<>();
             List<String> medicalProjectCodeList = new ArrayList<>();
+            Double totalAmount = Double.valueOf(0);
             for (AdviceDetailsVO adviceDetailsVO : midIncidentWarningVO.getAdvice_details()) {
                 if (null != adviceDetailsVO.getProject_code()) {
                     projectCodeList.add(adviceDetailsVO.getProject_code());
@@ -191,9 +192,13 @@ public class DictUtil {
                             adviceDetailsVO.setMedical_project_name(name.toString());
                         }
                     }
+                    totalAmount = totalAmount + adviceDetailsVO.getAmount();
                     medicalProjectCodeList.add(adviceDetailsVO.getMedical_project_name());
                 }
             }
+            if(null == midIncidentWarningVO.getTotoal_amount() || midIncidentWarningVO.getTotoal_amount()<=0){
+                midIncidentWarningVO.setTotoal_amount(totalAmount);
+            }
             midIncidentWarningVO.setProjectCodeList(projectCodeList);
             midIncidentWarningVO.setMedicalProjectCodeList(medicalProjectCodeList);
         }
@@ -285,7 +290,7 @@ public class DictUtil {
     }
 
     public void genHisProjectAndNotice(AfterIncidentDetailLog afterIncidentDetailLog){
-        String exCategory = afterIncidentDetailLog.getExpenseCategory();
+        String exCategory = afterIncidentDetailLog.getExpense_category();
         if(StringUtils.isNotBlank(exCategory)){
             List<DictModel> dictModelList = sysDictService.queryDictItemsByCode(Constant.CATEGORY_PROJECTTYPE_KEY);
             Map<String,String> exCateGoryAndProjectTypeMap = dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText));
@@ -297,14 +302,14 @@ public class DictUtil {
             if(null != afterIncidentDetailLog.getPrice()) {
                 adviceDetailsVO.setPrice(afterIncidentDetailLog.getPrice().doubleValue());
             }
-            adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpenseCategory());
-            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDoseDay());
-            adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDoseForm());
-            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDoseDay());
-            adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingleDoseNumber());
-            adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingleDoseUnit());
-            adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTakeFrequence());
-            adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUseDay());
+            adviceDetailsVO.setExpense_category(afterIncidentDetailLog.getExpense_category());
+            adviceDetailsVO.setDose_day(afterIncidentDetailLog.getDose_day());
+            adviceDetailsVO.setDose_form(afterIncidentDetailLog.getDose_form());
+
+            adviceDetailsVO.setSingle_dose_number(afterIncidentDetailLog.getSingle_dose_number());
+            adviceDetailsVO.setSingle_dose_unit(afterIncidentDetailLog.getSingle_dose_unit());
+            adviceDetailsVO.setTake_frequence(afterIncidentDetailLog.getTake_frequence());
+            adviceDetailsVO.setUse_day(afterIncidentDetailLog.getUse_day());
             genHospItemsAndSendNotice(adviceDetailsVO, null);
         }
 

+ 12 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/medical/ruleengine/plugin/InsertSqlPlugin.java

@@ -25,16 +25,22 @@ public class InsertSqlPlugin implements PluginInterface {
     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);
+        if(CollectionUtil.isEmpty(factorAttrRelaList) || factorAttrRelaList.size()<2){
+            log.error("要素提取:{} 未配置完整入参", factorEnchance);
             return;
         }
-        Object paramSql = factorEnchance.getEnhanceValue();
+//        Object paramSql = factorEnchance.getEnhanceValue();
+//        if(null == paramSql){
+//            log.error("要素提取:{} 插件未获取到sql配置", factorEnchance);
+//            return;
+//        }
+
+        String paramSql = localMap.get(FactorEnchangeFactory.getParamName(factorAttrRelaList.get(0).getEventAttrId())).toString();
         if(null == paramSql){
             log.error("要素提取:{} 插件未获取到sql配置", factorEnchance);
             return;
         }
-        EventAttr eventAttr = FactorEnchangeFactory.enchanceAttrMap.get(factorAttrRelaList.get(0).getEventAttrId());
+        EventAttr eventAttr = FactorEnchangeFactory.enchanceAttrMap.get(factorAttrRelaList.get(1).getEventAttrId());
         ColumnTypeEnum columnTypeEnum = ColumnTypeEnum.getType(eventAttr.getDispType());
         if(ColumnTypeEnum.ARRAY_MAP == columnTypeEnum){
             List<MapSqlParameterSource> batchArgs = new ArrayList<>();
@@ -46,9 +52,9 @@ public class InsertSqlPlugin implements PluginInterface {
 
                 batchArgs.add(parameters);
             }
-            namedParameterJdbcTemplate.batchUpdate(paramSql.toString(), batchArgs.toArray(new MapSqlParameterSource[batchArgs.size()]));
+            namedParameterJdbcTemplate.batchUpdate(paramSql, batchArgs.toArray(new MapSqlParameterSource[batchArgs.size()]));
         }else{
-            namedParameterJdbcTemplate.update(paramSql.toString(), localMap);
+            namedParameterJdbcTemplate.update(paramSql, localMap);
         }
 
     }