Selaa lähdekoodia

添加编辑删除回路

zhj 2 vuotta sitten
vanhempi
commit
ee7712dc62

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

@@ -42,6 +42,12 @@ public enum InterfaceResultEnum {
     ELECTRIC_BOX_NAME_UNIQUE_ERROR("0235","配电柜名称重复!","",""),
     LACK_ELECTRIC_MODULE_ERROR("0236","请添加通信模块","",""),
     LACK_ELECTRIC_MODULE_ADDRESS_ERROR("0237","通信模块地址不能为空!","",""),
+    LACK_LOOP_NAME_ERROR("0238","请填写回路名称","",""),
+    LOOP_NAME_UNIQUE_ERROR("0239","回路名称重复","",""),
+    LACK_LOOP_SN_ERROR("0240","请填写回路序列号","",""),
+    LOOP_SN_UNIQUE_ERROR("0241","回路序列号重复","",""),
+    LACK_LOOP_NUMBER_ERROR("0242","请填写回路编号","",""),
+    LOOP_NUMBER_UNIQUE_ERROR("0243","回路编号重复","",""),
     ;
     private String code;
     private String msgCn;

+ 93 - 0
src/main/java/com/welampiot/controller/LoopController.java

@@ -89,4 +89,97 @@ public class LoopController {
         return BaseResult.success(loopDropDownList);
     }
 
+    /**
+     * 添加编辑回路
+     * @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 areaId = (int) toolUtils.getRequestContent(request,"areaId",1);
+        int sectionId = (int) toolUtils.getRequestContent(request,"sectionId",1);
+        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"));
+        String number = request.getParameter("number");
+        String name = request.getParameter("name");
+        String sn = request.getParameter("sn");
+
+        LoopDTO dto = new LoopDTO();
+        dto.setAreaId(areaId);
+        dto.setSectionId(sectionId);
+        dto.setRateId(rateId);
+        dto.setLampPoleId(lampPoleId);
+        dto.setLongitude(longitude);
+        dto.setLatitude(latitude);
+        dto.setName(name);
+        dto.setNumber(number);
+        dto.setSn(sn);
+        dto.setDevType(devType);
+        dto.setProType(proType);
+        dto.setControlType(controlType);
+
+        if (id == 0) { // 添加
+            if (number == null || number.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_NUMBER_ERROR,version);
+            if (name == null || name.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_LOOP_NAME_ERROR,version);
+            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);
+
+            LoopDTO loopDTO = new LoopDTO();
+            loopDTO.setName(name);
+            loopDTO.setSectionId(sectionId);
+            if (loopService.findByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_NAME_UNIQUE_ERROR,version);
+            loopDTO = new LoopDTO();
+            loopDTO.setNumber(number);
+            loopDTO.setSectionId(sectionId);
+            if (loopService.findByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_NUMBER_UNIQUE_ERROR,version);
+            loopDTO = new LoopDTO();
+            loopDTO.setSn(sn);
+            if (loopService.findSNByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_SN_UNIQUE_ERROR,version);
+            loopService.addLoopDataByDTO(dto);
+        } else { // 编辑
+            dto.setId(id);
+            LoopDTO loopDTO = new LoopDTO();
+            loopDTO.setId(id);
+            loopDTO.setName(name);
+            loopDTO.setSectionId(sectionId);
+            if (loopService.findByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_NAME_UNIQUE_ERROR,version);
+            loopDTO = new LoopDTO();
+            loopDTO.setId(id);
+            loopDTO.setNumber(number);
+            loopDTO.setSectionId(sectionId);
+            if (loopService.findByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_NUMBER_UNIQUE_ERROR,version);
+            loopDTO = new LoopDTO();
+            loopDTO.setId(id);
+            loopDTO.setSn(sn);
+            if (loopService.findSNByLoopDTO(loopDTO) > 0) return toolUtils.response(InterfaceResultEnum.LOOP_SN_UNIQUE_ERROR,version);
+            loopService.updateLoopDataByDTO(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 loopId : split) {
+            int l = Integer.parseInt(loopId);
+            loopService.deleteLoopDataById(l);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

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

@@ -22,4 +22,18 @@ public interface LoopDao {
     LoopDTO getLoopDetailById(@Param("id") Integer id, @Param("sectionList") List<LoopDTO> sectionList);
 
     List<LoopDTO> getLoopDropDownListBySectionList(@Param("sectionList") List<LoopDTO> sectionList);
+
+    void addLoopDataByDTO(LoopDTO dto);
+
+    void updateLoopDataByDTO(LoopDTO dto);
+
+    Integer findByLoopDTO(LoopDTO dto);
+
+    Integer findSNByLoopDTO(LoopDTO dto);
+
+    void deleteLoopDataById(@Param("id") Integer id);
+
+    void deleteLoopLogDataById(@Param("id") Integer id);
+
+    void deleteLoopLogNewDataById(@Param("id") Integer id);
 }

+ 1 - 1
src/main/java/com/welampiot/dto/LoopDTO.java

@@ -23,7 +23,7 @@ public class LoopDTO implements Serializable {
     private String name;
 
     /** 回路编号 **/
-    private Integer number;
+    private String number;
 
     /** 设备id **/
     private Integer deviceId;

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

@@ -3,6 +3,7 @@ package com.welampiot.service;
 import com.welampiot.dto.LoopDTO;
 import com.welampiot.vo.LoopDetailVO;
 import com.welampiot.vo.LoopVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -21,4 +22,18 @@ public interface LoopService {
     LoopDetailVO getLoopDetail(Integer id, Integer version, List<LoopDTO> sectionList);
 
     LoopVO getLoopDropDownList(List<LoopDTO> sectionList);
+
+    void addLoopDataByDTO(LoopDTO dto);
+
+    void updateLoopDataByDTO(LoopDTO dto);
+
+    Integer findByLoopDTO(LoopDTO dto);
+
+    Integer findSNByLoopDTO(LoopDTO dto);
+
+    void deleteLoopDataById(@Param("id") Integer id);
+
+    void deleteLoopLogDataById(@Param("id") Integer id);
+
+    void deleteLoopLogNewDataById(@Param("id") Integer id);
 }

+ 38 - 1
src/main/java/com/welampiot/service/impl/LoopServiceImpl.java

@@ -89,7 +89,7 @@ public class LoopServiceImpl implements LoopService {
             }else {
                 vo.setSection("");
             }
-            vo.setNumber(dto.getNumber().toString());
+            vo.setNumber(dto.getNumber());
             vo.setLampCount(dto.getLampCount().toString());
             vo.setSn(dto.getSn());
             if (dto.getDevType() != null && dto.getDevType() == 1){
@@ -122,4 +122,41 @@ public class LoopServiceImpl implements LoopService {
         vo.setList(loopDao.getLoopDropDownListBySectionList(sectionList));
         return vo;
     }
+
+    @Override
+    public void addLoopDataByDTO(LoopDTO dto) {
+        loopDao.addLoopDataByDTO(dto);
+    }
+
+    @Override
+    public void updateLoopDataByDTO(LoopDTO dto) {
+        loopDao.updateLoopDataByDTO(dto);
+    }
+
+    @Override
+    public Integer findByLoopDTO(LoopDTO dto) {
+        return loopDao.findByLoopDTO(dto);
+    }
+
+    @Override
+    public Integer findSNByLoopDTO(LoopDTO dto) {
+        return loopDao.findSNByLoopDTO(dto);
+    }
+
+    @Override
+    public void deleteLoopDataById(Integer id) {
+        loopDao.deleteLoopDataById(id);
+        this.deleteLoopLogDataById(id);
+        this.deleteLoopLogNewDataById(id);
+    }
+
+    @Override
+    public void deleteLoopLogDataById(Integer id) {
+        loopDao.deleteLoopLogDataById(id);
+    }
+
+    @Override
+    public void deleteLoopLogNewDataById(Integer id) {
+        loopDao.deleteLoopLogNewDataById(id);
+    }
 }

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

@@ -62,5 +62,77 @@
             </foreach>
         </if>
     </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)
