浏览代码

添加编辑删除水浸

zhj 2 年之前
父节点
当前提交
cd53c2ef41

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

@@ -48,6 +48,19 @@ public enum InterfaceResultEnum {
     LOOP_SN_UNIQUE_ERROR("0241","回路序列号重复","",""),
     LACK_LOOP_NUMBER_ERROR("0242","请填写回路编号","",""),
     LOOP_NUMBER_UNIQUE_ERROR("0243","回路编号重复","",""),
+    LACK_LOOP_DEV_TYPE_ERROR("0244","设备类型不能为空","",""),
+    LACK_LOOP_CONTROL_TYPE_ERROR("0245","控制器类型不能为空","",""),
+    LACK_LOOP_RATE_ID_ERROR("0246","请选择费率","",""),
+    LACK_WATER_IMMERSION_NUMBER_ERROR("0247","水浸设备编号不能为空","",""),
+    WATER_IMMERSION_NUMBER_UNIQUE_ERROR("0248","水浸设备编号重复","",""),
+    LACK_WATER_IMMERSION_NAME_ERROR("0249","水浸设备名称不能为空","",""),
+    WATER_IMMERSION_NAME_UNIQUE_ERROR("0250","水浸设备名称重复","",""),
+    LACK_WATER_IMMERSION_ADDRESS_ERROR("0251","水浸设备SN码不能为空","",""),
+    LACK_WATER_IMMERSION_BOX_ADDRESS_ERROR("0252","配电箱地址不能为空","",""),
+    LACK_WATER_IMMERSION_FACTORY_ERROR("0253","请选择厂家","",""),
+    LACK_WATER_IMMERSION_MODEL_ERROR("0254","请选择水浸设备型号","",""),
+    LACK_WATER_IMMERSION_LEVEL_ERROR("0255","请选择报警等级","",""),
+    LACK_WATER_IMMERSION_POWER_STATUS_ERROR("0256","请选择报警时配电箱断电状态","",""),
     ;
     private String code;
     private String msgCn;

+ 3 - 2
src/main/java/com/welampiot/controller/LoopController.java

@@ -103,7 +103,6 @@ public class LoopController {
         int devType = (int) toolUtils.getRequestContent(request,"devType",1);
         int rateId = (int) toolUtils.getRequestContent(request,"rateId",1);
         int lampPoleId = (int) toolUtils.getRequestContent(request,"lampPoleId",1);
-        int proType = (int) toolUtils.getRequestContent(request,"proType",1);
         int controlType = (int) toolUtils.getRequestContent(request,"controlType",1);
         float longitude = request.getParameter("longitude") == null || request.getParameter("longitude").length() == 0 ? 0 : Float.parseFloat(request.getParameter("longitude"));
         float latitude = request.getParameter("latitude") == null || request.getParameter("latitude").length() == 0 ? 0 : Float.parseFloat(request.getParameter("latitude"));
@@ -122,7 +121,6 @@ public class LoopController {
         dto.setNumber(number);
         dto.setSn(sn);
         dto.setDevType(devType);
-        dto.setProType(proType);
         dto.setControlType(controlType);
 
         if (id == 0) { // 添加
@@ -131,6 +129,9 @@ public class LoopController {
             if (sn == null || sn.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_SN_ERROR,version);
             if (areaId == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
             if (sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
+            if (rateId == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_RATE_ID_ERROR,version);
+            if (String.valueOf(devType).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_DEV_TYPE_ERROR,version);
+            if (String.valueOf(controlType).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_CONTROL_TYPE_ERROR,version);
 
             LoopDTO loopDTO = new LoopDTO();
             loopDTO.setName(name);

+ 95 - 0
src/main/java/com/welampiot/controller/WaterImmersionController.java

@@ -1,6 +1,7 @@
 package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.WaterImmersionDevInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
 import com.welampiot.service.WaterImmersionDevInfoService;
@@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 
 /**
  * ClassName: WaterImmersionController
@@ -84,4 +86,97 @@ public class WaterImmersionController {
         return BaseResult.success(vo);
     }
 
+    /**
+     * 编辑水浸传感器设备
+     * @param request 需要编辑的水浸传感器的相关属性
+     * @return 更新水浸传感器编辑后的数据
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public BaseResult save(HttpServletRequest request){
+        int version = (int) toolUtils.getRequestContent(request,"version",1);
+        int id = (int) toolUtils.getRequestContent(request,"id",1);
+        int factory = (int) toolUtils.getRequestContent(request,"factory",1);
+        int model = (int) toolUtils.getRequestContent(request,"model",1);
+        int level = (int) toolUtils.getRequestContent(request,"level",1);
+        int powerStatus = (int) toolUtils.getRequestContent(request,"powerStatus",1);
+        int serialPort = (int) toolUtils.getRequestContent(request,"serialPort",1);
+        String number = request.getParameter("number");
+        String name = request.getParameter("name");
+        String address = request.getParameter("address");
+        String boxAddress = request.getParameter("boxAddress");
+        String boxSubAddress = request.getParameter("boxSubAddress");
+        String installDate = request.getParameter("installDate");
+        String expirationDate = request.getParameter("expirationDate");
+
+        WaterImmersionDevInfoDTO dto = new WaterImmersionDevInfoDTO();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        dto.setId(id);
+        dto.setFactory(factory);
+        dto.setModel(model);
+        dto.setLevel(level);
+        dto.setPowerStatus(powerStatus);
+        dto.setSerialPort(serialPort);
+        dto.setNumber(number);
+        dto.setName(name);
+        dto.setAddress(address);
+        dto.setBoxAddress(boxAddress);
+        dto.setBoxSubAddress(boxSubAddress);
+        if (installDate != null && !installDate.equals("")) {
+            try {
+                dto.setInstallDate(simpleDateFormat.format(simpleDateFormat.parse(installDate)));
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        if (expirationDate != null && !expirationDate.equals("")) {
+            try {
+                dto.setExpirationDate(simpleDateFormat.format(simpleDateFormat.parse(expirationDate)));
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        if (number == null || number.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_NUMBER_ERROR,version);
+        if (name == null || name.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_NAME_ERROR,version);
+        if (address == null || address.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_ADDRESS_ERROR,version);
+        if (boxAddress == null || boxAddress.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_BOX_ADDRESS_ERROR,version);
+        if (String.valueOf(factory).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_FACTORY_ERROR,version);
+        if (String.valueOf(model).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_MODEL_ERROR,version);
+        if (String.valueOf(level).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_LEVEL_ERROR,version);
+        if (String.valueOf(powerStatus).length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_WATER_IMMERSION_POWER_STATUS_ERROR,version);
+
+        WaterImmersionDevInfoDTO waterImmersionDTO = new WaterImmersionDevInfoDTO();
+        waterImmersionDTO.setId(id);
+        waterImmersionDTO.setName(name);
+        Integer sectionId = waterImmersionDevInfoService.findSectionIdById(id);
+        waterImmersionDTO.setSectionId(sectionId);
+        if (waterImmersionDevInfoService.findByWaterImmersionDTO(waterImmersionDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.WATER_IMMERSION_NAME_UNIQUE_ERROR,version);
+        waterImmersionDTO = new WaterImmersionDevInfoDTO();
+        waterImmersionDTO.setId(id);
+        waterImmersionDTO.setNumber(number);
+        waterImmersionDTO.setSectionId(sectionId);
+        if (waterImmersionDevInfoService.findByWaterImmersionDTO(waterImmersionDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.WATER_IMMERSION_NUMBER_UNIQUE_ERROR,version);
+        waterImmersionDevInfoService.updateWaterImmersionDataByDTO(dto);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 删除水浸设备
+     * @param request 要删除的水浸设备的id
+     * @return 操作成功
+     */
+    @RequestMapping(value = "del", method = RequestMethod.POST)
+    public BaseResult del(HttpServletRequest request){
+        int version = (int) toolUtils.getRequestContent(request,"version",1);
+        String id = request.getParameter("id");
+        if (id == null || id.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String[] split = id.split(",");
+        for (String waterImmersionId : split) {
+            int l = Integer.parseInt(waterImmersionId);
+            waterImmersionDevInfoService.deleteWaterImmersionDataByDTO(l);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 11 - 0
src/main/java/com/welampiot/dao/WaterImmersionDevInfoDao.java

@@ -2,6 +2,7 @@ package com.welampiot.dao;
 
 import com.welampiot.dto.WaterImmersionDevInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -24,4 +25,14 @@ public interface WaterImmersionDevInfoDao {
     List<WaterImmersionDevInfoLogDTO> getLogListByDTO(WaterImmersionDevInfoLogDTO dto);
 
     Integer getTimezoneById(WaterImmersionDevInfoLogDTO dto);
+
+    void updateWaterImmersionDataByDTO(WaterImmersionDevInfoDTO dto);
+
+    Integer findByWaterImmersionDTO(WaterImmersionDevInfoDTO dto);
+
+    Integer findSectionIdById(@Param("id") Integer id);
+
+    void deleteWaterImmersionDataByDTO(@Param("id") Integer id);
+
+    void deleteWaterImmersionLogDataByDTO(@Param("id") Integer id);
 }

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

@@ -85,6 +85,8 @@ public class WaterImmersionDevInfoDTO implements Serializable {
     /** 过期时间 **/
     private String expirationDate;
 
+    private Integer sectionId;
+
     private Integer timezone;
 
     private String lampPoleName;

+ 11 - 0
src/main/java/com/welampiot/service/WaterImmersionDevInfoService.java

@@ -4,6 +4,7 @@ import com.welampiot.dto.WaterImmersionDevInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
 import com.welampiot.vo.WaterImmersionDevInfoLogVO;
 import com.welampiot.vo.WaterImmersionDevInfoVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * ClassName: WaterImmersionDevInfoService
@@ -18,4 +19,14 @@ public interface WaterImmersionDevInfoService {
     WaterImmersionDevInfoVO getWaterImmersionList(WaterImmersionDevInfoDTO dto, Integer version);
 
     WaterImmersionDevInfoLogVO getLogList(WaterImmersionDevInfoLogDTO dto);
+
+    void updateWaterImmersionDataByDTO(WaterImmersionDevInfoDTO dto);
+
+    Integer findByWaterImmersionDTO(WaterImmersionDevInfoDTO dto);
+
+    Integer findSectionIdById(@Param("id") Integer id);
+
+    void deleteWaterImmersionDataByDTO(@Param("id") Integer id);
+
+    void deleteWaterImmersionLogDataByDTO(@Param("id") Integer id);
 }

+ 26 - 0
src/main/java/com/welampiot/service/impl/WaterImmersionDevInfoServiceImpl.java

@@ -254,4 +254,30 @@ public class WaterImmersionDevInfoServiceImpl implements WaterImmersionDevInfoSe
         vo.setList(list);
         return vo;
     }
+
+    @Override
+    public void updateWaterImmersionDataByDTO(WaterImmersionDevInfoDTO dto) {
+        waterImmersionDevInfoDao.updateWaterImmersionDataByDTO(dto);
+    }
+
+    @Override
+    public Integer findByWaterImmersionDTO(WaterImmersionDevInfoDTO dto) {
+        return waterImmersionDevInfoDao.findByWaterImmersionDTO(dto);
+    }
+
+    @Override
+    public Integer findSectionIdById(Integer id) {
+        return waterImmersionDevInfoDao.findSectionIdById(id);
+    }
+
+    @Override
+    public void deleteWaterImmersionDataByDTO(Integer id) {
+        waterImmersionDevInfoDao.deleteWaterImmersionDataByDTO(id);
+        this.deleteWaterImmersionLogDataByDTO(id);
+    }
+
+    @Override
+    public void deleteWaterImmersionLogDataByDTO(Integer id) {
+        waterImmersionDevInfoDao.deleteWaterImmersionLogDataByDTO(id);
+    }
 }

+ 3 - 4
src/main/resources/mapper/LoopMapper.xml

@@ -64,9 +64,9 @@
     </select>
     
     <insert id="addLoopDataByDTO" parameterType="com.welampiot.dto.LoopDTO" useGeneratedKeys="true" keyProperty="id">
-        insert into `loop`(areaid,sectionid,name,number,dev_type,sn,rateid,lamp_pole_id,control_type,proType,longitude,latitude)
+        insert into `loop`(areaid,sectionid,name,number,dev_type,sn,rateid,lamp_pole_id,control_type,longitude,latitude)
         values
-            (#{areaId},#{sectionId},#{name},#{number},#{devType},#{sn},#{rateId},#{lampPoleId},#{controlType},#{proType},#{longitude},#{latitude})
+            (#{areaId},#{sectionId},#{name},#{number},#{devType},#{sn},#{rateId},#{lampPoleId},#{controlType},#{longitude},#{latitude})
     </insert>
 
     <update id="updateLoopDataByDTO" parameterType="com.welampiot.dto.LoopDTO">
@@ -81,7 +81,6 @@
             rateid = #{rateId},
             lamp_pole_id = #{lampPoleId},
             control_type = #{controlType},
-            proType = #{proType},
             longitude = #{longitude},
             latitude = #{latitude}
         where id = #{id}
@@ -97,7 +96,7 @@
         <if test="name != null">
             and l.name = #{name}
         </if>
-        <if test="number">
+        <if test="number != null">
             and l.number = #{number}
         </if>
         <if test="id != null">

+ 60 - 0
src/main/resources/mapper/WaterImmersionDevInfoMapper.xml

@@ -81,4 +81,64 @@
         where w1.id = #{waterImmersionId}
     </select>
 
+    <update id="updateWaterImmersionDataByDTO" parameterType="com.welampiot.dto.WaterImmersionDevInfoDTO">
+        update water_immersion_dev_info
+        set
+            number = #{number},
+            name = #{name},
+            factory = #{factory},
+            model = #{model},
+            level = #{level},
+            powerStatus = #{powerStatus},
+            serial_port = #{serialPort},
+            address = #{address},
+            box_address = #{boxAddress}
+            <if test="installDate != null and installDate != ''">
+                ,install_date = #{installDate}
+            </if>
+            <if test="expirationDate != null and expirationDate != ''">
+                ,expiration_date = #{expirationDate}
+            </if>
+            ,box_sub_address = #{boxSubAddress}
+        where id = #{id}
+    </update>
+
+    <select id="findByWaterImmersionDTO" resultType="Integer">
+        select count(*)
+        from `water_immersion_dev_info` w
+        left join lamp_pole lp on lp.id = w.lamp_pole_id
+        where 1=1
+        <if test="sectionId != null">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="name != null">
+            and w.name = #{name}
+        </if>
+        <if test="number != null">
+            and w.number = #{number}
+        </if>
+        <if test="id != null">
+            and w.id != #{id}
+        </if>
+    </select>
+
+    <select id="findSectionIdById" resultType="Integer">
+        select lp.sectionid
+        from `water_immersion_dev_info` w
+        left join lamp_pole lp on w.lamp_pole_id = lp.id
+        where w.id = #{id}
+    </select>
+
+    <delete id="deleteWaterImmersionDataByDTO">
+        delete
+        from water_immersion_dev_info
+        where id = #{id};
+    </delete>
+
+    <delete id="deleteWaterImmersionLogDataByDTO">
+        delete
+        from water_immersion_dev_info_log
+        where water_immersion_id = #{id};
+    </delete>
+
 </mapper>