whycxzp
2021-11-02 7bae5d81e8cf185beebfa33d1b6816a46a9c2e93
更新工作流
16个文件已添加
5个文件已修改
1523 ■■■■■ 已修改文件
src/main/java/com/whyc/App.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/constant/AlarmConstant.java 441 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/constant/SuperConstant.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/constant/WorkflowEnum.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/WorkflowController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattalarmDataMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/DeviceAlarmDataMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/WorkflowAlarmMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/WorkflowMainMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/WorkflowAlarm.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/WorkflowLink.java 240 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/WorkflowMain.java 239 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/schedule/CustomTask.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/AlarmDataService.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattalarmDataService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/DeviceAlarmDataService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorkflowAlarmService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/WorkflowMainService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattalarmDataMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/DeviceAlarmDataMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WorkflowMainMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>