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