From 334fdde13d367eda195be02db2e1bc83f9d12b47 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期四, 04 一月 2024 14:20:44 +0800 Subject: [PATCH] 2024-01-04 朱宝民 增加控制器相关接口 --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java | 15 +++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java | 105 +++++++++++++++++++++++++- pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java | 4 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java | 31 +++++++ pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java | 3 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java | 4 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml | 78 ++++++++++++------- 7 files changed, 205 insertions(+), 35 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java index c1ab03e..8ca15b4 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrControllerMapper.java +++ b/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); } \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml index df83fbb..a746da5 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml +++ b/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> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java index d395513..4f15979 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerCtrl.java +++ b/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 = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝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"); + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java index 83c0f26..b479db8 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java +++ b/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 ; + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java index 23b3f73..da037f3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/QueryVo.java +++ b/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 = "鎺у埗鍣↖D") + private Long id; + @Schema(description = "鎺у埗鍣ㄧ紪鍙�") private String controllerCode; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java index 9f07908..64e007f 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java +++ b/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); diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java index 0e05a4e..bc9ec28 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java +++ b/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, "鎺у埗鍣ㄥ垹闄ゅけ璐�"), /** * 鍙栨按鍙c�佹帶鍒跺櫒鍏宠仈 -- Gitblit v1.8.0