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