Browse Source

Merge remote-tracking branch 'origin/master'

yanliming 4 years ago
parent
commit
524e818194

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/dao/PersonDeviceLogDAO.java

@@ -38,7 +38,7 @@ public interface PersonDeviceLogDAO {
 
 
     List<PersonDeviceLog> findAllPersonLogByDeviceNo(@Param("startTime") Date startTime, @Param("endTime") Date endTime,
-                                                                 @Param("deviceNoList") List<String> deviceNoList);
+                                                                 @Param("deviceNoList") String deviceNoList);
 
     List<PersonDeviceLog> findAllPersonLogByCompanyIdAndDeviceNo(@Param("startTime") Date startTime, @Param("endTime") Date endTime,
                                                                  @Param("companyList") List<CompanyInfo> companyList,

+ 6 - 0
common/src/main/java/com/jpsoft/shinestar/modules/base/entity/PersonInfo.java

@@ -245,4 +245,10 @@ public class PersonInfo implements Serializable {
 
     @ApiModelProperty(value = "车牌号")
     private String carNum;
+
+    @ApiModelProperty(value = "后勤人员类别")
+    private String hqStatus;
+
+    @ApiModelProperty(value = "后勤排序号")
+    private String hqSortNo;
 }

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/PersonDeviceLogService.java

@@ -41,7 +41,7 @@ public interface PersonDeviceLogService {
     Page<PersonDeviceLog> findVisitorLogByDeviceNoList(DateTime beginOfDay, DateTime endOfDay, List<String> deviceNoList, int pageIndex, int pageSize);
     Page<PersonDeviceLog> findVisitorLogByDeviceNoList(DateTime beginOfDay, DateTime endOfDay, List<String> deviceNoList, int pageIndex, int pageSize, String filter, BigDecimal max);
 
-    Page<PersonDeviceLog> findAllPersonLogByDeviceNo(DateTime beginOfDay, DateTime endOfDay, List<String> deviceList, int pageIndex, int pageSize);
+    Page<PersonDeviceLog> findAllPersonLogByDeviceNo(DateTime beginOfDay, DateTime endOfDay, String deviceList, int pageIndex, int pageSize);
 
     Page<PersonDeviceLog> findAllPersonLogByCompanyListAndDeviceNoList(DateTime beginOfDay, DateTime endOfDay, List<CompanyInfo> companyList, List<String> deviceList, int pageIndex, int pageSize);
     Page<PersonDeviceLog> findLastTeacherLogByCompanyList(Date beginOfDay, Date endOfDay, List<CompanyInfo> list, int pageIndex, int pageSize);

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/PersonDeviceLogServiceImpl.java

@@ -248,7 +248,7 @@ public class PersonDeviceLogServiceImpl implements PersonDeviceLogService {
 
 
     @Override
-    public Page<PersonDeviceLog> findAllPersonLogByDeviceNo(DateTime beginOfDay, DateTime endOfDay,List<String> deviceNoList,int pageIndex, int pageSize) {
+    public Page<PersonDeviceLog> findAllPersonLogByDeviceNo(DateTime beginOfDay, DateTime endOfDay,String deviceNoList,int pageIndex, int pageSize) {
         Page<PersonDeviceLog> page = PageHelper.startPage(pageIndex, pageSize).doSelectPage(() -> {
             personDeviceLogDAO.findAllPersonLogByDeviceNo(beginOfDay,endOfDay,deviceNoList);
         });

+ 4 - 0
common/src/main/java/com/jpsoft/shinestar/modules/business/dto/PersonInfoMonthWSADTO.java

@@ -37,5 +37,9 @@ public class PersonInfoMonthWSADTO {
     private BigDecimal businessTripNum;
     @ApiModelProperty(value = "请假天数")
     private BigDecimal leaveNum;
+    @ApiModelProperty(value = "休息天数")
+    private BigDecimal restDays;
+    @ApiModelProperty(value = "企业全称,为空则保存企业名称")
+    private String companyName;
 
 }

+ 3 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/entity/WorkScheduleAttendance.java

@@ -112,7 +112,6 @@ public class WorkScheduleAttendance {
     @ApiModelProperty(value = "班次编号")
     private String workShiftNumber;
 
-
     @ApiModelProperty(value = "补卡对应人员id")
     private String supplementWorkPersonId;
 
@@ -125,6 +124,9 @@ public class WorkScheduleAttendance {
     @ApiModelProperty(value = "加班人员表主键")
     private String workOverPersonId;
 
+    @ApiModelProperty(value = "与考勤时间相差分钟")
+    private BigDecimal offsetMinute;
+
     @Transient
     private WorkOverPerson workOverPerson;
 }

+ 31 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/WorkScheduleAttendanceServiceImpl.java

@@ -19,12 +19,13 @@ import com.jpsoft.shinestar.modules.common.utils.StringUtils;
 import com.jpsoft.shinestar.modules.common.utils.WechatMessageUtil;
 import com.jpsoft.shinestar.modules.sys.entity.DataDictionary;
 import com.jpsoft.shinestar.modules.sys.service.DataDictionaryService;
-import com.sun.corba.se.spi.orbutil.threadpool.Work;
 import lombok.extern.slf4j.Slf4j;
 import org.joda.time.DateTime;
 import org.joda.time.Days;
 import org.joda.time.Hours;
 import org.joda.time.Minutes;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.ValueOperations;
@@ -611,6 +612,33 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
     private void saveWorkAttendance(Long personId, BigDecimal temperature, Date recordTime, String attendanceDate,
                                     String personScheduleId, String workShiftId, String result, Integer minutes,
                                     String classify, String workStatus, WorkOverPerson workOverPerson) {
+        long offsetMinute = 0;
+
+        try {
+            WorkShiftInfo workShiftInfo = workShiftInfoService.get(workShiftId);
+
+            if (workShiftInfo != null) {
+                DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
+
+                if ("1".equals(classify)) {
+                    //上班
+                    DateTime workTime = DateTime.parse(attendanceDate + " " + workShiftInfo.getWorkTime(), formatter);
+                    workTime = workTime.plusDays(workShiftInfo.getWorkDayType());
+
+                    offsetMinute = Minutes.minutesBetween(new DateTime(recordTime), workTime).getMinutes();
+                } else {
+                    //下班
+                    DateTime closingTime = DateTime.parse(attendanceDate + " " + workShiftInfo.getClosingTime(), formatter);
+                    closingTime = closingTime.plusDays(workShiftInfo.getClosingDayType());
+
+                    offsetMinute = Minutes.minutesBetween(new DateTime(recordTime), closingTime).getMinutes();
+                }
+            }
+        }
+        catch (Exception ex){
+            log.error(ex.getMessage(),ex);
+        }
+
         WorkScheduleAttendance workEndAttendance = new WorkScheduleAttendance();
 
         List<WorkScheduleAttendance> attendanceList = workScheduleAttendanceDAO.findByPersonScheduleIdAndClassify(personScheduleId, workShiftId, classify);
@@ -629,6 +657,7 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
             workEndAttendance.setTemperature(temperature);
             workEndAttendance.setRecordTime(recordTime);
             workEndAttendance.setCreateTime(new Date());
+            workEndAttendance.setOffsetMinute(new BigDecimal(offsetMinute));
 
             if(workOverPerson!=null){
                 workEndAttendance.setWorkOverPersonId(workOverPerson.getId());
@@ -645,6 +674,7 @@ public class WorkScheduleAttendanceServiceImpl implements WorkScheduleAttendance
             workEndAttendance.setTemperature(temperature);
             workEndAttendance.setRecordTime(recordTime);
             workEndAttendance.setUpdateTime(new Date());
+            workEndAttendance.setOffsetMinute(new BigDecimal(offsetMinute));
 
             if(workOverPerson!=null){
                 workEndAttendance.setWorkOverPersonId(workOverPerson.getId());

+ 5 - 5
common/src/main/resources/mapper/base/PersonDeviceLog.xml

@@ -355,14 +355,14 @@
         <![CDATA[
             select person_id,face_Image,max(record_Time) as record_Time from base_person_device_log
             where 1=1
-            and record_time >= #{startTime}
-            and record_time <= #{endTime}
             and person_id!=0
             and del_flag = 0
+            and record_time >= #{startTime}
+            and record_time <= #{endTime}
+
+            and device_no=#{deviceNoList}
         ]]>
-        <foreach collection="deviceNoList" index="index" item="item" open="and device_no in(" separator="," close=")">
-            #{item}
-        </foreach>
+
         group by person_id
         order by record_time desc
 

+ 12 - 8
common/src/main/resources/mapper/base/PersonInfo.xml

@@ -43,7 +43,8 @@
         <result property="workStatus" column="work_status"/>
         <result property="jobNumber" column="job_number"/>
         <result property="carNum" column="car_num"/>
-
+        <result property="hqSortNo" column="hq_sort_no"/>
+        <result property="hqStatus" column="hq_status"/>
     </resultMap>
     <insert id="insert" parameterType="com.jpsoft.shinestar.modules.base.entity.PersonInfo">
         <selectKey resultType="long" keyColumn="id_" keyProperty="id">
@@ -55,7 +56,7 @@
 	    app_enabled,password_enabled,guest_enabled,position1_,position2_,
 	    position3_,position4_,position5_,face_image_url,del_flag,
 	    create_by,create_time,update_by,update_time,popedom_,wechat_notice_enabled,allow_view_local,health_ertificate_url,is_sync,sex_,
-	    park_id,work_status,job_number,car_num)
+	    park_id,work_status,job_number,car_num,hq_sort_no,hq_status)
 		values
 		(
             #{companyId,jdbcType=VARCHAR}
@@ -90,7 +91,8 @@
             ,#{workStatus,jdbcType=VARCHAR}
             ,#{jobNumber,jdbcType=VARCHAR}
             ,#{carNum,jdbcType=VARCHAR}
-
+            ,#{hqSortNo,jdbcType= NUMERIC }
+            ,#{hqStatus,jdbcType=VARCHAR}
 		)
 	]]>
     </insert>
@@ -199,6 +201,12 @@
             <if test="carNum != null">
                 car_num = #{carNum,jdbcType=VARCHAR}
             </if>
+            <if test="isHq != null">
+                is_hq = #{isHq,jdbcType=NUMERIC}
+            </if>
+            <if test="hqStatus != null">
+                hq_status = #{hqStatus,jdbcType=VARCHAR}
+            </if>
         </set>
         where id_=#{id}
     </update>
@@ -409,11 +417,7 @@
                 </if>
             </trim>
             <if test="searchParams.hqStatus != null">
-                and a.id_ in(
-                    select person_id from base_hq_person
-                    where find_in_set(hq_status,#{searchParams.hqStatus})>0
-                    and del_flag=0
-                )
+                and a.hq_status = #{searchParams.hqStatus}
             </if>
             <if test="searchParams.querHq != null">
                 and a.id_ in(

+ 6 - 1
common/src/main/resources/mapper/business/WorkScheduleAttendance.xml

@@ -26,6 +26,7 @@
         <result property="lateLeaveMinute" column="late_leave_minute"/>
         <result property="coefficientDays" column="coefficient_days"/>
         <result property="workOverPersonId" column="work_over_person_id"/>
+        <result property="offsetMinute" column="offset_minute"/>
     </resultMap>
     <insert id="insert" parameterType="com.jpsoft.shinestar.modules.business.entity.WorkScheduleAttendance">
         <!--
@@ -37,7 +38,7 @@
 		insert into business_work_schedule_attendance
 	    (id_,person_schedule_id,work_shift_id,attendance_date,classify_,person_id,result_,temperature_,
 	    record_time,create_by,create_time,update_by,update_time,del_flag,work_status,remark_,supplement_work_person_id,
-	    late_leave_minute,work_over_person_id)
+	    late_leave_minute,work_over_person_id,offset_minute)
 		values
 		(
             #{id,jdbcType=VARCHAR}
@@ -59,6 +60,7 @@
             ,#{supplementWorkPersonId,jdbcType=VARCHAR}
             ,#{lateLeaveMinute,jdbcType=NUMERIC}
             ,#{workOverPersonId,jdbcType=VARCHAR}
+            ,#{offsetMinute,jdbcType=NUMERIC}
 		)
 	]]>
     </insert>
@@ -122,6 +124,9 @@
             <if test="workOverPersonId!=null">
                 work_over_person_id=#{workOverPersonId, jdbcType=NUMERIC},
             </if>
+            <if test="offsetMinute!=null">
+                offset_minute=#{offsetMinute,jdbcType=NUMERIC},
+            </if>
         </set>
         where id_=#{id}
     </update>

+ 3 - 17
web/src/main/java/com/jpsoft/shinestar/modules/business/controller/HealthPublicityController.java

@@ -144,25 +144,10 @@ public class HealthPublicityController {
     }
     @GetMapping("/healthPublicityCanteen")
     public String canteen(String id, Model model) {
-        DeviceInfo info = deviceInfoService.get(id);
 
 
-        model.addAttribute("now", DateTime.now().toString("yyyy-MM-dd HH:mm"));
-
-
-        List<String> deviceNoList = new ArrayList<>();
-        List<CompanyInfo> list=new ArrayList<>();
-        CompanyInfo cinfo= new CompanyInfo();
-        cinfo.setId("test");
-        list.add(cinfo);
-        deviceNoList.add(info.getDeviceNo());
-
-        if (deviceNoList.size()==0){
-            deviceNoList.add("-1");
-        }
-
         Page<PersonDeviceLog> personDeviceLogList1 = personDeviceLogService.findAllPersonLogByDeviceNo(DateUtil.beginOfDay(new Date()), DateUtil.endOfDay(new Date()),
-                 deviceNoList,1, 40);
+                id,1, 6);
 
 
 
@@ -176,13 +161,14 @@ public class HealthPublicityController {
 
             if (item.getPerson() == null) {
                 map.put("name", "访客" );
+                map.put("companyName", "");
 
 
             } else {
                 map.put("name", item.getPerson().getName());
+                map.put("companyName", item.getPerson().getCompanyName());
 
             }
-            map.put("companyName", item.getPerson().getCompanyName());
 
             map.put("faceImage", item.getFaceImage());
 

+ 50 - 9
web/src/main/java/com/jpsoft/shinestar/modules/business/controller/WorkScheduleAttendanceController.java

@@ -436,7 +436,7 @@ public class WorkScheduleAttendanceController {
             Map<String, Object> msgMap = new HashMap<>();
 
             List<Sort> sortList = new ArrayList<>();
-            sortList.add(new Sort("a.id_", "asc"));
+            sortList.add(new Sort("a.hq_sort_no", "asc"));
 
             if (StringUtils.isNotEmpty(name)) {
                 String[] names = name.split(",");
@@ -525,7 +525,12 @@ public class WorkScheduleAttendanceController {
             for (PersonInfo pi : page.getResult()) {
                 PersonInfoMonthWSADTO wsaDTO = new PersonInfoMonthWSADTO();
                 wsaDTO.setPersonInfo(pi);
-
+                CompanyInfo ci = companyInfoService.get(pi.getCompanyId());
+                if(StringUtils.isNotEmpty(ci.getFullName())){
+                    wsaDTO.setCompanyName(ci.getFullName());
+                }else{
+                    wsaDTO.setCompanyName(ci.getName());
+                }
                 //出差次数businessTripNum
 //                Map<String,Object> searchParams11 = new HashMap<>();
 //                searchParams11.put("workStatus","3");
@@ -594,13 +599,28 @@ public class WorkScheduleAttendanceController {
                     wsaDTO.setAbsenteeismDays(BigDecimal.ZERO);
                 }
                 //请假天数leaveNum
-                BigDecimal leaveNum = BigDecimal.ZERO;
-                //attendanceDays应出勤天数-实际出勤天数totalAttendanceDays
-                leaveNum = new BigDecimal(attendanceDays).subtract(totalAttendanceDays);
-                if(leaveNum.compareTo(BigDecimal.ZERO) > 0){
-                    wsaDTO.setLeaveNum(leaveNum);
+//                BigDecimal leaveNum = BigDecimal.ZERO;
+//                //attendanceDays应出勤天数-实际出勤天数totalAttendanceDays
+//                leaveNum = new BigDecimal(attendanceDays).subtract(totalAttendanceDays);
+//                if(leaveNum.compareTo(BigDecimal.ZERO) > 0){
+//                    wsaDTO.setLeaveNum(leaveNum);
+//                }else {
+//                    wsaDTO.setLeaveNum(BigDecimal.ZERO);
+//                }
+                //请假天数leaveNum
+                BigDecimal leaveNum = requestForLeaveInfoService.sumDaysByPersonIdAndTimeRange(pi.getId(),startDate,endDate);
+                wsaDTO.setLeaveNum(leaveNum);
+
+                //休息天数
+                //查询的总天数-实际出勤天数
+                //实际出勤天数totalAttendanceDays
+                BigDecimal restDays = BigDecimal.ZERO;
+                int daysBetween=daysBetween(startMonth,endMonth) + 1;
+                restDays = new BigDecimal(daysBetween).subtract(totalAttendanceDays);
+                if(restDays.compareTo(BigDecimal.ZERO) > 0){
+                    wsaDTO.setRestDays(restDays);
                 }else {
-                    wsaDTO.setLeaveNum(BigDecimal.ZERO);
+                    wsaDTO.setRestDays(BigDecimal.ZERO);
                 }
                 wsaList.add(wsaDTO);
 
@@ -1923,7 +1943,7 @@ public class WorkScheduleAttendanceController {
                 int colIndex = 0;
 
                 if(jsonObject.getJSONObject("personInfo")!=null){
-                    row.createCell(colIndex).setCellValue(jsonObject.getJSONObject("personInfo").getString("companyName"));
+                    row.createCell(colIndex).setCellValue(jsonObject.getString("companyName"));
                     colIndex++;
 
                     row.createCell(colIndex).setCellValue(jsonObject.getJSONObject("personInfo").getString("jobNumber"));
@@ -2044,4 +2064,25 @@ public class WorkScheduleAttendanceController {
         return workdays;
     }
 
+    /**
+     * 计算两个日期之间相差的天数
+     * @param smdate 较小的时间
+     * @param bdate 较大的时间
+     * @return 相差天数
+     */
+    public static int daysBetween(String smdate,String bdate) {
+        long between_days = 0;
+        try {
+            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(sdf.parse(smdate));
+            long time1 = cal.getTimeInMillis();
+            cal.setTime(sdf.parse(bdate));
+            long time2 = cal.getTimeInMillis();
+            between_days=(time2-time1)/(1000*3600*24);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return Integer.parseInt(String.valueOf(between_days));
+    }
 }

+ 173 - 147
web/src/main/resources/templates/motemwall_canteen.html

@@ -1,155 +1,181 @@
 <!DOCTYPE html>
 <html xmlns:th="http://www.thymeleaf.org">
 
-	<head>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
-		<meta http-equiv="refresh" content="120">
-		<title>企业管理及健康监管平台</title>
-		<link th:href="@{/static/css/mui.min.css}" href="static/css/mui.min.css" rel="stylesheet" />
-		<link th:href="@{/static/fonts/iconfont.css}" href="static/css/iconfont.css" rel="stylesheet" />
-		<link th:href="@{/static/css/sczpfyy.css}" href="static/css/sczpfyy.css" rel="stylesheet" />
-		<style>
-			header .mui-pull-right {
-				z-index: 99 !important;
-			}
-			
-			.header-right-wz {
-				margin-left: 5px;
-			}
-		</style>
-		<link th:href="@{/static/css/xpwyfyy.css}" href="static/css/xpwyfyy.css" rel="stylesheet" />
-		<link th:href="@{/static/css/wallfyy.css}" href="static/css/wallfyy.css" rel="stylesheet" />
-		<style>
-			.fyy-statistics.mui-grid-view.mui-grid-9 .mui-table-view-cell {
-				padding: 0 10px;
-			}
-			
-			.fyy-statistics.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body {
-				text-align: inherit;
-				margin: 0;
-				display: inherit;
-				line-height: inherit;
-				height: auto;
-				background: #283464;
-				padding: 15px 0;
-				border-radius: 4px;
-				border: #375cf5 solid 1px;
-			}
-			
-			.fyy-statistics.mui-grid-view.mui-grid-9 .mui-media .mui-icon {
-				padding: 0;
-				font-size: 60px
-			}
-			
-			.fyy-wall-top .mui-table-view-cell p {
-				color: #ffffff;
-				font-size: 24px;
-				margin: 20px 0
-			}
-			
-			.mui-bar .mui-content-padded h5 {
-				font-size: 24px;
-				position: absolute;
-				right: 15px;
-				top: 50%;
-				margin-top: -12px;
-				color: #ffffff
-			}
-			
-			.fyy-wall-top .mui-col-xs-3 {
-				width: 25%
-			}
-			
-			.fyy-slider .mui-table-view-cell,
-			.fyy-slider .mui-table-view-cell .mui-content-padded,
-			.fyy-slider .mui-table-view {
-				padding: 10px
-			}
-			
-			.mui-segmented-control.mui-scroll-wrapper,
-			.mui-segmented-control.mui-scroll-wrapper .mui-scroll {
-				height: 60px
-			}
-			
-			.mui-segmented-control .fyy-control-item {
-				line-height: 60px;
-			}
-			
-			.mui-bar {
-				height: 100px;
-			}
-			
-			.mui-bar .mui-title {
-				font-size: 60px;
-				line-height: 100px;
-				font-weight: 600;
-				letter-spacing: 10px;
-				top: 0;
-			}
-			
-			.mui-bar-nav~.mui-content {
-				padding-top: 120px
-			}
-			
-			.mui-segmented-control.mui-segmented-control-inverted .fyy-control-item {
-				font-size: 24px
-			}
-			
-			.mui-table-view .mui-table-view-cell {
-				font-size: 18px;
-				line-height: 30px;
-			}
-			
-			.mui-table-view-cell p {
-				font-size: 18px
-			}
-			
-			.mui-slider-group .mui-col-xs-1 {
-				width: 12.5%
-			}
-
-			.mui-table-view:before,.mui-table-view:after{
-				background:0
-			}
-			.fyy-facema{
-				position: absolute;
-				left:0;
-				bottom:0;
-				width:25%
-			}
-		</style>
-	</head>
-    <body>
-    <div id="app">
-
-        <div class="mui-content fyy-wall">
-
-            <ul class="mui-table-view" style="display:flex;flex-direction:row;flex-wrap:wrap;justify-content: space-between;">
-                <li class="mui-table-view-cell mui-media" th:each="item : ${itemList}" style="width:12.5%;">
-                    <div class="mui-content-padded">
-                        <div class="mui-media-object" style="width:100%;height:180px;">
-                            <img
-                                    th:if="${item.faceImage!=null}"
-                                    th:src="${item.faceImage} + '?x-oss-process=image/resize,m_fill,w_200,h_200'"
-                                    style="object-fit:cover;min-height:100%;width:100%;" class="fyy-faceimage"/>
-                            <img
-                                    th:if="${item.faceImage==null}"
-                                    th:src="@{static/img/wu.jpg}"
-                                    style="object-fit:cover;min-height:100%;width:100%;" class="fyy-faceimage"/>
-
-                         </div>
-                        <div class="mui-media-body">
-                            <span th:text="${item.name}"></span>
-                            <p th:text="${item.companyName}"></p>
-                         </div>
-                        <p th:text="${#dates.format(item.recordTime, 'MM-dd HH:mm')}"></p>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+    <meta http-equiv="refresh" content="5">
+    <title>企业管理及健康监管平台</title>
+    <link th:href="@{/static/css/mui.min.css}" href="static/css/mui.min.css" rel="stylesheet" />
+    <link th:href="@{/static/fonts/iconfont.css}" href="static/css/iconfont.css" rel="stylesheet" />
+    <link th:href="@{/static/css/sczpfyy.css}" href="static/css/sczpfyy.css" rel="stylesheet" />
+    <style>
+        header .mui-pull-right {
+            z-index: 99 !important;
+        }
+
+        .header-right-wz {
+            margin-left: 5px;
+        }
+    </style>
+    <link th:href="@{/static/css/xpwyfyy.css}" href="static/css/xpwyfyy.css" rel="stylesheet" />
+    <link th:href="@{/static/css/wallfyy.css}" href="static/css/wallfyy.css" rel="stylesheet" />
+    <style>
+        .fyy-statistics.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+            padding: 0 10px;
+        }
+
+        .fyy-statistics.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body {
+            text-align: inherit;
+            margin: 0;
+            display: inherit;
+            line-height: inherit;
+            height: auto;
+            background: #283464;
+            padding: 15px 0;
+            border-radius: 4px;
+            border: #375cf5 solid 1px;
+        }
+
+        .fyy-statistics.mui-grid-view.mui-grid-9 .mui-media .mui-icon {
+            padding: 0;
+            font-size: 60px
+        }
+
+        .fyy-wall-top .mui-table-view-cell p {
+            color: #ffffff;
+            font-size: 24px;
+            margin: 20px 0
+        }
+
+        .mui-bar .mui-content-padded h5 {
+            font-size: 24px;
+            position: absolute;
+            right: 15px;
+            top: 50%;
+            margin-top: -12px;
+            color: #ffffff
+        }
+
+        .fyy-wall-top .mui-col-xs-3 {
+            width: 25%
+        }
+
+        .fyy-slider .mui-table-view-cell,
+        .fyy-slider .mui-table-view-cell .mui-content-padded,
+        .fyy-slider .mui-table-view {
+            padding: 10px
+        }
+
+        .mui-segmented-control.mui-scroll-wrapper,
+        .mui-segmented-control.mui-scroll-wrapper .mui-scroll {
+            height: 60px
+        }
+
+        .mui-segmented-control .fyy-control-item {
+            line-height: 60px;
+        }
+
+        .mui-bar {
+            height: 100px;
+        }
+
+        .mui-bar .mui-title {
+            font-size: 60px;
+            line-height: 100px;
+            font-weight: 600;
+            letter-spacing: 10px;
+            top: 0;
+        }
+
+        .mui-bar-nav~.mui-content {
+            padding-top: 120px
+        }
+
+        .mui-segmented-control.mui-segmented-control-inverted .fyy-control-item {
+            font-size: 24px
+        }
+        .mui-table-view-cell .mui-content-padded{
+            border: 1px #212c54 solid;
+        }
+        .mui-table-view .mui-table-view-cell {
+            font-size: 18px;
+            line-height: 30px;
+        }
+
+        .mui-table-view-cell p {
+            font-size: 18px
+        }
+
+        .mui-slider-group .mui-col-xs-1 {
+            width: 12.5%
+        }
+
+        .mui-table-view:before,.mui-table-view:after{
+            background:0
+        }
+        .fyy-facema{
+            position: absolute;
+            left:0;
+            bottom:0;
+            width:25%
+        }
+    </style>
+</head>
+<body>
+<div id="app">
+
+    <div class="mui-content fyy-wall">
+
+        <ul class="mui-table-view" style="display:flex;flex-direction:row;flex-wrap:wrap;justify-content: space-between;">
+            <li class="mui-table-view-cell mui-media" th:each="item : ${itemList}" style="width:33%;padding-left: 0px;padding-right: 4px;">
+                <div class="mui-content-padded" style="background-color: #3e4970">
+                    <div class="mui-media-object" style="width:60%;height:22vw;float: left;">
+                        <img
+                                th:if="${item.faceImage!=null}"
+                                th:src="${item.faceImage} + '?x-oss-process=image/resize,m_fill,w_200,h_200'"
+                                style="object-fit:cover;min-height:100%;width:100%;" class="fyy-faceimage"/>
+                        <img
+                                th:if="${item.faceImage==null}"
+                                th:src="@{static/img/wu.jpg}"
+                                style="object-fit:cover;min-height:100%;width:100%;" class="fyy-faceimage"/>
+
+                    </div>
+                    <div class="mui-media-body parent"  style="height:22vw;padding: 10px">
+                        <span style="  font-size: 28px;font-weight:bold" th:text="${item.name}"></span>
+                        <p  style="color: #FFF" th:text="${item.companyName}"></p>
+                        <p  class="child" th:text="${#dates.format(item.recordTime, 'MM-dd HH:mm')}"></p>
+
                     </div>
-                </li>
-            </ul>
-        </div>
+                </div>
+            </li>
+        </ul>
     </div>
-    </body>
+</div>
+</body>
+
+<style type="text/css">
+    html{
+        width: 100%;
+        height: 100%;
+    }
+    *{
+        margin: 0;
+        padding: 0;
+    }
+    body{
+        width: 100%;
+        height: 100%;
+    }
+    .parent{
+        position: relative;
+
 
+    }
+    .child{
 
+        position: absolute;
+        bottom: 0;
+    }
+</style>
 </html>