pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java
@@ -4,6 +4,7 @@ import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.voPr.VoController; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -42,4 +43,18 @@ * @return */ List<VoController> getControllers(Map<?, ?> params); /** * 根据控制器编号获取控制器列表 * @param controllerCode * @return */ List<Map<String, Object>> getControllersByCode(@Param("controllerCode") String controllerCode); /** * 根据控制器编号逻辑删除控制 * @param controllerId * @return */ Integer deleteControllerById(@Param("controllerId") Long controllerId); } pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -160,6 +160,11 @@ , (SELECT @i:=0) AS itable <where> AND ic.operateType = 1 <if test = "id != null and id > 0"> AND con.id = ${id} </if> <if test = "controllerCode != null and controllerCode !=''"> AND con.code like CONCAT('%',#{controllerCode},'%') </if> @@ -178,36 +183,53 @@ <select id="getControllers" resultType="com.dy.pipIrrGlobal.voPr.VoController"> SELECT (@i:=@i+1) AS id, con.code AS controllerCode, (CASE WHEN con.onlineState = 1 THEN "在线" WHEN con.onlineState = 2 THEN "离线" END) AS onlineState, inta.name AS intakeName, (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, con.reportTime FROM pr_controller con INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id INNER JOIN pr_intake inta ON ic.intakeId = inta.id , (SELECT @i:=0) AS itable <where> AND ic.operateType = 1 <if test = "controllerCode != null and controllerCode !=''"> AND con.code like CONCAT('%',#{controllerCode},'%') </if> t.* FROM( SELECT con.code AS controllerCode, (CASE WHEN con.onlineState = 1 THEN "在线" WHEN con.onlineState = 2 THEN "离线" END) AS onlineState, inta.name AS intakeName, (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) AS bindNumber, con.reportTime FROM pr_controller con INNER JOIN pr_intake_controller ic ON ic.controllerId = con.id INNER JOIN pr_intake inta ON ic.intakeId = inta.id <where> AND ic.operateType = 1 <if test = "onlineState != null and onlineState > 0"> AND con.onlineState = ${onlineState} </if> <if test = "id != null and id > 0"> AND con.id = ${id} </if> <if test = "bindNumber != null and bindNumber > 0"> AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} </if> </where> ORDER BY con.operateDt DESC <if test="pageCurr != null and pageSize != null"> LIMIT ${pageCurr}, ${pageSize} </if> <if test = "controllerCode != null and controllerCode !=''"> AND con.code like CONCAT('%',#{controllerCode},'%') </if> <if test = "onlineState != null and onlineState > 0"> AND con.onlineState = ${onlineState} </if> <if test = "bindNumber != null and bindNumber > 0"> AND (SELECT COUNT(*) FROM pr_intake_controller WHERE controllerId = con.id AND intakeId = inta.id AND operateType = 1) = ${bindNumber} </if> </where> ORDER BY con.operateDt DESC <if test="pageCurr != null and pageSize != null"> LIMIT ${pageCurr}, ${pageSize} </if> ) t , (SELECT @i:=0) AS itable </select> <!--根据控制器编号获取控制器列表--> <select id="getControllersByCode" resultType="java.util.Map"> SELECT id, code FROM pr_controller WHERE code LIKE CONCAT('%',#{controllerCode},'%') </select> <!--根据控制器编号逻辑删除控制--> <update id="deleteControllerById"> UPDATE pr_controller SET deleted = 1 WHERE id = ${controllerId} </update> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java
@@ -1,10 +1,13 @@ package com.dy.pipIrrProject.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.support.ExcelTypeEnum; import com.dy.common.aop.SsoAop; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrGlobal.pojoBa.BaClient; import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.voPr.VoController; import com.dy.pipIrrGlobal.voSe.VoActiveCard; @@ -15,18 +18,20 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.Optional; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.*; /** * @author ZhuBaoMin @@ -43,6 +48,11 @@ public class ControllerCtrl { private final ControllerSv controllerSv; /** * 根据指定条件获取控制器列表 * @param vo 查询条件 * @return 符合条件的控制器列表 */ @Operation(summary = "获得一页控制器记录", description = "返回一页控制器数据") @ApiResponses(value = { @ApiResponse( @@ -65,6 +75,35 @@ //return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("获取开卡记录异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据控制器编号获取控制器列表 * @param controllerCode 控制器编号 * @return 符合条件的控制器列表 */ @Operation(summary = "获得控制器记录", description = "返回取控制器数据") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "返回控制器数据(BaseResponse.content:QueryResultVo[{}])", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = BaClient.class))} ) }) @GetMapping(path = "controller_list") @SsoAop() public BaseResponse<List<Map<String, Object>>> getControllersByCode(String controllerCode){ try { List<Map<String, Object>> list = Optional.ofNullable(controllerSv.getControllersByCode(controllerCode)).orElse(new ArrayList<>()); if(list.size() <= 0) { return BaseResponseUtils.buildFail(ProjectResultCode.NO_RECORDS.getMessage()); } return BaseResponseUtils.buildSuccess(list); } catch (Exception e) { log.error("查询控制器异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -104,4 +143,62 @@ } return BaseResponseUtils.buildSuccess(true) ; } /** * 根据控制器编号删除控制器 * @param map * @return */ @Operation(summary = "删除控制器记录", description = "删除控制器记录") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, description = "操作结果:true:成功,false:失败(BaseResponse.content)", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, schema = @Schema(implementation = Boolean.class))} ) }) @PostMapping(path = "delete") @SsoAop() public BaseResponse<Boolean> delete(@RequestBody Map map){ if(map == null || map.size() <=0) { return BaseResponseUtils.buildFail(ProjectResultCode.PLEASE_INPUT_CONTROLLER_ID.getMessage()); } Long controllerId = Long.parseLong(map.get("controllerId").toString()); Integer recordCount = Optional.ofNullable(controllerSv.deleteControllerById(controllerId)).orElse(0); if(recordCount == 0) { return BaseResponseUtils.buildFail(ProjectResultCode.DELETE_CONTROLLER_FAIL.getMessage()); } return BaseResponseUtils.buildSuccess(true) ; } /** * 导出控制器列表 * @param response * @param vo */ @SneakyThrows(IOException.class) @RequestMapping(value = "/export", method = RequestMethod.GET) public void export(HttpServletResponse response, QueryVo vo) { setExcelRespProp(response, "控制器列表"); //List<VoDivide> memberList = LocalJsonUtil.getListFromJson("json/members.json", VoDivide.class); List<VoController> memberList = controllerSv.export(vo); EasyExcel.write(response.getOutputStream()) .head(VoController.class) .excelType(ExcelTypeEnum.XLSX) .sheet("控制器列表") .doWrite(memberList); } /** * 设置excel下载响应头属性 */ private void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException { response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); } } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -62,4 +63,34 @@ public Integer addController(PrController po) { return prControllerMapper.insert(po); } /** * 根据控制器编号获取控制器列表 * @param controllerCode * @return */ public List<Map<String, Object>> getControllersByCode(String controllerCode) { return prControllerMapper.getControllersByCode(controllerCode); } /** * 根据控制器编号逻辑删除控制 * @param controllerId * @return */ public Integer deleteControllerById(Long controllerId) { return prControllerMapper.deleteControllerById(controllerId); } /** * 根据指定条件导出控制器列表 * @param queryVo * @return */ public List<VoController> export(QueryVo queryVo) { Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); List<VoController> rsVo = new ArrayList<>(); rsVo = prControllerMapper.getControllers(params); return rsVo ; } } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java
@@ -20,6 +20,9 @@ @Schema(name = "控制器查询条件") public class QueryVo extends QueryConditionVo { @Schema(description = "控制器ID") private Long id; @Schema(description = "控制器编号") private String controllerCode; pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -235,8 +235,8 @@ * @param vo */ @SneakyThrows(IOException.class) @RequestMapping(value = "/exportDivides", method = RequestMethod.GET) public void exportDivides(HttpServletResponse response, QueryVo vo) { @RequestMapping(value = "/export", method = RequestMethod.GET) public void export(HttpServletResponse response, QueryVo vo) { setExcelRespProp(response, "分水房列表"); //List<VoDivide> memberList = LocalJsonUtil.getListFromJson("json/members.json", VoDivide.class); List<VoDivide> memberList = divideSv.exportDivides(vo); pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
@@ -26,7 +26,9 @@ * 控制器 */ CONTROLLER_FAIL(30001, "控制器添加失败"), NO_RECORDS(30001, "没有符合条件的控制器数据"), NO_RECORDS(30002, "没有符合条件的控制器数据"), PLEASE_INPUT_CONTROLLER_ID(30003, "请输入控制器编号"), DELETE_CONTROLLER_FAIL(30004, "控制器删除失败"), /** * 取水口、控制器关联