src/main/java/com/whyc/App.java
@@ -4,6 +4,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; src/main/java/com/whyc/constant/AlarmConstant.java
New file @@ -0,0 +1,441 @@ package com.whyc.constant; public class AlarmConstant { public static final int Alarm_All =0; //--全部 public static final int Alarm_vol_Online =119001; //--在线电压 public static final int Alarm_vol_Group =119002; //--组端电压 public static final int Alarm_curr_Charge =119003; //--充电电流 public static final int Alarm_curr_Discharge =119004;//--放电电流 public static final int Alarm_vol_Monomer =119005; //--单体电压 public static final int Alarm_tmp_Monomer =119006; //--单体温度 public static final int Alarm_res_Monomer =119007; //--单体内阻 public static final int Alarm_res_Conn =119008; //--连接条阻抗 public final static int ALM_TYPE_DisChargeMonVol_ID = 119009; //--放电过程中落后单体告警 public static final int Alarm_CapAlarm =119010; //--容量告警告警 public static final int Alarm_CapChange =119011; //--容量更换告警 public final static int ALM_TYPE_MONLYVOL_ID = 119012; //漏液电压告警 public final static int ALM_SIGNAL_ID_Null = 0; public final static int ALM_SIGNAL_ID_OnlineVolHigh = 1; public final static int ALM_SIGNAL_ID_OnlineVolLow = 2; public final static int ALM_SIGNAL_ID_GroupVolHigh = 3; public final static int ALM_SIGNAL_ID_GroupVolLow = 4; public final static int ALM_SIGNAL_ID_ChargeCurrHigh = 5; public final static int ALM_SIGNAL_ID_ChargeCurrLow = 6; public final static int ALM_SIGNAL_ID_DisChargeCurrHigh = 7; public final static int ALM_SIGNAL_ID_DisChargeCurrLow = 8; public final static int ALM_SIGNAL_ID_MonVolHigh = 9; public final static int ALM_SIGNAL_ID_MonVolLow = 10; public final static int ALM_SIGNAL_ID_MonTmpHigh = 11; public final static int ALM_SIGNAL_ID_MonTmpLow = 12; public final static int ALM_SIGNAL_ID_MonResHigh = 13; public final static int ALM_SIGNAL_ID_MonResLow = 14; public final static int ALM_SIGNAL_ID_ConnResHigh = 15; public final static int ALM_SIGNAL_ID_ConnResLow = 16; public final static int ALM_SIGNAL_ID_DischargeMonVolHigh = 17; public final static int ALM_SIGNAL_ID_DischargeMonVolLow = 18; public static final int Alarm_IGNAL_ID_CapAlarmLow =19; public static final int Alarm_IGNAL_ID_CapAlarmHigh =20; public static final int Alarm_IGNAL_ID_CapChangeLow =21; public static final int Alarm_IGNAL_ID_CapChangeHigh =22; /**电源告警 */ public static final int acIn1_over_volA =110001; public static final int acIn1_under_volA =110002; public static final int acIn1_less_A =110003; public static final int acIn1_over_volB =110004; public static final int acIn1_under_volB =110005; public static final int acIn1_less_B =110006; public static final int acIn1_over_volC =110007; public static final int acIn1_under_volC =110008; public static final int acIn1_less_C =110009; public static final int acIn1_powerdown =110010; public static final int acIn1_thunder_err =110011; public static final int dcOut_over_vol =110012; public static final int dcOut_under_vol =110013; public static final int loader_fuse =110014; public static final int battgroup1_fuse =110015; public static final int battgroup2_fuse =110016; public static final int acdcMod1_err =110017; public static final int acdcMod2_err =110018; public static final int acdcMod3_err =110019; public static final int acdcMod4_err =110020; public static final int acdcMod5_err =110021; public static final int acdcMod6_err =110022; public static final int acdcMod7_err =110023; public static final int acdcMod8_err =110024; public static final int acdcMod9_err =110025; public static final int acdcMod10_err =110026; public static final int acdcMod11_err =110027; public static final int acdcMod12_err =110028; public static final int acdcMod13_err =110029; public static final int acdcMod14_err =110030; public static final int acdcMod15_err =110031; public static final int acdcMod16_err =110032; public static final int acIn_total_alarm =110033; public static final int dcOut_total_alarm =110034; public static final int acb1_over_currA =110035; public static final int acb1_over_currB =110036; public static final int acb1_over_currC =110037; public static final int acIn_monitorerr =110038; public static final int dcOut_over_curr =110039; public static final int total_alarm =110040; public static final int battgroup1_volLow =110041; public static final int battgroup2_volLow =110042; public static final int battgroup1_down =110043; public static final int battgroup2_down =110044; public static final int battgroup1_overChgCurr =110045; public static final int battgroup2_overChgCurr =110046; public static final int acdcMod1_overVol =110047; public static final int acdcMod2_overVol =110048; public static final int acdcMod3_overVol =110049; public static final int acdcMod4_overVol =110050; public static final int acdcMod5_overVol =110051; public static final int acdcMod6_overVol =110052; public static final int acdcMod7_overVol =110053; public static final int acdcMod8_overVol =110054; public static final int acdcMod9_overVol =110055; public static final int acdcMod10_overVol =110056; public static final int acdcMod11_overVol =110057; public static final int acdcMod12_overVol =110058; public static final int acdcMod13_overVol =110059; public static final int acdcMod14_overVol =110060; public static final int acdcMod15_overVol =110061; public static final int acdcMod16_overVol =110062; public static final int acdcMod1_underVol =110063; public static final int acdcMod2_underVol =110064; public static final int acdcMod3_underVol =110065; public static final int acdcMod4_underVol =110066; public static final int acdcMod5_underVol =110067; public static final int acdcMod6_underVol =110068; public static final int acdcMod7_underVol =110069; public static final int acdcMod8_underVol =110070; public static final int acdcMod9_underVol =110071; public static final int acdcMod10_underVol =110072; public static final int acdcMod11_underVol =110073; public static final int acdcMod12_underVol =110074; public static final int acdcMod13_underVol =110075; public static final int acdcMod14_underVol =110076; public static final int acdcMod15_underVol =110077; public static final int acdcMod16_underVol =110078; public static final int acdcMod1_overCurr =110079; public static final int acdcMod2_overCurr =110080; public static final int acdcMod3_overCurr =110081; public static final int acdcMod4_overCurr =110082; public static final int acdcMod5_overCurr =110083; public static final int acdcMod6_overCurr =110084; public static final int acdcMod7_overCurr =110085; public static final int acdcMod8_overCurr =110086; public static final int acdcMod9_overCurr =110087; public static final int acdcMod10_overCurr =110088; public static final int acdcMod11_overCurr =110089; public static final int acdcMod12_overCurr =110090; public static final int acdcMod13_overCurr =110091; public static final int acdcMod14_overCurr =110092; public static final int acdcMod15_overCurr =110093; public static final int acdcMod16_overCurr =110094; public static final int acdcMod1_acErr =110095; public static final int acdcMod2_acErr =110096; public static final int acdcMod3_acErr =110097; public static final int acdcMod4_acErr =110098; public static final int acdcMod5_acErr =110099; public static final int acdcMod6_acErr =110100; public static final int acdcMod7_acErr =110101; public static final int acdcMod8_acErr =110102; public static final int acdcMod9_acErr =110103; public static final int acdcMod10_acErr =110104; public static final int acdcMod11_acErr =110105; public static final int acdcMod12_acErr =110106; public static final int acdcMod13_acErr =110107; public static final int acdcMod14_acErr =110108; public static final int acdcMod15_acErr =110109; public static final int acdcMod16_acErr =110110; public static final int acIn1_trip =110111; public static final int acIn2_trip =110112; public static final int acIn1_fuse =110113; public static final int acIn2_fuse =110114; public static final int acIn1_unbanlance =110115; public static final int acIn2_unbanlance =110116; public static final int acIn1_freqerr =110117; public static final int acIn2_freqerr =110118; public static final int comm_err =110119; public static final int powerdev_commErr = 110120; public static final int userAcIn1_PowerDown = 110121; public static final int userAcIn2_PowerDown = 110122; public static final int userAcIn1_CommErr = 110123; public static final int userAcIn2_CommErr = 110124; public static final int temp_CommErr1 = 110125; public static final int temp_CommErr2 = 110126; public static final int temp_CommErr3 = 110127; public static final int humi_CommErr1 = 110128; public static final int humi_CommErr2 = 110129; public static final int humi_CommErr3 = 110130; public static final int smoke_Alarm1 = 110131; public static final int smoke_Alarm2 = 110132; public static final int smoke_Alarm3 = 110133; public static final int smoke_CommErr1 = 110134; public static final int smoke_CommErr2 = 110135; public static final int smoke_CommErr3 = 110136; public static String getAlarmName(int type) { String Alarm_name = "未知"; switch(type) //告警名称 { case 1 : Alarm_name = "在线电压高";break; case 2 : Alarm_name = "在线电压低"; break; case 3 : Alarm_name = "组端电压高";break; case 4 : Alarm_name = "组端电压低"; break; case 5 : Alarm_name = "充电电流大";break; case 6 : Alarm_name = "充电电流低"; break; case 7 : Alarm_name = "放电电流大";break; case 8 : Alarm_name = "放电电流低"; break; case 9 : Alarm_name = "单体电压高";break; case 10 : Alarm_name = "单体电压低"; break; case 11 : Alarm_name = "单体温度高";break; case 12 : Alarm_name = "单体温度低";break; case 13 : Alarm_name = "单体内阻高";break; case 14 : Alarm_name = "单体内阻低"; break; case 15 : Alarm_name = "连接条阻抗高";break; case 16 : Alarm_name = "连接条阻抗低"; break; case 17 : Alarm_name = "放电单体电压高";break; case 18 : Alarm_name = "放电单体电压低";break; case 19 : Alarm_name = "容量告警容量低";break; case 20 : Alarm_name = "容量告警容量高";break; case 21 : Alarm_name = "容量更换容量低";break; case 22 : Alarm_name = "容量更换容量高";break; case 23 : Alarm_name = "电池正极漏液";break; case 24 : Alarm_name = "电池负极漏液 ";break; } return Alarm_name; } public static String getAlarmType(int type){ String Alarm_Type = "未知"; switch (type) { case 1: Alarm_Type="一级告警";break; case 2: Alarm_Type="二级告警";break; case 3: Alarm_Type="三级告警";break; case 4: Alarm_Type="四级告警";break; case 5: Alarm_Type="五级告警";break; case 6: Alarm_Type="六级告警";break; case 7: Alarm_Type="七级告警";break; case 8: Alarm_Type="八级告警";break; case 9: Alarm_Type="九级告警";break; case 10: Alarm_Type="十级告警";break; } return Alarm_Type; } public static String getdevName(int type) { String dev_name = "未知"; switch(type) //告警名称 { case 119020 : dev_name = "通讯故障";break; case 618501 : dev_name = "继电器告警";break; case 618502 : dev_name = "通讯告警";break; case 618503 : dev_name = "设备过温告警";break; case 618504 : dev_name = "二极管D1告警";break; case 119028 : dev_name = "设备高温告警";break; case 119032 : dev_name = "设备SD卡故障";break; case 119033 : dev_name = "采集线告警";break; } return dev_name; } /** * 设备alm_type和电池alm_signal_id,电源告警的alarmType获取对应的告警类型 * @param type * @return */ public static String getAllAlarmName(int type) { String Alarm_name = "未知"; switch(type) //告警名称 { //电池告警 case 1 : Alarm_name = "在线电压高";break; case 2 : Alarm_name = "在线电压低"; break; case 3 : Alarm_name = "组端电压高";break; case 4 : Alarm_name = "组端电压低"; break; case 5 : Alarm_name = "充电电流大";break; case 6 : Alarm_name = "充电电流低"; break; case 7 : Alarm_name = "放电电流大";break; case 8 : Alarm_name = "放电电流低"; break; case 9 : Alarm_name = "单体电压高";break; case 10 : Alarm_name = "单体电压低"; break; case 11 : Alarm_name = "单体温度高";break; case 12 : Alarm_name = "单体温度低";break; case 13 : Alarm_name = "单体内阻高";break; case 14 : Alarm_name = "单体内阻低"; break; case 15 : Alarm_name = "连接条阻抗高";break; case 16 : Alarm_name = "连接条阻抗低"; break; case 17 : Alarm_name = "放电单体电压高";break; case 18 : Alarm_name = "放电单体电压低";break; case 19 : Alarm_name = "容量告警容量低";break; case 20 : Alarm_name = "容量告警容量高";break; case 21 : Alarm_name = "容量更换容量低";break; case 22 : Alarm_name = "容量更换容量高";break; case 23 : Alarm_name = "漏液电压高";break; case 24 : Alarm_name = "漏液电压低 ";break; //设备告警 case 119020 : Alarm_name = "通讯故障";break; case 618501 : Alarm_name = "继电器告警";break; case 618502 : Alarm_name = "通讯告警";break; case 618503 : Alarm_name = "设备过温告警";break; case 618504 : Alarm_name = "二极管D1告警";break; case 119028 : Alarm_name = "设备高温告警";break; case 119032 : Alarm_name = "设备SD卡故障";break; case 119033 : Alarm_name = "采集线告警";break; //电源告警 case acIn1_over_volA: Alarm_name ="交流A相过压";break; case acIn1_under_volA: Alarm_name ="交流A相欠压";break; case acIn1_less_A: Alarm_name ="交流A相缺相";break; case acIn1_over_volB: Alarm_name ="交流B相过压";break; case acIn1_under_volB: Alarm_name ="交流B相欠压";break; case acIn1_less_B: Alarm_name ="交流B相缺相";break; case acIn1_over_volC: Alarm_name ="交流C相过压";break; case acIn1_under_volC: Alarm_name ="交流C相欠压";break; case acIn1_less_C: Alarm_name ="交流C相缺相";break; case acIn1_powerdown: Alarm_name ="交流停电";break; case acIn1_thunder_err: Alarm_name ="防雷器故障";break; case dcOut_over_vol: Alarm_name ="直流电压过高";break; case dcOut_under_vol: Alarm_name ="直流电压过低";break; case loader_fuse: Alarm_name ="负载熔断";break; case battgroup1_fuse: Alarm_name ="电池组1熔断";break; case battgroup2_fuse: Alarm_name ="电池组2熔断";break; case acdcMod1_err: Alarm_name ="整流器1总故障";break; case acdcMod2_err: Alarm_name ="整流器2总故障";break; case acdcMod3_err: Alarm_name ="整流器3总故障";break; case acdcMod4_err: Alarm_name ="整流器4总故障";break; case acdcMod5_err: Alarm_name ="整流器5总故障";break; case acdcMod6_err: Alarm_name ="整流器6总故障";break; case acdcMod7_err: Alarm_name ="整流器7总故障";break; case acdcMod8_err: Alarm_name ="整流器8总故障";break; case acdcMod9_err: Alarm_name ="整流器9总故障";break; case acdcMod10_err: Alarm_name ="整流器10总故障";break; case acdcMod11_err: Alarm_name ="整流器11总故障";break; case acdcMod12_err: Alarm_name ="整流器12总故障";break; case acdcMod13_err: Alarm_name ="整流器13总故障";break; case acdcMod14_err: Alarm_name ="整流器14总故障";break; case acdcMod15_err: Alarm_name ="整流器15总故障";break; case acdcMod16_err: Alarm_name ="整流器16总故障";break; case acIn_total_alarm: Alarm_name ="交流总故障";break; case dcOut_total_alarm: Alarm_name ="直流总故障";break; case acb1_over_currA: Alarm_name ="交流A相过流";break; case acb1_over_currB: Alarm_name ="交流B相过流";break; case acb1_over_currC: Alarm_name ="交流C相过流";break; case acIn_monitorerr: Alarm_name ="监控器故障";break; case dcOut_over_curr: Alarm_name ="直流过流";break; case total_alarm: Alarm_name ="开关柜总报警";break; case battgroup1_volLow: Alarm_name ="电池组1电压低";break; case battgroup2_volLow: Alarm_name ="电池组2电压低";break; case battgroup1_down: Alarm_name ="电池组1下电";break; case battgroup2_down: Alarm_name ="电池组2下电";break; case battgroup1_overChgCurr: Alarm_name ="电池组1充电过流";break; case battgroup2_overChgCurr: Alarm_name ="电池组2充电过流";break; case acdcMod1_overVol: Alarm_name ="整流器1过压";break; case acdcMod2_overVol: Alarm_name ="整流器2过压";break; case acdcMod3_overVol: Alarm_name ="整流器3过压";break; case acdcMod4_overVol: Alarm_name ="整流器4过压";break; case acdcMod5_overVol: Alarm_name ="整流器5过压";break; case acdcMod6_overVol: Alarm_name ="整流器6过压";break; case acdcMod7_overVol: Alarm_name ="整流器7过压";break; case acdcMod8_overVol: Alarm_name ="整流器8过压";break; case acdcMod9_overVol: Alarm_name ="整流器9过压";break; case acdcMod10_overVol: Alarm_name ="整流器10过压";break; case acdcMod11_overVol: Alarm_name ="整流器11过压";break; case acdcMod12_overVol: Alarm_name ="整流器12过压";break; case acdcMod13_overVol: Alarm_name ="整流器13过压";break; case acdcMod14_overVol: Alarm_name ="整流器14过压";break; case acdcMod15_overVol: Alarm_name ="整流器15过压";break; case acdcMod16_overVol: Alarm_name ="整流器16过压";break; case acdcMod1_underVol: Alarm_name ="整流器1欠压";break; case acdcMod2_underVol: Alarm_name ="整流器2欠压";break; case acdcMod3_underVol: Alarm_name ="整流器3欠压";break; case acdcMod4_underVol: Alarm_name ="整流器4欠压";break; case acdcMod5_underVol: Alarm_name ="整流器5欠压";break; case acdcMod6_underVol: Alarm_name ="整流器6欠压";break; case acdcMod7_underVol: Alarm_name ="整流器7欠压";break; case acdcMod8_underVol: Alarm_name ="整流器8欠压";break; case acdcMod9_underVol: Alarm_name ="整流器9欠压";break; case acdcMod10_underVol: Alarm_name ="整流器10欠压";break; case acdcMod11_underVol: Alarm_name ="整流器11欠压";break; case acdcMod12_underVol: Alarm_name ="整流器12欠压";break; case acdcMod13_underVol: Alarm_name ="整流器13欠压";break; case acdcMod14_underVol: Alarm_name ="整流器14欠压";break; case acdcMod15_underVol: Alarm_name ="整流器15欠压";break; case acdcMod16_underVol: Alarm_name ="整流器16欠压";break; case acdcMod1_overCurr: Alarm_name ="整流器1过流";break; case acdcMod2_overCurr: Alarm_name ="整流器2过流";break; case acdcMod3_overCurr: Alarm_name ="整流器3过流";break; case acdcMod4_overCurr: Alarm_name ="整流器4过流";break; case acdcMod5_overCurr: Alarm_name ="整流器5过流";break; case acdcMod6_overCurr: Alarm_name ="整流器6过流";break; case acdcMod7_overCurr: Alarm_name ="整流器7过流";break; case acdcMod8_overCurr: Alarm_name ="整流器8过流";break; case acdcMod9_overCurr: Alarm_name ="整流器9过流";break; case acdcMod10_overCurr: Alarm_name ="整流器10过流";break; case acdcMod11_overCurr: Alarm_name ="整流器11过流";break; case acdcMod12_overCurr: Alarm_name ="整流器12过流";break; case acdcMod13_overCurr: Alarm_name ="整流器13过流";break; case acdcMod14_overCurr: Alarm_name ="整流器14过流";break; case acdcMod15_overCurr: Alarm_name ="整流器15过流";break; case acdcMod16_overCurr: Alarm_name ="整流器16过流";break; case acdcMod1_acErr: Alarm_name ="整流器1交流异常";break; case acdcMod2_acErr: Alarm_name ="整流器2交流异常";break; case acdcMod3_acErr: Alarm_name ="整流器3交流异常";break; case acdcMod4_acErr: Alarm_name ="整流器4交流异常";break; case acdcMod5_acErr: Alarm_name ="整流器5交流异常";break; case acdcMod6_acErr: Alarm_name ="整流器6交流异常";break; case acdcMod7_acErr: Alarm_name ="整流器7交流异常";break; case acdcMod8_acErr: Alarm_name ="整流器8交流异常";break; case acdcMod9_acErr: Alarm_name ="整流器9交流异常";break; case acdcMod10_acErr: Alarm_name ="整流器10交流异常";break; case acdcMod11_acErr: Alarm_name ="整流器11交流异常";break; case acdcMod12_acErr: Alarm_name ="整流器12交流异常";break; case acdcMod13_acErr: Alarm_name ="整流器13交流异常";break; case acdcMod14_acErr: Alarm_name ="整流器14交流异常";break; case acdcMod15_acErr: Alarm_name ="整流器15交流异常";break; case acdcMod16_acErr: Alarm_name ="整流器16交流异常";break; case acIn1_trip: Alarm_name ="交流输入1跳闸";break; case acIn2_trip: Alarm_name ="交流输入2跳闸";break; case acIn1_fuse: Alarm_name ="交流输入1熔丝告警";break; case acIn2_fuse: Alarm_name ="交流输入2熔丝告警";break; case acIn1_unbanlance: Alarm_name ="交流输入1三相不平衡";break; case acIn2_unbanlance: Alarm_name ="交流输入2三相不平衡";break; case acIn1_freqerr: Alarm_name ="交流输入1频率异常";break; case acIn2_freqerr: Alarm_name ="交流输入2频率异常";break; case comm_err: Alarm_name ="协转通信故障";break; case powerdev_commErr : Alarm_name = "电源通信故障";break; case userAcIn1_PowerDown : Alarm_name = "交流输入1停电";break; case userAcIn2_PowerDown : Alarm_name = "交流输入2停电";break; case userAcIn1_CommErr : Alarm_name = "交流1采集通信故障";break; case userAcIn2_CommErr : Alarm_name = "交流2采集通信故障";break; case temp_CommErr1 : Alarm_name = "温感1通信故障";break; case temp_CommErr2 : Alarm_name = "温感2通信故障";break; case temp_CommErr3 : Alarm_name = "温感3通信故障";break; case humi_CommErr1 : Alarm_name = "湿感1通信故障";break; case humi_CommErr2 : Alarm_name = "湿感2通信故障";break; case humi_CommErr3 : Alarm_name = "湿感3通信故障";break; case smoke_Alarm1 : Alarm_name = "烟感1报警";break; case smoke_Alarm2 : Alarm_name = "烟感2报警";break; case smoke_Alarm3 : Alarm_name = "烟感3报警";break; case smoke_CommErr1 : Alarm_name = "烟感1通信故障";break; case smoke_CommErr2 : Alarm_name = "烟感2通信故障";break; case smoke_CommErr3 : Alarm_name = "烟感3通信故障";break; default: Alarm_name = "未知告警";break; } return Alarm_name; } } src/main/java/com/whyc/constant/SuperConstant.java
@@ -15,6 +15,13 @@ public static String SALT ="Yin"; public static final String SCHEDULE_PER_SECOND= "* * * * * ?"; public static final String SCHEDULE_PER_MINUTE= "0 * * * * ?"; public static final String SCHEDULE_PER_HOUR= "0 0 * * * ?"; public static final String SCHEDULE_PER_DAY= "0 0 0 * * ?"; public static final String SCHEDULE_PER_WEEK= "0 0 0 */7 * ?"; public static final String SCHEDULE_PER_MONTH= "0 0 0 1 * ?"; src/main/java/com/whyc/constant/WorkflowEnum.java
New file @@ -0,0 +1,55 @@ package com.whyc.constant; /** * 工作流相关枚举 */ public enum WorkflowEnum { /**主表(main)状态*/ MAIN_STATUS_AUTO("自动派单",0), MAIN_STATUS_MANUAL("人工派单",2), MAIN_STATUS_DEAL_1("T1处理中",3), MAIN_STATUS_DEAL_2("T2处理中",4), MAIN_STATUS_FINISH("归档",5), /**处理类型*/ TYPE_DISPATCH("派发",0), TYPE_TRANSFER_DISPATCH("转派",1), TYPE_DELIVER("移交",2), TYPE_ASSIGN("分派",3), TYPE_REJECT("驳回",4), /**节点表(link)状态*/ STATUS_PENDING("待处理",0), STATUS_TAKE("接单",1), STATUS_DEALING("处理中",2), STATUS_WAIT_FOR_REPLY("待回复",3), STATUS_DEAL_WITH_REPLY("处理回复",4), STATUS_FINISH("完成",5), STATUS_WAIT_FOR_APPROVE("待审批",6) ; private String name; private Integer value; WorkflowEnum(String name, Integer value) { this.name = name; this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } } src/main/java/com/whyc/controller/WorkflowController.java
New file @@ -0,0 +1,30 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.WorkflowMain; import com.whyc.service.WorkflowMainService; import com.whyc.util.ActionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequestMapping("workflow") @Api(tags = "工作流") public class WorkflowController { @Autowired private WorkflowMainService mainService; @GetMapping("alarmList") @ApiOperation(value = "系统捕捉到的告警工单") public Response<List<WorkflowMain>> getWorkflowAlarmList(){ Long userId = ActionUtil.getUser().getUId(); return new Response<List<WorkflowMain>>().set(1,mainService.getWorkflowAlarmList(userId)); } } src/main/java/com/whyc/mapper/BattalarmDataMapper.java
@@ -6,6 +6,7 @@ import com.whyc.dto.result.AlarmStaticRes; import com.whyc.pojo.BattalarmData; import com.whyc.pojo.UserInf; import com.whyc.pojo.WorkflowAlarm; import java.util.List; @@ -35,4 +36,7 @@ List<AlarmRes> serchGood(UserInf uinf); List<WorkflowAlarm> getAlarmList(); void updateWorkFlag(List<WorkflowAlarm> battAlarmList); } src/main/java/com/whyc/mapper/DeviceAlarmDataMapper.java
New file @@ -0,0 +1,12 @@ package com.whyc.mapper; import com.whyc.pojo.WorkflowAlarm; import java.util.List; public interface DeviceAlarmDataMapper { public List<WorkflowAlarm> getAlarmList(); void updateWorkFlag(List<WorkflowAlarm> deviceAlarmList); } src/main/java/com/whyc/mapper/WorkflowAlarmMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.WorkflowAlarm; public interface WorkflowAlarmMapper extends CustomMapper<WorkflowAlarm> { } src/main/java/com/whyc/mapper/WorkflowMainMapper.java
New file @@ -0,0 +1,10 @@ package com.whyc.mapper; import com.whyc.pojo.WorkflowMain; import java.util.List; public interface WorkflowMainMapper extends CustomMapper<WorkflowMain>{ List<WorkflowMain> getWorkflowAlarmList(Long userId); } src/main/java/com/whyc/pojo/WorkflowAlarm.java
New file @@ -0,0 +1,141 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.ToString; import org.apache.ibatis.type.Alias; import java.util.Date; /** * 告警 * 工作流,作为工作流的主表的信息补充,明细项 */ @ToString @Alias("WorkflowAlarm") @TableName(schema = "web_site",value = "tb_workflow_alarm") public class WorkflowAlarm { private Integer id; private Integer alarmNum; private Long alarmRecordId; private Integer stationId; private String stationName; private Integer battGroupId; private String battGroupName; private Integer deviceId; private Integer alarmLevel; private String alarmName; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai") private Date alarmTime; private Date createTime; @TableField(exist = false) private Integer userId; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getAlarmNum() { return alarmNum; } public void setAlarmNum(Integer alarmNum) { this.alarmNum = alarmNum; } public Long getAlarmRecordId() { return alarmRecordId; } public void setAlarmRecordId(Long alarmRecordId) { this.alarmRecordId = alarmRecordId; } public Integer getStationId() { return stationId; } public void setStationId(Integer stationId) { this.stationId = stationId; } public String getStationName() { return stationName; } public void setStationName(String stationName) { this.stationName = stationName; } public Integer getBattGroupId() { return battGroupId; } public void setBattGroupId(Integer battGroupId) { this.battGroupId = battGroupId; } public String getBattGroupName() { return battGroupName; } public void setBattGroupName(String battGroupName) { this.battGroupName = battGroupName; } public Integer getDeviceId() { return deviceId; } public void setDeviceId(Integer deviceId) { this.deviceId = deviceId; } public Integer getAlarmLevel() { return alarmLevel; } public void setAlarmLevel(Integer alarmLevel) { this.alarmLevel = alarmLevel; } public String getAlarmName() { return alarmName; } public void setAlarmName(String alarmName) { this.alarmName = alarmName; } public Date getAlarmTime() { return alarmTime; } public void setAlarmTime(Date alarmTime) { this.alarmTime = alarmTime; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } } src/main/java/com/whyc/pojo/WorkflowLink.java
New file @@ -0,0 +1,240 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableName; import lombok.ToString; import java.util.Date; /** * 工作流节点表 */ @ToString @TableName(schema = "web_site",value = "tb_workflow_link") public class WorkflowLink { private Integer id; /**主表id*/ private Integer mainId; /**上级id*/ private Integer parentId; /**处理层级*/ private String processLevel; /**处理层级名称书名*/ private String processLevelName; /**节点生成时间*/ private Date createTime; /**处理人id*/ private Integer dealUserId; /** * 处理类型 * 0:工单派发 * 1:转派(向下层派发) * 2:移交(同级别移交) * 3:分派(同级派发给多人) * 4:驳回 */ private Integer dealType; /**处理描述*/ private String dealDesc; /**处理附件名称*/ private String dealFileName; /**处理附件地址*/ private String dealFileUrl; /**处理图片名称*/ private String dealPicName; /**处理图片地址*/ private String dealPicUrl; /** * 节点状态: * 0:待处理 * 1:接单(备用) * 2:处理中 * 3:待回复 * 4:处理回复 * 5:完成 * 6:待审批 */ private Integer status; /**处理角色*/ private Integer dealRoleId; /**处理完能否归档*/ private Integer dealAndClose; /**驳回原因*/ private String dealRejectReason; /**子任务数*/ private Integer dealTaskNum; /**子任务回复数*/ private Integer dealTaskReplyNum; /**处理建议*/ private String dealReason; /**处理时间*/ private Date dealTime; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getMainId() { return mainId; } public void setMainId(Integer mainId) { this.mainId = mainId; } public Integer getParentId() { return parentId; } public void setParentId(Integer parentId) { this.parentId = parentId; } public String getProcessLevel() { return processLevel; } public void setProcessLevel(String processLevel) { this.processLevel = processLevel; } public String getProcessLevelName() { return processLevelName; } public void setProcessLevelName(String processLevelName) { this.processLevelName = processLevelName; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Integer getDealUserId() { return dealUserId; } public void setDealUserId(Integer dealUserId) { this.dealUserId = dealUserId; } public Integer getDealType() { return dealType; } public void setDealType(Integer dealType) { this.dealType = dealType; } public String getDealDesc() { return dealDesc; } public void setDealDesc(String dealDesc) { this.dealDesc = dealDesc; } public String getDealFileName() { return dealFileName; } public void setDealFileName(String dealFileName) { this.dealFileName = dealFileName; } public String getDealFileUrl() { return dealFileUrl; } public void setDealFileUrl(String dealFileUrl) { this.dealFileUrl = dealFileUrl; } public String getDealPicName() { return dealPicName; } public void setDealPicName(String dealPicName) { this.dealPicName = dealPicName; } public String getDealPicUrl() { return dealPicUrl; } public void setDealPicUrl(String dealPicUrl) { this.dealPicUrl = dealPicUrl; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getDealRoleId() { return dealRoleId; } public void setDealRoleId(Integer dealRoleId) { this.dealRoleId = dealRoleId; } public Integer getDealAndClose() { return dealAndClose; } public void setDealAndClose(Integer dealAndClose) { this.dealAndClose = dealAndClose; } public String getDealRejectReason() { return dealRejectReason; } public void setDealRejectReason(String dealRejectReason) { this.dealRejectReason = dealRejectReason; } public Integer getDealTaskNum() { return dealTaskNum; } public void setDealTaskNum(Integer dealTaskNum) { this.dealTaskNum = dealTaskNum; } public Integer getDealTaskReplyNum() { return dealTaskReplyNum; } public void setDealTaskReplyNum(Integer dealTaskReplyNum) { this.dealTaskReplyNum = dealTaskReplyNum; } public String getDealReason() { return dealReason; } public void setDealReason(String dealReason) { this.dealReason = dealReason; } public Date getDealTime() { return dealTime; } public void setDealTime(Date dealTime) { this.dealTime = dealTime; } } src/main/java/com/whyc/pojo/WorkflowMain.java
New file @@ -0,0 +1,239 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.ToString; import org.apache.ibatis.type.Alias; import java.util.Date; /** * 工作流主表 */ @ToString @Alias("WorkflowMain") @TableName(schema = "web_site",value = "tb_workflow_main") public class WorkflowMain { private Integer id; /** * 工单id,规范:WF-1-20211101-00001 * (Workflow)-(工单类型 告警:1 普通:2)-(年月日)-(当日编号序列) * * */ private String orderId; /**标题*/ private String title; /**任务描述*/ private String taskDesc; /**创建人id*/ private Integer createUserId; /**创建时间*/ private Date createTime; /**任务计划开始时间*/ private Date planBeginTime; /**任务计划结束时间*/ private Date planEndTime; /**任务开始处理时间*/ private Date beginTime; /**任务归档时间*/ private Date endTime; /**任务等级*/ private Integer taskLevel; /**是否及时*/ @TableField("is_in_time") private Integer inTime; /**告警工单拓展:告警工单id*/ private Integer alarmOrderId; @TableField(exist = false) private WorkflowAlarm workflowAlarm; /**工单状态: * 0:自动派单 * 2:手动派单 * 3:工单T1处理中 * 4:工单T2处理中 * 5: 归档 */ private Integer status; /**附件名称*/ private String fileName; /**附件地址*/ private String fileUrl; /**图片名称*/ private String picName; /**图片地址*/ private String picUrl; /**归档意见*/ private String endReason; /**是否自动派单*/ @TableField("is_auto") private Integer auto; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getOrderId() { return orderId; } public void setOrderId(String orderId) { this.orderId = orderId; } public Integer getAlarmOrderId() { return alarmOrderId; } public void setAlarmOrderId(Integer alarmOrderId) { this.alarmOrderId = alarmOrderId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getTaskDesc() { return taskDesc; } public void setTaskDesc(String taskDesc) { this.taskDesc = taskDesc; } public Integer getCreateUserId() { return createUserId; } public void setCreateUserId(Integer createUserId) { this.createUserId = createUserId; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public Date getPlanBeginTime() { return planBeginTime; } public void setPlanBeginTime(Date planBeginTime) { this.planBeginTime = planBeginTime; } public Date getPlanEndTime() { return planEndTime; } public void setPlanEndTime(Date planEndTime) { this.planEndTime = planEndTime; } public Date getBeginTime() { return beginTime; } public void setBeginTime(Date beginTime) { this.beginTime = beginTime; } public Date getEndTime() { return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } public Integer getTaskLevel() { return taskLevel; } public void setTaskLevel(Integer taskLevel) { this.taskLevel = taskLevel; } public Integer getInTime() { return inTime; } public void setInTime(Integer inTime) { this.inTime = inTime; } public WorkflowAlarm getWorkflowAlarm() { return workflowAlarm; } public void setWorkflowAlarm(WorkflowAlarm workflowAlarm) { this.workflowAlarm = workflowAlarm; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getFileUrl() { return fileUrl; } public void setFileUrl(String fileUrl) { this.fileUrl = fileUrl; } public String getPicName() { return picName; } public void setPicName(String picName) { this.picName = picName; } public String getPicUrl() { return picUrl; } public void setPicUrl(String picUrl) { this.picUrl = picUrl; } public String getEndReason() { return endReason; } public void setEndReason(String endReason) { this.endReason = endReason; } public Integer getAuto() { return auto; } public void setAuto(Integer auto) { this.auto = auto; } } src/main/java/com/whyc/schedule/CustomTask.java
New file @@ -0,0 +1,95 @@ package com.whyc.schedule; import com.whyc.constant.AlarmConstant; import com.whyc.constant.SuperConstant; import com.whyc.constant.WorkflowEnum; import com.whyc.pojo.WorkflowAlarm; import com.whyc.pojo.WorkflowMain; import com.whyc.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Schedules; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import sun.awt.image.ImageWatched; import javax.jws.Oneway; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; import java.util.List; /** * 定时任务统一这里开启 */ @Component @EnableScheduling //开启定时任务 @EnableAsync //开启多线程 public class CustomTask { @Autowired private AlarmDataService service; @Autowired private BattalarmDataService battAlarmService; @Autowired private DeviceAlarmDataService deviceAlarmService; @Autowired private WorkflowMainService mainService; @Autowired private WorkflowAlarmService workflowAlarmService; /**根据电池告警和设备告警,生成告警工单和工作流主表记录*/ @Scheduled(cron = SuperConstant.SCHEDULE_PER_MINUTE) @Transactional public void generateWorkflowAlarmAndMain(){ System.out.println("CustomTask:当前任务执行时间为:"+new SimpleDateFormat("HHmmss").format(new Date())); //从电池/设备告警表获取记录 List<WorkflowAlarm> battAlarmList = battAlarmService.getAlarmList(); List<WorkflowAlarm> deviceAlarmList = deviceAlarmService.getAlarmList(); battAlarmList.addAll(deviceAlarmList); List<WorkflowAlarm> alarmList = battAlarmList; alarmList.stream().forEach(alarm->alarm.setAlarmName(AlarmConstant.getAllAlarmName(Integer.parseInt(alarm.getAlarmName())))); //将记录生成到工作流主表和告警工单表中 if(alarmList.size()!=0) { workflowAlarmService.add(alarmList); //example:WF-1-20211101-00001 String ymd = new SimpleDateFormat("yyyyMMdd").format(new Date()); final String[] nextSequence = {mainService.getNextSequence()}; List<WorkflowMain> workflowMainList = new LinkedList<>(); alarmList.stream().forEach(workflowAlarm -> { WorkflowMain temp = new WorkflowMain(); temp.setOrderId("WF-1-" + ymd + "-" + nextSequence[0]); nextSequence[0] = String.format("%05d", Integer.parseInt(nextSequence[0]) + 1); temp.setCreateTime(new Date()); temp.setCreateUserId(workflowAlarm.getUserId()); if(workflowAlarm.getDeviceId()==null){ temp.setTaskDesc("["+workflowAlarm.getStationName()+"]的"+workflowAlarm.getBattGroupName()+"在"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(workflowAlarm.getAlarmTime())+"发生"+workflowAlarm.getAlarmName()); }else{ temp.setTaskDesc("["+workflowAlarm.getStationName()+"]在"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(workflowAlarm.getAlarmTime())+"发生"+workflowAlarm.getAlarmName()); } temp.setAlarmOrderId(workflowAlarm.getId()); temp.setStatus(WorkflowEnum.MAIN_STATUS_MANUAL.getValue()); temp.setAuto(WorkflowEnum.MAIN_STATUS_MANUAL.getValue()); workflowMainList.add(temp); }); mainService.add(workflowMainList); //将原始数据状态设置为已生成工单,即work_flag=1 if (battAlarmList.size() != 0) { battAlarmService.updateWorkFlag(battAlarmList); } if (deviceAlarmList.size() != 0) { deviceAlarmService.updateWorkFlag(deviceAlarmList); } } } } src/main/java/com/whyc/service/AlarmDataService.java
New file @@ -0,0 +1,32 @@ package com.whyc.service; import com.whyc.pojo.WorkflowAlarm; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 告警:电池/设备/电源告警的统一接口 */ @Service public class AlarmDataService { @Autowired private BattalarmDataService battAlarmDataService; @Autowired private DeviceAlarmDataService deviceAlarmDataService; public List<WorkflowAlarm> getAlarmList() { List<WorkflowAlarm> battAlarmList =battAlarmDataService.getAlarmList(); List<WorkflowAlarm> deviceAlarmList =deviceAlarmDataService.getAlarmList(); battAlarmList.addAll(deviceAlarmList); return battAlarmList; } public void updateWorkFlag(List<WorkflowAlarm> deviceAlarmList) { } } src/main/java/com/whyc/service/BattalarmDataService.java
@@ -16,6 +16,7 @@ import com.whyc.mapper.BattalarmDataMapper; import com.whyc.pojo.BattalarmData; import com.whyc.pojo.UserInf; import com.whyc.pojo.WorkflowAlarm; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -212,4 +213,13 @@ List list=mapper.serchGood(uinf); return new Response().set(1,list); } /**获取告警记录信息*/ public List<WorkflowAlarm> getAlarmList() { return mapper.getAlarmList(); } public void updateWorkFlag(List<WorkflowAlarm> battAlarmList) { mapper.updateWorkFlag(battAlarmList); } } src/main/java/com/whyc/service/DeviceAlarmDataService.java
New file @@ -0,0 +1,23 @@ package com.whyc.service; import com.whyc.mapper.DeviceAlarmDataMapper; import com.whyc.pojo.WorkflowAlarm; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class DeviceAlarmDataService { @Resource private DeviceAlarmDataMapper mapper; public List<WorkflowAlarm> getAlarmList() { return mapper.getAlarmList(); } public void updateWorkFlag(List<WorkflowAlarm> deviceAlarmList) { mapper.updateWorkFlag(deviceAlarmList); } } src/main/java/com/whyc/service/WorkflowAlarmService.java
New file @@ -0,0 +1,19 @@ package com.whyc.service; import com.whyc.mapper.WorkflowAlarmMapper; import com.whyc.pojo.WorkflowAlarm; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class WorkflowAlarmService { @Resource private WorkflowAlarmMapper mapper; public void add(List<WorkflowAlarm> alarmList) { mapper.insertBatchSomeColumn(alarmList); } } src/main/java/com/whyc/service/WorkflowMainService.java
New file @@ -0,0 +1,54 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.WorkflowMainMapper; import com.whyc.pojo.WorkflowAlarm; import com.whyc.pojo.WorkflowMain; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @Service public class WorkflowMainService { @Resource private WorkflowMainMapper mapper; public String getNextSequence() { String nextSequence = ""; QueryWrapper<WorkflowMain> wrapper = Wrappers.query(); String orderId = "WF-1-"; String ymd = new SimpleDateFormat("yyyyMMdd").format(new Date()); orderId = orderId+ymd+"-"; wrapper.likeRight("order_id",orderId).orderByDesc("order_id").last(" limit 1"); WorkflowMain workflowMain = mapper.selectOne(wrapper); if(workflowMain == null){ nextSequence="00001"; }else{ String maxSequence = workflowMain.getOrderId().split("-")[3]; int nextSequenceIntValue = Integer.parseInt(maxSequence) + 1; nextSequence = String.format("%05d", nextSequenceIntValue); } return nextSequence; } public static void main(String[] args) { int a = 110; System.out.println(String.format("%05d",a)); } public void add(List<WorkflowMain> workflowMainList) { mapper.insertBatchSomeColumn(workflowMainList); } public List<WorkflowMain> getWorkflowAlarmList(Long userId) { return mapper.getWorkflowAlarmList(userId); } } src/main/resources/mapper/BattalarmDataMapper.xml
@@ -126,6 +126,11 @@ <update id="cancelalarm" parameterType="BattalarmData"> update db_alarm.tb_battalarm_data set record_id=#{recordId},alm_end_time=#{almEndTime},alm_cleared_type=#{almClearedType} where num=#{num} </update> <update id="updateWorkFlag"> <foreach collection="list" item="item" separator=";"> update db_alarm.tb_battalarm_data set work_flag =1 where num = #{item.alarmNum} </foreach> </update> <select id="serchRealTime" parameterType="UserInf" resultType="java.lang.Integer"> select count(num) as number from db_alarm.tb_battalarm_data @@ -154,5 +159,32 @@ and alm_cleared_type=0 GROUP BY battgroupid,alm_id </select> <select id="getAlarmList" resultType="com.whyc.pojo.WorkflowAlarm"> select distinct alarm.num as alarmNum, alarm.Record_Id as alarmRecordId, alarm.BattGroupId as battGroupId, bInf.BattGroupName as battGroupName, bInf.StationName as stationName, alarm.alm_signal_id as alarmName, alarm.alm_level as alarmLevel, alarm.alm_start_time as alarmTime, bjz_bg.StationId as stationId, u.uId as userId from db_alarm.tb_battalarm_data alarm, db_user.tb_user_battgroup_baojigroup_battgroup bjz_bg, db_user.tb_user_battgroup_baojigroup_usr bjz_u, db_user.tb_user_inf u, db_battinf.tb_battinf bInf where alarm.BattGroupId = bjz_bg.BattGroupId and bjz_bg.baoji_group_id = bjz_u.baoji_group_id and bjz_u.uId = u.uId and u.uRole = 0 and alarm.alm_cleared_type = 0 and alarm.alm_is_confirmed = 0 and work_flag = 0 AND bjz_bg.StationId = bInf.StationId </select> </mapper> src/main/resources/mapper/DeviceAlarmDataMapper.xml
New file @@ -0,0 +1,38 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.DeviceAlarmDataMapper" > <update id="updateWorkFlag"> <foreach collection="list" item="item" separator=";"> update db_alarm.tb_devalarm_data set work_flag =1 where num = #{item.alarmNum} </foreach> </update> <select id="getAlarmList" resultType="com.whyc.pojo.WorkflowAlarm"> select distinct alarm.num as alarmNum, alarm.Record_Id as alarmRecordId, alarm.dev_id as deviceId, bInf.StationName as stationName, alarm.alm_type as alarmName, alarm.alm_level as alarmLevel, alarm.alm_start_time as alarmTime, bjz_bg.StationId as stationId, u.uId as userId from db_alarm.tb_devalarm_data alarm, db_battinf.tb_battinf bInf, db_user.tb_user_battgroup_baojigroup_battgroup bjz_bg, db_user.tb_user_battgroup_baojigroup_usr bjz_u, db_user.tb_user_inf u where alarm.dev_id = bInf.FBSDeviceId and bInf.StationId = bjz_bg.StationId and bjz_bg.baoji_group_id = bjz_u.baoji_group_id and bjz_u.uId = u.uId and u.uRole = 0 and alarm.alm_cleared_type = 0 and alarm.alm_is_confirmed = 0 and work_flag = 0 and bjz_bg.StationId = bInf.StationId </select> </mapper> src/main/resources/mapper/WorkflowMainMapper.xml
New file @@ -0,0 +1,34 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.whyc.mapper.WorkflowMainMapper" > <resultMap id="Map_WorkflowMain" type="WorkflowMain"> <id column="id" property="id" /> <result column="order_id" property="orderId"/> <result column="task_desc" property="taskDesc"/> <result column="create_time" property="createTime"/> <result column="status" property="status"/> <result column="is_auto" property="auto"/> <association property="workflowAlarm" javaType="WorkflowAlarm"> <result column="alarm_num" property="alarmNum"/> <result column="alarm_record_id" property="alarmRecordId"/> <result column="station_id" property="stationId"/> <result column="station_name" property="stationName"/> <result column="batt_group_id" property="battGroupId"/> <result column="batt_group_name" property="battGroupName"/> <result column="device_id" property="deviceId"/> <result column="alarm_level" property="alarmLevel"/> <result column="alarm_name" property="alarmName"/> <result column="alarm_time" property="alarmTime"/> </association> </resultMap> <select id="getWorkflowAlarmList" resultMap="Map_WorkflowMain"> select main.*, alarm.* from web_site.tb_workflow_main main inner join web_site.tb_workflow_alarm alarm where main.alarm_order_id = alarm.id </select> </mapper>