From 923c0034e6618a640ed7b20cd4a20534faf9965e Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 16 五月 2024 10:39:44 +0800
Subject: [PATCH] 田间灌溉项目管理 批量删除项目接口 查询一个项目接口 分页查询项目接口
---
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java | 22 ++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml | 51 +++++++++
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java | 71 ++++++++++++-
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java | 33 ++++++
pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java | 26 +++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java | 46 +++++++++
7 files changed, 240 insertions(+), 11 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
index 91b2091..f73a9f3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrProjectMapper.java
@@ -4,8 +4,13 @@
import com.dy.pipIrrGlobal.pojoIr.IrProject;
import com.dy.pipIrrGlobal.pojoPr.PrController;
import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
/**
* @author :WuZeYu
@@ -21,10 +26,11 @@
int deleteLogicById(Long id);
//鏀�
int updateByPrimaryKeySelective(IrProject record);
+//鏌ヤ竴涓�
+ IrProject selectById(Long id);
/**
* 淇敼椤圭洰鐘舵��
- * @param id
* @return
*/
int updateProjectState(IrProject record);
@@ -35,4 +41,18 @@
* @return
*/
Long getSupperByVillageId(long vaId);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰曟暟
+ * @param params
+ * @return
+ */
+ Long getRecordCount(Map<?, ?> params);
+
+ /**
+ * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍙栨按鍙h褰�
+ * @param params
+ * @return
+ */
+ List<VoProject> getProjects(Map<?, ?> params);
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java
new file mode 100644
index 0000000..fad1580
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voIr/VoProject.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrGlobal.voIr;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15 21:02
+ * @LastEditTime :2024/5/15 21:02
+ * @Description
+ */
+@Data
+@Schema(title = "椤圭洰瑙嗗浘瀵硅薄")
+public class VoProject implements BaseEntity {
+ @Schema(title = "椤圭洰ID")
+ @ExcelProperty("椤圭洰ID")
+ @ColumnWidth(15)
+ private String projectId;
+
+
+ @Schema(title = "椤圭洰鍚嶇О")
+ @ExcelProperty("椤圭洰鍚嶇О")
+ @ColumnWidth(15)
+ private String projectName;
+
+
+ @Schema(title = "椤圭洰鐘舵��")
+ @ExcelProperty("椤圭洰鐘舵��")
+ @ColumnWidth(2)
+ private String projectState;
+
+
+ @Schema(title = "椤圭洰鍦板潃")
+ @ExcelProperty("椤圭洰鍦板潃")
+ @ColumnWidth(25)
+ private String address;
+
+
+ @Schema(title = "椤圭洰澶囨敞")
+ @ExcelProperty("椤圭洰澶囨敞")
+ @ColumnWidth(250)
+ private String remarks;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
index bc12c84..d451fd2 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrProjectMapper.xml
@@ -17,6 +17,11 @@
<result column="operate_time" jdbcType="TIMESTAMP" property="operateDt" />
<result column="deleted" jdbcType="TINYINT" property="deleted" />
</resultMap>
+ <sql id="Base_Column_List">
+ <!--@mbg.generated-->
+ id, project_name, province_id, city_id, county_id, town_id, `village_id`, project_state, remarks, `operator`,
+ operate_time, deleted
+ </sql>
<!--娣诲姞-->
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
<!--@mbg.generated-->
@@ -115,7 +120,7 @@
set deleted = 1
where id = #{id,jdbcType=BIGINT}
</delete>
-
+ <!--淇敼淇℃伅-->
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrProject">
update ir_project
<set>
@@ -155,7 +160,7 @@
</set>
where id = #{id,jdbcType=BIGINT}
</update>
-
+ <!--淇敼鐘舵��-->
<update id="updateProjectState">
update ir_project
set project_state = #{projectState,jdbcType=TINYINT},
@@ -163,4 +168,46 @@
operate_time = #{operateDt,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
+ <!--鏌ヨ涓�涓俊鎭�-->
+ <select id="selectById" resultMap="BaseResultMap">
+ select <include refid="Base_Column_List" /> from ir_project where id = #{id,jdbcType=BIGINT} and deleted = 0
+ </select>
+ <!--鍒嗛〉鏌ヨ鏁伴噺-->
+ <select id="getRecordCount" resultType="java.lang.Long">
+ SELECT COUNT(*) AS recordCount
+ FROM ir_project pro
+ <where>
+ pro.deleted = 0
+ <if test="projectName != null and projectName != ''">
+ AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+ </if>
+ <if test = "projectState != null and projectState != ''">
+ AND pro.project_state = #{projectState}
+ </if>
+ </where>
+ </select>
+ <!--鍒嗛〉鏌ヨ鏁版嵁-->
+ <select id="getProjects" resultType="com.dy.pipIrrGlobal.voIr.VoProject">
+ SELECT
+ CAST(pro.id AS char)AS projectId,
+ pro.project_name AS projectName,
+ pro.project_state AS projectState,
+ CONCAT(province.`name`,city.`name`,country.`name`, town.`name`, village.`name`) AS address,
+ pro.remarks
+ FROM ir_project pro
+ LEFT JOIN ba_district province ON pro.province_id = province.id
+ LEFT JOIN ba_district city ON pro.city_id = city.id
+ LEFT JOIN ba_district country ON pro.county_id = country.id
+ LEFT JOIN ba_district town ON pro.town_id = town.id
+ LEFT JOIN ba_district village ON pro.village_id = village.id
+ <where>
+ pro.deleted = 0
+ <if test="projectName != null and projectName != ''">
+ AND pro.project_name LIKE CONCAT('%', #{projectName}, '%')
+ </if>
+ <if test = "projectState != null and projectState != ''">
+ AND pro.project_state = #{projectState}
+ </if>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
index ddcbe74..ee36545 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectCtrl.java
@@ -3,8 +3,13 @@
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.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
+import com.dy.pipIrrGlobal.voSe.VoActiveCard;
import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
@@ -19,10 +24,7 @@
import org.springframework.http.MediaType;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Array;
import java.util.*;
@@ -118,12 +120,13 @@
@PostMapping(path = "delete_batch", consumes = MediaType.APPLICATION_JSON_VALUE)
@Transactional(rollbackFor = Exception.class)
@SsoAop()
- public BaseResponse<Boolean> delete_batch(@RequestBody List<Long> projectIds) {
+ public BaseResponse<Boolean> delete_batch(@RequestBody Map<String,List> projectIds) {
if (projectIds == null || projectIds.size() <= 0) {
BaseResponseUtils.buildFail(IrrigateResultCode.PLEASE_INPUT_PROJECT_ID.getMessage());
}
- for (int i = 0; i < projectIds.size(); i++) {
- Long projectId = projectIds.get(i);
+ List ids = projectIds.get("projectIds");
+ for (int i = 0; i < ids.size(); i++) {
+ long projectId = Long.parseLong(ids.get(i).toString());
try {
Integer rows = projectSv.deleteProject(projectId);
if (rows == 0) {
@@ -201,4 +204,58 @@
}
return BaseResponseUtils.buildSuccess(true);
}
+
+ /**
+ * 鑾峰彇涓�涓」鐩暟鎹�
+ *
+ * @return 鑾峰彇涓�涓」鐩暟鎹�
+ */
+ @Operation(summary = "鑾峰彇涓�涓」鐩暟鎹�", description = "鑾峰彇涓�涓」鐩暟鎹�")
+ @ApiResponses(value = {
+ @ApiResponse(
+ responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+ description = "鑾峰彇涓�涓」鐩暟鎹紙BaseResponse.content:{}锛�",
+ content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+ schema = @Schema(implementation = IrProject.class))}
+ )
+ })
+ @GetMapping(path = "one")
+ @SsoAop()
+ public BaseResponse<IrProject> one(@RequestParam Long id) {
+ IrProject irProject = this.projectSv.selectById(id);
+ if (irProject == null) {
+ return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
+ } else {
+ return BaseResponseUtils.buildSuccess(irProject);
+ }
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param vo
+ * @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 = VoActiveCard.class))}
+ )
+ })
+ @GetMapping(path = "some")
+ @SsoAop()
+ public BaseResponse<QueryResultVo<List<VoProject>>> getIntakes(QueryVo vo) {
+ try {
+ QueryResultVo<List<VoProject>> res = projectSv.getProjects(vo);
+ if (res == null) {
+ return BaseResponseUtils.buildFail(IrrigateResultCode.NO_PROJECT.getMessage());
+ }
+ return BaseResponseUtils.buildSuccess(res);
+ } catch (Exception e) {
+ log.error("鑾峰彇椤圭洰璁板綍寮傚父", e);
+ return BaseResponseUtils.buildException(e.getMessage());
+ }
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
index 3d9e86d..8b4d90a 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/ProjectSv.java
@@ -1,13 +1,19 @@
package com.dy.pipIrrIrrigate.project;
+import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoIr.IrProjectMapper;
import com.dy.pipIrrGlobal.pojoIr.IrProject;
+import com.dy.pipIrrGlobal.voIr.VoProject;
+import com.dy.pipIrrGlobal.voPr.VoIntake;
import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
+import java.util.List;
+import java.util.Map;
/**
* @author :WuZeYu
@@ -113,4 +119,31 @@
}
return 1;
}
+
+ /**
+ * 鑾峰彇涓�涓」鐩暟鎹�
+ * @param id
+ * @return
+ */
+ public IrProject selectById(Long id){
+ IrProject irProject = irProjectMapper.selectById(id);
+ return irProject;
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ椤圭洰
+ * @param queryVo
+ * @return
+ */
+ public QueryResultVo<List<VoProject>> getProjects(QueryVo queryVo){
+ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+ Long itemTotal = irProjectMapper.getRecordCount(params);
+
+ QueryResultVo<List<VoProject>> rsVo = new QueryResultVo<>();
+ rsVo.pageSize = queryVo.pageSize;
+ rsVo.pageCurr = queryVo.pageCurr;
+ rsVo.calculateAndSet(itemTotal, params);
+ rsVo.obj = irProjectMapper.getProjects(params);
+ return rsVo;
+ }
}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java
new file mode 100644
index 0000000..a8985ea
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/project/QueryVo.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrIrrigate.project;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/5/15 21:11
+ * @LastEditTime :2024/5/15 21:11
+ * @Description
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "椤圭洰鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+ @Schema(description = "椤圭洰鍚嶇О")
+ public String projectName;
+
+ @Schema(description = "椤圭洰鐘舵��")
+ public String projectState;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
index 57eaebf..8d4670b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
@@ -20,7 +20,7 @@
PLEASE_INPUT_PROJECT_ID(10002, "璇疯緭鍏ラ」鐩甀D"),
DELETE_PROJECT_FAIL(10003, "椤圭洰鍒犻櫎澶辫触"),
UPDATE_PROJECT_FAIL(10004, "椤圭洰淇敼澶辫触"),
- NO_DIVIDES(10001, "鏃犵鍚堟潯浠剁殑鍒嗘按鎴胯褰�");
+ NO_PROJECT(10005, "鏃犵鍚堟潯浠剁殑椤圭洰璁板綍");
private final Integer code;
--
Gitblit v1.8.0