+        values
+            (#{areaId},#{sectionId},#{name},#{number},#{devType},#{sn},#{rateId},#{lampPoleId},#{controlType},#{proType},#{longitude},#{latitude})
+    </insert>
+
+    <update id="updateLoopDataByDTO" parameterType="com.welampiot.dto.LoopDTO">
+        update `loop`
+        set
+            areaid = #{areaId},
+            sectionid = #{sectionId},
+            name = #{name},
+            number = #{number},
+            dev_type = #{devType},
+            sn = #{sn},
+            rateid = #{rateId},
+            lamp_pole_id = #{lampPoleId},
+            control_type = #{controlType},
+            proType = #{proType},
+            longitude = #{longitude},
+            latitude = #{latitude}
+        where id = #{id}
+    </update>
+
+    <select id="findByLoopDTO" resultType="Integer">
+        select count(*)
+        from `loop` l
+        where 1=1
+        <if test="sectionId != null">
+            and l.sectionid = #{sectionId}
+        </if>
+        <if test="name != null">
+            and l.name = #{name}
+        </if>
+        <if test="number">
+            and l.number = #{number}
+        </if>
+        <if test="id != null">
+            and l.id != #{id}
+        </if>
+    </select>
+
+    <select id="findSNByLoopDTO" resultType="Integer">
+        select count(*)
+        from `loop` l
+        where 1=1
+        <if test="sn != null">
+            and l.sn = #{sn}
+        </if>
+        <if test="id != null">
+            and l.id != #{id}
+        </if>
+    </select>
+
+    <delete id="deleteLoopDataById">
+        delete
+        from `loop`
+        where id = #{id}
+    </delete>
+
+    <delete id="deleteLoopLogDataById">
+        delete
+        from `loop_info_log`
+        where loopid = #{id}
+    </delete>
+
+    <delete id="deleteLoopLogNewDataById">
+        delete
+        from `loop_info_log_new`
+        where loopid = #{id}
+    </delete>
 
 </mapper>