فهرست منبع

设置电源模式信息;强电管理:回路列表,回路概览信息

zhj 2 سال پیش
والد
کامیت
d55ac99185

+ 2 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -154,6 +154,8 @@ public enum InterfaceResultEnum {
     WATER_LEVEL_NAME_UNIQUE_ERROR("0344","液位传感器名称已存在","The liquid level sensor name already exists","Имя жидкого датчика уже существует"),
     WATER_LEVEL_NUMBER_UNIQUE_ERROR("0345","液位传感器编号已存在","The liquid level sensor number exists","Номер жидкого датчика уже существует"),
     PRO_REVIEWER_STATUS_ERROR("0346","已审核,无法重复操作","Reviewed, cannot be repeated","Повторная операция невозможна"),
+    LACK_START_DATE_ERROR("0347","缺少开始日期","The lack of start date","Отсутствие даты начала"),
+    LACK_TIME_LIST_ERROR("0348","缺少时间列表","Lack of time list","Не хватает времени для списка"),
     ;
     private String code;
     private String msgCn;

+ 87 - 2
src/main/java/com/welampiot/controller/NewLampPoleController.java

@@ -1287,8 +1287,8 @@ public class NewLampPoleController {
     }
     /**
      * 设置云盒电源
-     * @param request sectionList
-     * @return 获取故障数
+     * @param wifiDTO WifiDTO
+     * @return 设置云盒电源
      */
     @RequestMapping(value = "/setWifiOutInfo", method = RequestMethod.POST)
 //    public BaseResult<?> setWifiOutInfo(HttpServletRequest request) {
@@ -1485,4 +1485,89 @@ public class NewLampPoleController {
         userVO.setList(reviewerList);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,userVO);
     }
+
+    /**
+     * 回路概览信息
+     * @param request sectionList
+     * @return 回路概览信息
+     */
+    @RequestMapping(value = "/loopInfo", method = RequestMethod.POST)
+    public BaseResult<?> loopInfo(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request, "areaId", 1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request, "sectionId", 1);
+        LoopDTO loopDTO = new LoopDTO();
+        loopDTO.setAreaId(areaId);
+        loopDTO.setSectionId(sectionId);
+        loopDTO.setSectionList(toolUtils.getSectionList(request));
+        Integer total = loopService.getLoopTotalByDTO(loopDTO);
+        Integer onlineTotal = loopService.getOnlineLoopTotalByDTO(loopDTO);
+        Integer closeTotal = loopService.getCloseLoopTotalByDTO(loopDTO);
+        Integer alarmTotal = loopService.getAlarmLoopTotalByDTO(loopDTO);
+        LoopDTO dto = loopService.getLoopEleCom(loopDTO);
+        LoopDataVO loopDataVO = new LoopDataVO();
+        loopDataVO.setTotalCount(total);
+        loopDataVO.setOnlineCount(onlineTotal);
+        loopDataVO.setFaultCount(alarmTotal);
+        loopDataVO.setCloseCount(closeTotal);
+        DecimalFormat decimalFormat = new DecimalFormat("0.00");
+        if (dto == null) {
+            loopDataVO.setDayCom(0f);
+            loopDataVO.setMonthCom(0f);
+            loopDataVO.setTotalCom(0f);
+        } else {
+            if (dto.getDayCom() == null) {
+                loopDataVO.setDayCom(0f);
+            } else {
+                Float dayCom = dto.getDayCom();
+                String format = decimalFormat.format(dayCom);
+                loopDataVO.setDayCom(Float.valueOf(format));
+            }
+            if (dto.getMonthCom() == null) {
+                loopDataVO.setMonthCom(0f);
+            } else {
+                Float monthCom = dto.getMonthCom();
+                String format = decimalFormat.format(monthCom);
+                loopDataVO.setMonthCom(Float.valueOf(format));
+            }
+            if (dto.getTotalCom() == null) {
+                loopDataVO.setTotalCom(0f);
+            } else {
+                Float totalCom = dto.getTotalCom();
+                String format = decimalFormat.format(totalCom);
+                loopDataVO.setTotalCom(Float.valueOf(format));
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,loopDataVO);
+    }
+
+    /**
+     * 回路列表
+     * @return 回路列表
+     */
+    @RequestMapping(value = "/loopList", method = RequestMethod.POST)
+    public BaseResult<?> loopList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request, "areaId", 1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request, "sectionId", 1);
+        String keyword = (String) toolUtils.getRequestContent(request, "keyword", 2);
+        Integer page = (Integer) toolUtils.getRequestContent(request, "page", 1);
+        Integer count = (Integer) toolUtils.getRequestContent(request, "count", 1);
+        Integer online = (Integer) toolUtils.getRequestContent(request, "online", 1);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        LoopDTO loopDTO = new LoopDTO();
+        loopDTO.setAreaId(areaId);
+        loopDTO.setSectionId(sectionId);
+        loopDTO.setKeyword(keyword);
+        loopDTO.setPage(count * (page - 1));
+        loopDTO.setCount(count);
+        loopDTO.setNetStatus(online);
+        loopDTO.setSectionList(toolUtils.getSectionList(request));
+        List<LoopDTO> loopList = loopService.getLoopListByDTO(loopDTO);
+        loopList.forEach(dto -> dto.setPolicyList(new ArrayList<>()));
+        LoopVO loopVO = new LoopVO();
+        loopVO.setList(loopList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,loopVO);
+    }
 }

