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