南昌市物联网技防平台-后台
Administrator
2021-04-12 36afc3a1f1437b8a3283dc0bf6475e96fded05a7
新增主动报警alarm,健康码,体温,包裹,违禁品导出数据接口
18 files modified
10 files added
1176 ■■■■■ changed files
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java 16 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java 6 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml 98 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/vo/AlarmExcel.java 148 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java 16 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml 62 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java 11 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatExcel.java 51 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/controller/healthcodeController.java 17 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml 69 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java 7 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/vo/HealthcodeExcel.java 52 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java 31 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java 14 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java 222 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/JsonUtils.java 99 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParceLev.java 22 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParcelExcel.java 57 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParcelKindExcel.java 52 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/ListToStringConverter.java 36 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/LocalDateTimeConverter.java 4 ●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/SexConverter.java 31 ●●●●● patch | view | raw | blame | history
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java
@@ -22,19 +22,21 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.aspectj.weaver.patterns.Declare;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.service.IAlarmService;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.alarm.wrapper.AlarmWrapper;
import org.springblade.jfpt.animalheat.service.AnimalHeatService;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.animalheat.vo.AnimalHeatExcel;
import org.springblade.jfpt.healthcode.service.IhealthcodeService;
import org.springblade.jfpt.operation.entity.Operation;
import org.springblade.jfpt.operation.service.IOperationService;
import org.springblade.jfpt.operation.vo.OperationVO;
import org.springblade.jfpt.parcel.service.ParcelService;
@@ -620,4 +622,14 @@
        return list;
    }
    /**
     * 导出主动报警数据表格
     * @param alarmVO 查询条件
     * @param response
     */
    @GetMapping("/export-alarm")
    public void exportAlarm(AlarmVO alarmVO, HttpServletResponse response){
        List<AlarmExcel> list = alarmService.exportAlarm(alarmVO);
        ExcelUtil.export(response, "主动报警数据" + DateUtil.time(), "主动报警数据表", list, AlarmExcel.class);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java
@@ -21,6 +21,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -109,4 +110,9 @@
    List<Map<String, Object>> queryYearAlarm(String deviceNumber,List childList);
    /**
     * 导出主动报警数据表格
     * @param alarmVO 查询条件
     */
    List<AlarmExcel> exportAlarm(@Param("alarm")AlarmVO alarmVO);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
@@ -556,4 +556,102 @@
    </select>
    <!--查询符合条件的数据并导出-->
    <select id="exportAlarm" resultType="org.springblade.jfpt.alarm.vo.AlarmExcel">
        select
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,a.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone
        from sys_alarm a
        LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber
        where 1=1
        <if test="alarm.jtype!=null">
            and a.jtype like concat('%',#{alarm.jtype},'%')
        </if>
        <if test="alarm.deviceNumber!=null">
            and a.deviceNumber like concat('%',#{alarm.deviceNumber},'%')
        </if>
        <if test="alarm.galarmPeople!=null">
            and a.galarmPeople like concat('%',#{alarm.galarmPeople},'%')
        </if>
        <if test="alarm.district!=null">
            and a.district like concat('%',#{alarm.district},'%')
        </if>
        <if test="alarm.province!=null">
            and a.province like concat('%',#{alarm.province},'%')
        </if>
        <if test="alarm.city!=null">
            and a.city like concat('%',#{alarm.city},'%')
        </if>
        <if test="alarm.level!=null">
            and a.level like concat('%',#{alarm.level},'%')
        </if>
        <if test="alarm.waringType!=null">
            and a.waringType like concat('%',#{alarm.waringType},'%')
        </if>
        <if test="alarm.beginTime!=null and alarm.beginTime!=''">
            and a.alarmTime&gt;=#{alarm.beginTime}
        </if>
        <if test="alarm.endTime!=null and alarm.endTime!=''">
            and a.alarmTime&lt;=#{alarm.endTime}
        </if>
        <if test="alarm.timeDesc!=null and alarm.timeDesc!=''">
            <if test="alarm.timeDesc=='30分钟以上'">
                and czTime-alarmTime>1800
            </if>
            <if test="alarm.timeDesc=='10-30分钟'">
                and czTime-alarmTime>600 and czTime-alarmTime &lt;1800
            </if>
            <if test="alarm.timeDesc=='5-10分钟'">
                and czTime-alarmTime>300 and czTime-alarmTime &lt;600
            </if>
            <if test="alarm.timeDesc=='小于5分钟'">
                and czTime-alarmTime>0 and czTime-alarmTime &lt;300
            </if>
            <if test="alarm.timeDesc=='0-2'">
                and hour(alarmTime)>=0 and hour(alarmTime) &lt;2
            </if>
            <if test="alarm.timeDesc=='2-4'">
                and hour(alarmTime)>=2 and hour(alarmTime) &lt;4
            </if>
            <if test="alarm.timeDesc=='4-6'">
                and hour(alarmTime)>=4 and hour(alarmTime) &lt;6
            </if>
            <if test="alarm.timeDesc=='6-8'">
                and hour(alarmTime)>=6 and hour(alarmTime) &lt;8
            </if>
            <if test="alarm.timeDesc=='8-10'">
                and hour(alarmTime)>=8 and hour(alarmTime) &lt;10
            </if>
            <if test="alarm.timeDesc=='10-12'">
                and hour(alarmTime)>=10 and hour(alarmTime) &lt;12
            </if>
            <if test="alarm.timeDesc=='12-14'">
                and hour(alarmTime)>=12 and hour(alarmTime) &lt;14
            </if>
            <if test="alarm.timeDesc=='14-16'">
                and hour(alarmTime)>=14 and hour(alarmTime) &lt;16
            </if>
            <if test="alarm.timeDesc=='16-18'">
                and hour(alarmTime)>=16 and hour(alarmTime) &lt;18
            </if>
            <if test="alarm.timeDesc=='18-20'">
                and hour(alarmTime)>=18 and hour(alarmTime) &lt;20
            </if>
            <if test="alarm.timeDesc=='20-22'">
                and hour(alarmTime)>=20 and hour(alarmTime) &lt;22
            </if>
            <if test="alarm.timeDesc=='22-24'">
                and hour(alarmTime)>=22 and hour(alarmTime) &lt;24
            </if>
        </if>
        and a.waringType IN("紧急求救")
        ORDER BY
        a.jtype ASC,
        a.alarmTime DESC
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -118,4 +119,10 @@
     * @return
     */
    List<Map<String, Object>> queryYearAlarm(String deviceNumber);
    /**
     * 导出主动报警数据表格
     * @param alarmVO 查询条件
     */
    List<AlarmExcel> exportAlarm(AlarmVO alarmVO);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java
@@ -24,6 +24,7 @@
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.mapper.AlarmMapper;
import org.springblade.jfpt.alarm.service.IAlarmService;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.parcel.util.DateUtils;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -377,4 +378,12 @@
        return baseMapper.queryYearAlarm(deviceNumber,childList);
    }
    /**
     * 导出主动报警数据表格
     * @param alarmVO 查询条件
     */
    @Override
    public List<AlarmExcel> exportAlarm(AlarmVO alarmVO) {
        return baseMapper.exportAlarm(alarmVO);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/vo/AlarmExcel.java
New file
@@ -0,0 +1,148 @@
package org.springblade.jfpt.alarm.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class AlarmExcel {
    @ColumnWidth(15)
    @ExcelProperty("警情编号")
    private Integer id;
    @ColumnWidth(20)
    @ExcelProperty("警情类型")
    private String alarmType;
    @ColumnWidth(20)
    @ExcelProperty("接警人姓名")
    private String alarmPeople;
    @ColumnWidth(30)
    @ExcelProperty("报警时间")
    private String alarmTime;
    @ColumnWidth(30)
    @ExcelProperty("接警时间")
    private String jjTime;
    @ColumnWidth(20)
    @ExcelProperty("报警人")
    private String galarmPeople;
    @ColumnWidth(15)
    @ExcelProperty("性别(0:男,1:女)")
    private String sex;
    @ColumnWidth(20)
    @ExcelProperty("联系电话")
    private String phoneNumber;
    @ColumnWidth(40)
    @ExcelProperty("事发地址")
    private String place;
    @ColumnWidth(30)
    @ExcelProperty("报警内容")
    private String content;
    @ColumnWidth(15)
    @ExcelProperty("警情类别")
    private String waringType;
    @ColumnWidth(20)
    @ExcelProperty("设备编号")
    private String deviceNumber;
    @ColumnWidth(30)
    @ExcelProperty("AOI区域编码")
    private String region;
    @ColumnWidth(10)
    @ExcelProperty("行政区编码")
    private String district;
    @ColumnWidth(10)
    @ExcelProperty("省份")
    private String province;
    @ColumnWidth(10)
    @ExcelProperty("地市")
    private String city;
    @ColumnWidth(15)
    @ExcelProperty("接警人ID")
    private String alarmId;
    @ColumnWidth(15)
    @ExcelProperty("警情级别")
    private String level;
    /**
     * 空间坐标
     */
//    @ApiModelProperty(value = "空间坐标")
//    private String coordinate;
    @ColumnWidth(20)
    @ExcelProperty("经度")
    private String jd;
    @ColumnWidth(20)
    @ExcelProperty("纬度")
    private String wd;
    @ColumnWidth(10)
    @ExcelProperty("是否生成警单(0:否 1:是)")
    private String jtype;
    @ColumnWidth(20)
    @ExcelProperty("接警名称")
    private String rname;
    @ColumnWidth(30)
    @ExcelProperty("处置时间")
    private String czTime;
    @ColumnWidth(30)
    @ExcelProperty("备注")
    private String bz;
//    @ColumnWidth(30)
//    @ExcelProperty("报警时间")
//    private String cid;
    @ColumnWidth(30)
    @ExcelProperty("历史视频地址")
    private String vaddress;
    @ColumnWidth(30)
    @ExcelProperty("音频地址")
    private String aaddress;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
@@ -3,17 +3,22 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.jfpt.animalheat.vo.AnimalHeatExcel;
import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
import org.springblade.jfpt.animalheat.service.AnimalHeatService;
import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * 体温监测控制层
@@ -68,4 +73,15 @@
        return R.data(animalHeatService.selWeekDayAnimalStatis());
    }
    /**
     * 导出体温数据列表
     * @param animalHeatVo 条件
     * @param response 返回域
     */
    @GetMapping("/export-animalHeat")
    public void exportAnimalHeat(AnimalHeatVo animalHeatVo,HttpServletResponse response){
        List<AnimalHeatExcel> list = animalHeatService.exportAnimalHeat(animalHeatVo);
        ExcelUtil.export(response, "体温检测数据" + DateUtil.time(), "体温检测数据表", list, AnimalHeatExcel.class);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
import org.springblade.jfpt.animalheat.vo.AnimalHeatExcel;
import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
import org.springblade.jfpt.animalheat.vo.StatisVo;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -76,4 +77,10 @@
     */
    @SqlParser(filter = true)
    List<Integer> selectAnimalTimeData(@Param("conditionVo")ConditionVo conditionVo);
    /**
     * 导出体温数据列表
     * @param animalHeatVo 条件
     */
    List<AnimalHeatExcel> exportAnimalHeat(@Param("animalHeatVo")AnimalHeatVo animalHeatVo);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
@@ -192,4 +192,66 @@
        on
        a.days = b.datetime
    </select>
    <!--导出体温数据列表-->
    <select id="exportAnimalHeat" resultType="org.springblade.jfpt.animalheat.vo.AnimalHeatExcel">
        SELECT * FROM blade_animal_heat
        where 1=1
        <if test="animalHeatVo.type==0">
            and to_days(create_time)=to_days(now())
        </if>
        <if test="animalHeatVo.type==1">
            and YEARWEEK(date_format(create_time,'%Y-%m-%d'),1) = YEARWEEK(now(),1)
        </if>
        <if test="animalHeatVo.type==2">
            and date_format(create_time,'%Y%m') = date_format(now(),'%Y%m')
        </if>
        <if test="animalHeatVo.status!=null">
            and status=#{animalHeatVo.status}
        </if>
        <if test="animalHeatVo.begTime!=null and animalHeatVo.begTime!='' and animalHeatVo.endTime!=null and animalHeatVo.endTime!='' ">
            and date(create_time) between #{animalHeatVo.begTime} and #{animalHeatVo.endTime}
        </if>
        <if test="animalHeatVo.timeDesc!=null and animalHeatVo.timeDesc!=''">
            <if test="animalHeatVo.timeDesc=='0-2'">
                and hour(create_time)>=0 and hour(create_time) &lt;2
            </if>
            <if test="animalHeatVo.timeDesc=='2-4'">
                and hour(create_time)>=2 and hour(create_time) &lt;4
            </if>
            <if test="animalHeatVo.timeDesc=='4-6'">
                and hour(create_time)>=4 and hour(create_time) &lt;6
            </if>
            <if test="animalHeatVo.timeDesc=='6-8'">
                and hour(create_time)>=6 and hour(create_time) &lt;8
            </if>
            <if test="animalHeatVo.timeDesc=='8-10'">
                and hour(create_time)>=8 and hour(create_time) &lt;10
            </if>
            <if test="animalHeatVo.timeDesc=='10-12'">
                and hour(create_time)>=10 and hour(create_time) &lt;12
            </if>
            <if test="animalHeatVo.timeDesc=='12-14'">
                and hour(create_time)>=12 and hour(create_time) &lt;14
            </if>
            <if test="animalHeatVo.timeDesc=='14-16'">
                and hour(create_time)>=14 and hour(create_time) &lt;16
            </if>
            <if test="animalHeatVo.timeDesc=='16-18'">
                and hour(create_time)>=16 and hour(create_time) &lt;18
            </if>
            <if test="animalHeatVo.timeDesc=='18-20'">
                and hour(create_time)>=18 and hour(create_time) &lt;20
            </if>
            <if test="animalHeatVo.timeDesc=='20-22'">
                and hour(create_time)>=20 and hour(create_time) &lt;22
            </if>
            <if test="animalHeatVo.timeDesc=='22-24'">
                and hour(create_time)>=22 and hour(create_time) &lt;24
            </if>
        </if>
        ORDER BY create_time desc
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
@@ -2,7 +2,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
import org.springblade.jfpt.animalheat.vo.AnimalHeatExcel;
import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
import org.springblade.jfpt.animalheat.vo.StatisVo;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -67,4 +70,12 @@
     * @return
     */
    Map<String, Object> selectAnimalTimeData(ConditionVo conditionVo);
    /**
     * 导出体温数据列表
     * @param animalHeatVo 条件
     */
    List<AnimalHeatExcel> exportAnimalHeat(AnimalHeatVo animalHeatVo);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
@@ -4,10 +4,13 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
import org.springblade.jfpt.animalheat.mapper.AnimalHeatMapper;
import org.springblade.jfpt.animalheat.service.AnimalHeatService;
import org.springblade.jfpt.animalheat.util.ImageUtil;
import org.springblade.jfpt.animalheat.vo.AnimalHeatExcel;
import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
import org.springblade.jfpt.animalheat.vo.StatisVo;
import org.springblade.jfpt.healthcode.entity.Healthcode;
@@ -279,4 +282,16 @@
        //返回数据
        return map;
    }
    /**
     * 导出体温数据列表
     * @param animalHeatVo 条件
     */
    @Override
    public List<AnimalHeatExcel> exportAnimalHeat(AnimalHeatVo animalHeatVo) {
        return baseMapper.exportAnimalHeat(animalHeatVo);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/vo/AnimalHeatExcel.java
New file
@@ -0,0 +1,51 @@
package org.springblade.jfpt.animalheat.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.util.Date;
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class AnimalHeatExcel {
    @ColumnWidth(15)
    @ExcelProperty("体温检测编号")
    private Integer id;// bigint(20) NOT NULL COMMENT '主键',
    @ColumnWidth(20)
    @ExcelProperty("设备序列号")
    private String serialno;//varchar(20) 序列号
    @ColumnWidth(20)
    @ExcelProperty("设备IP")
    private String ip;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '设备IP地址',
    @ColumnWidth(50)
    @ExcelProperty("图片URL")
    private String picture;// varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '图片url路径',
//    @TableField("picture_red")
//    private String pictureRed;// varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外图片url路径',
    @ColumnWidth(15)
    @ExcelProperty("体温")
    private Float tempRed;// float(4,2) DEFAULT NULL COMMENT '当前人员的温度',
    @ColumnWidth(40)
    @ExcelProperty("人脸位置二位数组")
    private String personRect;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '人脸位置二位数组,[left,top,right,bottom]',
//    @TableField("person_rect_red")
//    private String personRectRed;// varchar(63) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '红外人脸位置二位数组,[left,top,right,bottom]',
    @ColumnWidth(25)
    @ExcelProperty("创建时间")
    private Date createTime;// datetime DEFAULT NULL COMMENT '创建时间',
    //private Integer status;//状态 1为高温   0为正常   ,以37度为标准,大于37度为高温
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/controller/healthcodeController.java
@@ -23,12 +23,17 @@
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.jfpt.alarm.vo.AlarmExcel;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.healthcode.entity.Healthcode;
import org.springblade.jfpt.healthcode.service.IhealthcodeService;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.healthcode.wrapper.healthcodeWrapper;
import org.springframework.web.bind.annotation.*;
@@ -236,4 +241,16 @@
        return calendar.getTime();
    }
    /**
     * 导出健康码数据表格
     * @param healthcodeVO 查询条件
     * @param response
     */
    @GetMapping("/export-healthcode")
    public void exportHealthcode(HealthcodeVO healthcodeVO, HttpServletResponse response){
        List<HealthcodeExcel> list = ihealthcodeService.exportHealthcode(healthcodeVO);
        ExcelUtil.export(response, "健康码数据" + DateUtil.time(), "健康码数据表", list, HealthcodeExcel.class);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java
@@ -21,6 +21,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.jfpt.healthcode.entity.Healthcode;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -72,4 +73,10 @@
     */
    @SqlParser(filter = true)
    List<Integer> selectHealthcodeTimeData(@Param("conditionVo")ConditionVo conditionVo);
    /**
     * 导出健康码数据表格
     * @param healthcodeVO 查询条件
     */
    List<HealthcodeExcel> exportHealthcode(@Param("healthcodeVO")HealthcodeVO healthcodeVO);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml
@@ -226,4 +226,73 @@
        on
        a.days = b.datetime
    </select>
    <!--导出健康码数据表格-->
    <select id="exportHealthcode" resultType="org.springblade.jfpt.healthcode.vo.HealthcodeExcel">
        SELECT * FROM healthcode
        where 1=1
        <if test="healthcodeVO.status==0">
            and to_days(dtime)=to_days(now())
        </if>
        <if test="healthcodeVO.status==1">
            and YEARWEEK(date_format(dtime,'%Y-%m-%d'),1) = YEARWEEK(now(),1)
        </if>
        <if test="healthcodeVO.status==2">
            and date_format(dtime,'%Y%m') = date_format(now(),'%Y%m')
        </if>
        <if test="healthcodeVO.type!=null">
            and type=#{healthcodeVO.type}
        </if>
        <if test="healthcodeVO.province!=null">
            and province like concat('%',#{healthcodeVO.province},'%')
        </if>
        <if test="healthcodeVO.city!=null">
            and city like concat('%',#{healthcodeVO.city},'%')
        </if>
        <if test="healthcodeVO.district!=null">
            and district like concat('%',#{healthcodeVO.district},'%')
        </if>
        <if test="healthcodeVO.begTime!=null and healthcodeVO.begTime!='' and healthcodeVO.endTime!=null and healthcodeVO.endTime!='' ">
            and date(dtime) between #{healthcodeVO.begTime} and #{healthcodeVO.endTime}
        </if>
        <if test="healthcodeVO.timeDesc!=null and healthcodeVO.timeDesc!=''">
            <if test="healthcodeVO.timeDesc=='0-2'">
                and hour(dtime)>=0 and hour(dtime) &lt;2
            </if>
            <if test="healthcodeVO.timeDesc=='2-4'">
                and hour(dtime)>=2 and hour(dtime) &lt;4
            </if>
            <if test="healthcodeVO.timeDesc=='4-6'">
                and hour(dtime)>=4 and hour(dtime) &lt;6
            </if>
            <if test="healthcodeVO.timeDesc=='6-8'">
                and hour(dtime)>=6 and hour(dtime) &lt;8
            </if>
            <if test="healthcodeVO.timeDesc=='8-10'">
                and hour(dtime)>=8 and hour(dtime) &lt;10
            </if>
            <if test="healthcodeVO.timeDesc=='10-12'">
                and hour(dtime)>=10 and hour(dtime) &lt;12
            </if>
            <if test="healthcodeVO.timeDesc=='12-14'">
                and hour(dtime)>=12 and hour(dtime) &lt;14
            </if>
            <if test="healthcodeVO.timeDesc=='14-16'">
                and hour(dtime)>=14 and hour(dtime) &lt;16
            </if>
            <if test="healthcodeVO.timeDesc=='16-18'">
                and hour(dtime)>=16 and hour(dtime) &lt;18
            </if>
            <if test="healthcodeVO.timeDesc=='18-20'">
                and hour(dtime)>=18 and hour(dtime) &lt;20
            </if>
            <if test="healthcodeVO.timeDesc=='20-22'">
                and hour(dtime)>=20 and hour(dtime) &lt;22
            </if>
            <if test="healthcodeVO.timeDesc=='22-24'">
                and hour(dtime)>=22 and hour(dtime) &lt;24
            </if>
        </if>
        ORDER BY dtime desc
    </select>
</mapper>
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.jfpt.healthcode.entity.Healthcode;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
@@ -70,4 +71,10 @@
     * @return
     */
    Map<String, Object> selectHealthcodeTimeData(ConditionVo conditionVo);
    /**
     * 导出健康码数据表格
     * @param healthcodeVO 查询条件
     */
    List<HealthcodeExcel> exportHealthcode(HealthcodeVO healthcodeVO);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java
@@ -22,6 +22,7 @@
import org.springblade.jfpt.healthcode.entity.Healthcode;
import org.springblade.jfpt.healthcode.mapper.healthcodeMapper;
import org.springblade.jfpt.healthcode.service.IhealthcodeService;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springframework.stereotype.Service;
@@ -203,4 +204,13 @@
        //返回数据
        return map;
    }
    /**
     * 导出健康码数据表格
     * @param healthcodeVO 查询条件
     */
    @Override
    public List<HealthcodeExcel> exportHealthcode(HealthcodeVO healthcodeVO) {
        return baseMapper.exportHealthcode(healthcodeVO);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/vo/HealthcodeExcel.java
New file
@@ -0,0 +1,52 @@
package org.springblade.jfpt.healthcode.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class HealthcodeExcel {
    @ColumnWidth(15)
    @ExcelProperty("健康码编号")
    private Integer id;
    @ColumnWidth(15)
    @ExcelProperty("类型(1:绿色 2:黄色 3:红色)")
    private String type;
    @ColumnWidth(15)
    @ExcelProperty("性别")
    private String sex;
    @ColumnWidth(20)
    @ExcelProperty("省")
    private String province;
    @ColumnWidth(20)
    @ExcelProperty("市")
    private String city;
    @ColumnWidth(20)
    @ExcelProperty("县区")
    private String district;
    @ColumnWidth(30)
    @ExcelProperty("创建时间")
    private String dtime;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java
@@ -1,13 +1,20 @@
package org.springblade.jfpt.parcel.controller;
import lombok.AllArgsConstructor;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
import org.springblade.jfpt.healthcode.vo.HealthcodeExcel;
import org.springblade.jfpt.healthcode.vo.HealthcodeVO;
import org.springblade.jfpt.parcel.service.ParcelService;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springblade.jfpt.parcel.vo.ParcelExcel;
import org.springblade.jfpt.parcel.vo.ParcelKindExcel;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * @title 包裹控制层
@@ -94,4 +101,28 @@
    }
    /**
     * 导出包裹数据表格
     * @param conditionVo 查询条件
     * @param response
     */
    @GetMapping("/export-parcel")
    public void exportParcel(ConditionVo conditionVo, HttpServletResponse response){
        List<ParcelExcel> list = parcelService.exportParcel(conditionVo);
        ExcelUtil.export(response, "包裹数据" + DateUtil.time(), "包裹数据表", list, ParcelExcel.class);
    }
    /**
     * 导出违禁品数据表格
     * @param conditionVo 查询条件
     * @param response
     */
    @GetMapping("/export-parcelKind")
    public void exportParcelKind(ConditionVo conditionVo, HttpServletResponse response){
        List<ParcelKindExcel> list = parcelService.exportParcelKind(conditionVo);
        System.out.println("list = " + list);
        ExcelUtil.export(response, "违禁品数据" + DateUtil.time(), "违禁品数据表", list, ParcelKindExcel.class);
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -1,6 +1,8 @@
package org.springblade.jfpt.parcel.service;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springblade.jfpt.parcel.vo.ParcelExcel;
import org.springblade.jfpt.parcel.vo.ParcelKindExcel;
import java.util.List;
import java.util.Map;
@@ -71,4 +73,16 @@
     * @return
     */
    List<Integer> selParcelTimeDis(ConditionVo conditionVo);
    /**
     * 导出包裹数据表格
     * @param conditionVo 查询条件
     */
    List<ParcelExcel> exportParcel(ConditionVo conditionVo);
    /**
     * 导出违禁品数据表格
     * @param conditionVo 查询条件
     */
    List<ParcelKindExcel> exportParcelKind(ConditionVo conditionVo);
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -3,18 +3,19 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.JacksonUtils;
import io.swagger.models.auth.In;
import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
import org.springblade.jfpt.animalheat.util.ImageUtil;
import org.springblade.jfpt.parcel.service.ParcelService;
import org.springblade.jfpt.parcel.util.DateUtils;
import org.springblade.jfpt.parcel.util.HttpClientUtils;
import org.springblade.jfpt.parcel.util.JacksonUtil;
import org.springblade.jfpt.parcel.util.PageList;
import org.springblade.jfpt.parcel.util.*;
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springblade.jfpt.parcel.vo.ParcelExcel;
import org.springblade.jfpt.parcel.vo.ParcelKindExcel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Array;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -352,6 +353,10 @@
        map.put("imgKey",imgKey);
        //执行http远程调用
        String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
        System.out.println("s = " + s);
        if (null==s || s=="" || s.isEmpty()){
            return null;
        }
        //获取图片的长宽
        Map<String, Object> imageMap = ImageUtil.getBase64ImageWidthAndHeight(s);
        //封装数据
@@ -369,28 +374,7 @@
    public Object getParcelDetailPage(ConditionVo conditionVo) {
        Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result");
        if (null!=result) {
//            List<Object> dataList = JSONArray.parseArray(result.get("data").toString());
//            System.out.println("dataList = " + dataList);
//            //遍历集合
//            for (Object data:dataList) {
//                Map<String,Object> parcelData =(Map<String,Object>)data;
//                String imgUrl = parcelData.get("imgUrl").toString();
//                //查询图片  PARCEL_PRE_URL
//                //截取图片imgKey信息
//                String[] imgKeys = imgUrl.split("=", imgUrl.length());
//                String imgKey = imgKeys[1];
//                //封装成map对象
//                HashMap<String, String> map = new HashMap<>();
//                map.put("imgKey",imgKey);
//                //执行http远程调用
//                String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
//                //封装数据
//                if (null!=s && s!="") {
//                    parcelData.put("imgUrl", s);
//                }
//            }
            return JSONObject.parse(result.toString());
        }
        return null;
    }
@@ -696,4 +680,192 @@
        //返回数据
        return list;
    }
    /**
     * 导出包裹数据表格
     * @param conditionVo 查询条件
     */
    @Override
    public List<ParcelExcel> exportParcel(ConditionVo conditionVo) {
        ArrayList<List<ParcelExcel>> parcelExcelList = new ArrayList<>();
        //设置页码数
        conditionVo.setCurrentPage(1);
        conditionVo.setPageSize(100);
        //获取数据
        Map<String,Object> result =(Map<String,Object>)getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result");
        if (null!=result) {
            String data = result.get("data").toString();
            List<ParcelExcel> dataList = JsonUtils.jsonToList(data, ParcelExcel.class);
            parcelExcelList.add(dataList);
            //取第一次获取到的数据总数,每次取100条,多于100分批次取
            int totalSize = Integer.parseInt(result.get("totalSize").toString());
            int i = totalSize/100+1;
            if (i>1){
                for (int j=1;j<i;j++) {
                    conditionVo.setCurrentPage(j+1);
                    //获取数据
                    Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result");
                    String data0 = result0.get("data").toString();
                    List<ParcelExcel> dataLists = JsonUtils.jsonToList(data0, ParcelExcel.class);
                    parcelExcelList.add(dataLists);
                }
            }
            //合并集合
            List<ParcelExcel> parcelExcels = parcelExcelList.stream().flatMap(List::stream).collect(Collectors.toList());
            System.out.println("parcelExcels = " + parcelExcels);
            return parcelExcels;
        }
        return null;
    }
    /**
     * 导出违禁品数据表格
     * @param conditionVo 查询条件
     */
    @Override
    public List<ParcelKindExcel> exportParcelKind(ConditionVo conditionVo) {
        System.out.println("conditionVo = " + conditionVo);
        List<List<ParcelKindExcel>> parcelKindExcelList = new ArrayList<>();
        List<ParcelKindExcel> list = new ArrayList<>();
        if(null!=conditionVo.getTimeDesc() && conditionVo.getTimeDesc()!="" && !conditionVo.getTimeDesc().equals("undefined") ){
            //设置页码数
            ConditionVo vo = new ConditionVo();
            vo.setCurrentPage(1);
            vo.setPageSize(100);
            vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult());
            vo.setStartTime(conditionVo.getStartTime());
            vo.setEndTime(conditionVo.getEndTime());
            Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
            if (null!=result){
                String data = result.get("data").toString();
                List<ParcelKindExcel> dataList = JsonUtils.jsonToList(data, ParcelKindExcel.class);
                parcelKindExcelList.add(dataList);
                //取第一次获取到的数据总数,每次取100条,多于100分批次取
                int totalSize = Integer.parseInt(result.get("totalSize").toString());
                int i = totalSize/100+1;
                if (i>1){
                    for (int j=1;j<i;j++) {
                        vo.setCurrentPage(j+1);
                        //获取数据
                        Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
                        String data0 = result0.get("data").toString();
                        List<ParcelKindExcel> kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class);
                        parcelKindExcelList.add(kindExcels);
                    }
                }
                //合并集合
                List<ParcelKindExcel> collect = parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList());
                //选出符合条件的数据
                list = TimeDisDataExcel(conditionVo,collect);
                //返回数据
                return list;
            }
        }else {
            conditionVo.setCurrentPage(1);
            conditionVo.setPageSize(100);
            Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
            //获取违禁品数据
            if (null!=result) {
                String data = result.get("data").toString();
                List<ParcelKindExcel> dataList = JsonUtils.jsonToList(data, ParcelKindExcel.class);
                parcelKindExcelList.add(dataList);
                //取第一次获取到的数据总数,每次取100条,多于100分批次取
                int totalSize = Integer.parseInt(result.get("totalSize").toString());
                int i = totalSize/100+1;
                if (i>1){
                    for (int j=1;j<i;j++) {
                        conditionVo.setCurrentPage(j+1);
                        //获取数据
                        Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
                        String data0 = result0.get("data").toString();
                        List<ParcelKindExcel> kindExcels = JsonUtils.jsonToList(data0, ParcelKindExcel.class);
                        parcelKindExcelList.add(kindExcels);
                    }
                }
                //合并集合并返回
                return parcelKindExcelList.stream().flatMap(List::stream).collect(Collectors.toList());
            }
        }
        return null;
    }
    /**
     * 表格导出帅选数据
     * @param conditionVo
     * @param collect
     * @return
     */
    private List<ParcelKindExcel> TimeDisDataExcel(ConditionVo conditionVo, List<ParcelKindExcel> collect) {
        List<ParcelKindExcel> list = new ArrayList<>();
        //遍历集合,选出符合条件的
        for (ParcelKindExcel parcelKindExcel:collect) {
            try {
                long time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parcelKindExcel.getCreateTime()).getHours();
                if (conditionVo.getTimeDesc().equals("0-2")){
                    if (time>=0 && time<2){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("2-4")){
                    if (time>=2 && time<4){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("4-6")){
                    if (time>=4 && time<6){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("6-8")){
                    if (time>=6 && time<8){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("8-10")){
                    if (time>=8 && time<10){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("10-12")){
                    if (time>=10 && time<12){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("12-14")){
                    if (time>=12 && time<14){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("14-16")){
                    if (time>=14 && time<16){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("16-18")){
                    if (time>=16 && time<18){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("18-20")){
                    if (time>=18 && time<20){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("20-22")){
                    if (time>=20 && time<22){
                        list.add(parcelKindExcel);
                    }
                }
                if (conditionVo.getTimeDesc().equals("22-24")){
                    if (time>=22 && time<24){
                        list.add(parcelKindExcel);
                    }
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return list;
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/JsonUtils.java
New file
@@ -0,0 +1,99 @@
package org.springblade.jfpt.parcel.util;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUtils {
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
    /**
     * 将对象转换成json字符串。
     * <p>Title: pojoToJson</p>
     * <p>Description: </p>
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType 对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json数据转换成pojo对象list
     * <p>Title: jsonToList</p>
     * <p>Description: </p>
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    public static Map<String, Object> objectToMap(Object obj) throws Exception {
        if(obj == null)
            return null;
        Map<String, Object> map = new HashMap<String, Object>();
        BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (PropertyDescriptor property : propertyDescriptors) {
            String key = property.getName();
            if (key.compareToIgnoreCase("class") == 0) {
                continue;
            }
            Method getter = property.getReadMethod();
            Object value = getter!=null ? getter.invoke(obj) : null;
            map.put(key, value);
        }
        return map;
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParceLev.java
New file
@@ -0,0 +1,22 @@
package org.springblade.jfpt.parcel.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
@Data
@AllArgsConstructor
public class ParceLev {
    private String objName;
    private String objCode;
    private String levName;
    private List<String> coords;
    public ParceLev() {
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParcelExcel.java
New file
@@ -0,0 +1,57 @@
package org.springblade.jfpt.parcel.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import org.springblade.jfpt.report.converter.ListToStringConverter;
import java.util.List;
/**
 * 包裹excel导出配置
 */
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class ParcelExcel {
    @ColumnWidth(20)
    @ExcelProperty("安检机所在地")
    private String checkMachinePosition;
    @ColumnWidth(20)
    @ExcelProperty("安检机编号")
    private String checkMachineCode;
    @ColumnWidth(30)
    @ExcelProperty("安检机名称")
    private String checkMachineName;
    @ColumnWidth(40)
    @ExcelProperty("违禁包裹物品")
    private String decisioDiagramResultDetails;
    @ColumnWidth(30)
    @ExcelProperty("包裹ID")
    private String packageId;
    @ColumnWidth(50)
    @ExcelProperty("图片url")
    private String imgUrl;
    @ColumnWidth(30)
    @ExcelProperty("安检机时间")
    private String samplingTime;
    @ColumnWidth(20)
    @ExcelProperty("是否识别违禁, 1-违禁 0-非违禁")
    private String mechineMark;
    @ColumnWidth(50)
    @ExcelProperty(value = "识别违禁品的坐标",converter = ListToStringConverter.class)
    private List<ParceLev> coordsDetailVoList;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/vo/ParcelKindExcel.java
New file
@@ -0,0 +1,52 @@
package org.springblade.jfpt.parcel.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import org.springblade.jfpt.report.converter.ListToStringConverter;
import java.util.List;
/**
 * 违禁品数据导出
 */
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class ParcelKindExcel {
    @ColumnWidth(25)
    @ExcelProperty("违禁包裹物品代码")
    private String objCode;
    @ColumnWidth(25)
    @ExcelProperty("违禁包裹物品名称")
    private String objName;
    @ColumnWidth(15)
    @ExcelProperty("违禁品级别")
    private String levName;
    @ColumnWidth(30)
    @ExcelProperty(value = "违禁品坐标,list格式",converter = ListToStringConverter.class)
    private List<String> coords;
    @ColumnWidth(30)
    @ExcelProperty("包裹ID")
    private String packageId;
    @ColumnWidth(50)
    @ExcelProperty("图片url")
    private String imgUrl;
    @ColumnWidth(30)
    @ExcelProperty("过包裹时间")
    private String createTime;
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/ListToStringConverter.java
New file
@@ -0,0 +1,36 @@
package org.springblade.jfpt.report.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import org.springframework.stereotype.Component;
/**
 * 用于list 装换为 String
 * @param <T>
 */
@Component
public class  ListToStringConverter <T> implements Converter<T> {
    @Override
    public Class supportJavaTypeKey() {
        return null;
    }
    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return null;
    }
    @Override
    public T convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return null;
    }
    @Override
    public CellData convertToExcelData(T t, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return new CellData(t.toString());
    }
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/LocalDateTimeConverter.java
New file
@@ -0,0 +1,4 @@
package org.springblade.jfpt.report.converter;
public class LocalDateTimeConverter {
}
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/report/converter/SexConverter.java
New file
@@ -0,0 +1,31 @@
package org.springblade.jfpt.report.converter;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import org.springframework.stereotype.Component;
@Component
public class SexConverter implements Converter<Integer> {
    @Override
    public Class supportJavaTypeKey() {
        return null;
    }
    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return null;
    }
    @Override
    public Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return null;
    }
    @Override
    public CellData convertToExcelData(Integer integer, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return new CellData(integer.equals(1) ? "女":"男");
    }
}