+ 51 - 1
src/main/java/com/welampiot/controller/ScreenController.java

@@ -7,6 +7,8 @@ import com.welampiot.service.*;
 import com.welampiot.utils.SHH2Util;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.*;
+import org.json.JSONArray;
+import org.json.JSONObject;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -293,7 +295,6 @@ public class ScreenController {
         List<ScreenModeContentDTO> dateList = new ArrayList<>();
         for (ScreenOpenModeDTO s : modeList) {
             ScreenModeContentDTO contentDTO = new ScreenModeContentDTO();
-            contentDTO.setMode(s.getMode());
             contentDTO.setStartDate(s.getStartDate());
             List<ScreenModeValueDTO> timeList = new ArrayList<>();
             for (int i = 1; i <= 10; i ++) {
@@ -314,7 +315,56 @@ public class ScreenController {
             dateList.add(contentDTO);
         }
         ScreenOpenModeVO openModeVO = new ScreenOpenModeVO();
+        Integer mode = modeList.get(0).getMode();
+        openModeVO.setMode(mode);
         openModeVO.setDateList(dateList);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,openModeVO);
     }
+
+    /**
+     * 设置电源模式信息
+     * @param vo ScreenOpenModeVO
+     * @return 设置电源模式信息
+     */
+    @RequestMapping(value = "/setScreenVolMode", method = RequestMethod.POST)
+    public BaseResult<?> setScreenVolMode(ScreenModeSetVO vo) throws NoSuchFieldException, IllegalAccessException {
+        ScreenModeSetVO screenOpenModeVO = ScreenModeSetVO.getFaultScreenModeSetVO(vo);
+        Integer version = screenOpenModeVO.getVersion();
+        Integer mode = screenOpenModeVO.getMode();
+        if (mode == null) return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        String dateList = screenOpenModeVO.getDateList();
+        JSONArray jsonArray = new JSONArray(dateList);
+        String id = screenOpenModeVO.getId();
+        if (dateList.equals("") || id.equals("")) return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        String[] split = id.split(",");
+        for (String s : split) {
+            ScreenOpenModeDTO screenOpenModeDTO = new ScreenOpenModeDTO();
+            screenOpenModeDTO.setScreenId(Integer.valueOf(s));
+            screenOpenModeDTO.setMode(mode);
+            for (int i = 0; i < jsonArray.length(); i ++) {
+                JSONObject jsonObject = jsonArray.getJSONObject(i);
+                String startDate = jsonObject.getString("startDate");
+                if (startDate == null || startDate.equals(""))
+                    return toolUtils.response(InterfaceResultEnum.LACK_START_DATE_ERROR,version);
+                screenOpenModeDTO.setStartDate(startDate);
+                String timeList = jsonObject.getString("timeList");
+                if (timeList == null || timeList.equals(""))
+                    return toolUtils.response(InterfaceResultEnum.LACK_TIME_LIST_ERROR,version);
+                JSONArray array = new JSONArray(timeList);
+                for (int j = 0; j < array.length(); j ++) {
+                    JSONObject object = array.getJSONObject(i);
+                    String time = object.getString("time");
+                    Integer status = object.getInt("status");
+                    Field fieldTime = screenOpenModeDTO.getClass().getDeclaredField("time" + (j + 1));
+                    Field fieldStatus = screenOpenModeDTO.getClass().getDeclaredField("status" + (j + 1));
+                    fieldTime.setAccessible(true);
+                    fieldStatus.setAccessible(true);
+                    fieldTime.set(screenOpenModeDTO,time);
+                    fieldStatus.set(screenOpenModeDTO,status);
+                }
+                screenOpenModeService.addScreenOpenModeData(screenOpenModeDTO);
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 8 - 0
src/main/java/com/welampiot/dao/LoopDao.java

@@ -46,4 +46,12 @@ public interface LoopDao {
     Integer getCloseLoopTotalByDTO(LoopDTO dto);
 
     void changeLoopLocationById(LoopDTO dto);
+
+    List<LoopDTO> getLoopListByDTO(LoopDTO dto);
+
+    Integer getOnlineLoopTotalByDTO(LoopDTO dto);
+
+    Integer getAlarmLoopTotalByDTO(LoopDTO dto);
+
+    LoopDTO getLoopEleCom(LoopDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/ScreenOpenModeDao.java

@@ -16,4 +16,6 @@ import java.util.List;
  */
 public interface ScreenOpenModeDao {
     List<ScreenOpenModeDTO> getScreenOpenModeListByScreenId(@Param("screenId") Integer screenId);
+
+    void addScreenOpenModeData(ScreenOpenModeDTO dto);
 }

+ 10 - 0
src/main/java/com/welampiot/dto/LoopDTO.java

@@ -206,5 +206,15 @@ public class LoopDTO implements Serializable {
 
     private String rate;
 
+    private Float dayCom;
+
+    private Float monthCom;
+
+    private Float yearCom;
+
+    private Float totalCom;
+
+    private List<PlcPolicyInfoDTO> policyList;
+
     private static final long serialVersionUID = 1L;
 }

+ 33 - 0
src/main/java/com/welampiot/dto/LoopInfoLogNewDTO.java

@@ -0,0 +1,33 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: LoopInfoLogNewDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/9 - 14:12
+ * @Version: v1.0
+ */
+@Data
+public class LoopInfoLogNewDTO implements Serializable {
+    private Integer id;
+
+    private Integer loopId;
+
+    private Float dayCom;
+
+    private Float monthCom;
+
+    private Float yearCom;
+
+    private Float totalCom;
+
+    private String updateTime;
+
+    private static final long serialVersionUID = 1L;
+}

+ 25 - 0
src/main/java/com/welampiot/dto/PlcPolicyInfoDTO.java

@@ -0,0 +1,25 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: PlcPolicyInfoDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/9 - 15:26
+ * @Version: v1.0
+ */
+@Data
+public class PlcPolicyInfoDTO implements Serializable {
+    private Integer id;
+
+    private String address;
+
+    private String content;
+
+    private String updateTime;
+}

+ 0 - 2
src/main/java/com/welampiot/dto/ScreenModeContentDTO.java

@@ -18,7 +18,5 @@ import java.util.List;
 public class ScreenModeContentDTO implements Serializable {
     private String startDate;
 
-    private Integer mode;
-
     private List<ScreenModeValueDTO> timeList;
 }

+ 8 - 0
src/main/java/com/welampiot/service/LoopService.java

@@ -48,4 +48,12 @@ public interface LoopService {
     void changeLoopLocationById(LoopDTO dto);
 
     Integer getTotalBySectionList(LoopDTO loopDTO);
+
+    List<LoopDTO> getLoopListByDTO(LoopDTO dto);
+
+    Integer getOnlineLoopTotalByDTO(LoopDTO dto);
+
+    Integer getAlarmLoopTotalByDTO(LoopDTO dto);
+
+    LoopDTO getLoopEleCom(LoopDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/service/ScreenOpenModeService.java

@@ -15,4 +15,6 @@ import java.util.List;
  */
 public interface ScreenOpenModeService {
     List<ScreenOpenModeDTO> getScreenOpenModeListByScreenId(Integer screenId);
+
+    void addScreenOpenModeData(ScreenOpenModeDTO dto);
 }

+ 20 - 0
src/main/java/com/welampiot/service/impl/LoopServiceImpl.java

@@ -233,4 +233,24 @@ public class LoopServiceImpl implements LoopService {
     public Integer getTotalBySectionList(LoopDTO loopDTO) {
         return loopDao.getTotalBySectionList(loopDTO);
     }
+
+    @Override
+    public List<LoopDTO> getLoopListByDTO(LoopDTO dto) {
+        return loopDao.getLoopListByDTO(dto);
+    }
+
+    @Override
+    public Integer getOnlineLoopTotalByDTO(LoopDTO dto) {
+        return loopDao.getOnlineLoopTotalByDTO(dto);
+    }
+
+    @Override
+    public Integer getAlarmLoopTotalByDTO(LoopDTO dto) {
+        return loopDao.getAlarmLoopTotalByDTO(dto);
+    }
+
+    @Override
+    public LoopDTO getLoopEleCom(LoopDTO dto) {
+        return loopDao.getLoopEleCom(dto);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/ScreenOpenModeServiceImpl.java

@@ -26,4 +26,9 @@ public class ScreenOpenModeServiceImpl implements ScreenOpenModeService {
     public List<ScreenOpenModeDTO> getScreenOpenModeListByScreenId(Integer screenId) {
         return screenOpenModeDao.getScreenOpenModeListByScreenId(screenId);
     }
+
+    @Override
+    public void addScreenOpenModeData(ScreenOpenModeDTO dto) {
+        screenOpenModeDao.addScreenOpenModeData(dto);
+    }
 }

+ 29 - 0
src/main/java/com/welampiot/vo/LoopDataVO.java

@@ -0,0 +1,29 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: LoopDataVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/9 - 16:10
+ * @Version: v1.0
+ */
+@Data
+public class LoopDataVO implements Serializable {
+    private Integer totalCount; // 回路总数
+
+    private Integer onlineCount; // 在线数
+
+    private Integer closeCount; // 合闸数
+
+    private Integer faultCount; // 故障数
+
+    private Float dayCom; // 当天用电量
+    private Float monthCom; // 当月用电量
+    private Float totalCom; // 累计用电量
+}

+ 39 - 0
src/main/java/com/welampiot/vo/ScreenModeSetVO.java

@@ -0,0 +1,39 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: ScreenModeSetVO
+ * Package: com.welampiot.vo
+ * Description: 用于设置电源模式信息
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/9 - 10:31
+ * @Version: v1.0
+ */
+@Data
+public class ScreenModeSetVO implements Serializable {
+    private String id;
+
+    private String dateList;
+
+    private Integer mode;
+
+    private Integer version;
+
+    public static ScreenModeSetVO getFaultScreenModeSetVO(@NotNull ScreenModeSetVO vo) {
+        if (vo.getId() == null) {
+            vo.setId("");
+        }
+        if (vo.getDateList() == null) {
+            vo.setDateList("");
+        }
+        if (vo.getVersion() == null) {
+            vo.setVersion(0);
+        }
+        return vo;
+    }
+}

+ 2 - 0
src/main/java/com/welampiot/vo/ScreenOpenModeVO.java

@@ -24,6 +24,8 @@ public class ScreenOpenModeVO implements Serializable {
 
     private Integer id;
 
+    private Integer mode;
+
     private List<ScreenModeContentDTO> dateList;
 
     @NotNull

+ 106 - 0
src/main/resources/mapper/LoopMapper.xml

@@ -209,6 +209,27 @@
         <if test="areaId != null and areaId != 0">
             and l.areaid = #{areaId}
         </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getOnlineLoopTotalByDTO" resultType="Integer">
+        select count(l.id)
+        from `loop` l
+        where l.net_status = 1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and l.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
     </select>
 
     <select id="getOpenLoopTotalByDTO" resultType="Integer">
@@ -224,6 +245,9 @@
         <if test="areaId != null and areaId != 0">
             and l.areaid = #{areaId}
         </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
     </select>
 
     <select id="getCloseLoopTotalByDTO" resultType="Integer">
@@ -239,6 +263,27 @@
         <if test="areaId != null and areaId != 0">
             and l.areaid = #{areaId}
         </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getAlarmLoopTotalByDTO" resultType="Integer">
+        select count(l.id)
+        from `loop` l
+        where l.net_status = 1 and l.alarm_status = 1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and l.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
     </select>
 
     <update id="changeLoopLocationById" parameterType="LoopDTO">
@@ -250,4 +295,65 @@
         where l.id = #{id}
     </update>
 
+    <select id="getLoopListByDTO" resultType="LoopDTO">
+        select l.id,l.name,l.sn,l.dev_type as devType,l.net_status netStatus,
+        l.volPa,l.cura as curA,l.insPa,l.volPb,l.curb as curB,l.insPb,l.broadcast_status as broadcastStatus,
+        l.volPc,l.curc as curC,l.insPc,l.updatetime as updateTime,l.lampcount as lampCount,
+        l.type,l.lock_status lockStatus,l.status,l.policyid as policyId,lp.name as policyName,
+        l1.dayCom,l1.monthCom,l1.totalCom
+        from `loop` l
+        left join loop_policy lp on l.policyid = lp.id
+        left join loop_info_log_new l1 on l1.loopid = l.id
+        where 1=1
+        <if test="keyword != null and keyword != ''">
+            and (l.name like '%${keyword}%' or l.number like '%${keyword}%')
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and l.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
+        <choose>
+            <when test="netStatus == 1">
+                and l.net_status = 0
+            </when>
+            <when test="netStatus == 2">
+                and l.net_status = 1
+            </when>
+        </choose>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l.sectionid in
+            <foreach item="dto" collection="sectionList" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+        order by convert(l.name using gbk) asc,l.id desc
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getLoopEleCom" resultType="LoopDTO">
+        select
+            sum(l1.dayCom) as dayCom,
+            sum(l1.monthCom) as monthCom,
+            sum(l1.totalCom) as totalCom
+        from `loop` l
+        left join loop_info_log_new l1 on l1.loopid = l.id
+        where 1=1
+        <if test="areaId != null and areaId != 0">
+            and l.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and l.sectionid = #{sectionId}
+        </if>
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and l.sectionid in
+            <foreach item="dto" collection="sectionList" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+    </select>
+
 </mapper>

+ 67 - 0
src/main/resources/mapper/ScreenOpenModeMapper.xml

@@ -19,4 +19,71 @@
         where s.screen_id = #{screenId}
     </select>
 
+    <insert id="addScreenOpenModeData" parameterType="ScreenOpenModeDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into screen_open_mode(screen_id, `mode`,
+        <if test="time1 != null and time1 != ''">
+            time1, status1,
+        </if>
+        <if test="time2 != null and time2 != ''">
+            time2, status2,
+        </if>
+        <if test="time3 != null and time3 != ''">
+            time3, status3,
+        </if>
+        <if test="time4 != null and time4 != ''">
+            time4, status4,
+        </if>
+        <if test="time5 != null and time5 != ''">
+            time5, status5,
+        </if>
+        <if test="time6 != null and time6 != ''">
+            time6, status6,
+        </if>
+        <if test="time7 != null and time7 != ''">
+            time7, status7,
+        </if>
+        <if test="time8 != null and time8 != ''">
+            time8, status8,
+        </if>
+        <if test="time9 != null and time9 != ''">
+            time9, status9,
+        </if>
+        <if test="time10 != null and time10 != ''">
+            time10, status10,
+        </if>
+        start_date)
+        values (#{screenId},#{mode},
+        <if test="time1 != null and time1 != ''">
+            #{time1},#{status1},
+        </if>
+        <if test="time2 != null and time2 != ''">
+            #{time2},#{status2},
+        </if>
+        <if test="time3 != null and time3 != ''">
+            #{time3},#{status3},
+        </if>
+        <if test="time4 != null and time4 != ''">
+            #{time4},#{status4},
+        </if>
+        <if test="time5 != null and time5 != ''">
+            #{time5},#{status5},
+        </if>
+        <if test="time6 != null and time6 != ''">
+            #{time6},#{status6},
+        </if>
+        <if test="time7 != null and time7 != ''">
+            #{time7},#{status7},
+        </if>
+        <if test="time8 != null and time8 != ''">
+            #{time8},#{status8},
+        </if>
+        <if test="time9 != null and time9 != ''">
+            #{time9},#{status9},
+        </if>
+        <if test="time10 != null and time10 != ''">
+            #{time10},#{status10},
+        </if>
+        #{startDate})
+    </insert>
+
 </mapper>