pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeControllerMapper.java
@@ -52,4 +52,11 @@ * @return 取水口与控制器绑定列表 */ List<Map<String, Object>> getBindsByControllerId(@Param("controllerId") Long controllerId); /** * 修改绑定记录通过取水口 * @param record * @return */ int updateByIntakeSelective(PrIntakeController record); } pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrControllerMapper.xml
@@ -247,7 +247,7 @@ SELECT COUNT(*) AS recordCount FROM pr_controller WHERE deleted = 0 AND id = ${controllerId} </select> <!--根据控制器编号获取已绑定记录数--> <!--根据流浪控制器编号获取已绑定记录数--> <select id="getBindedCount" resultType="java.lang.Integer"> SELECT COUNT(*) AS recordCount FROM pr_controller WHERE rtuAddr = (SELECT rtuAddr FROM pr_controller_tramp WHERE id = ${controllerId}) AND intakeId IS NOT NULL </select> pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeControllerMapper.xml
@@ -186,4 +186,26 @@ </if> ORDER BY ic.operateDt DESC </select> <!--根据取水口编号修改绑定记录列表--> <update id="updateByIntakeSelective"> update pr_intake_controller <set> <if test="controllerid != null"> controllerId = #{controllerid,jdbcType=BIGINT}, </if> <if test="operatetype != null"> operateType = #{operatetype,jdbcType=TINYINT}, </if> <if test="remarks != null"> remarks = #{remarks,jdbcType=VARCHAR}, </if> <if test="operator != null"> `operator` = #{operator,jdbcType=BIGINT}, </if> <if test="operatedt != null"> operateDt = #{operatedt,jdbcType=TIMESTAMP}, </if> </set> where intakeId = #{intakeid,jdbcType=BIGINT} </update> </mapper> pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -4,6 +4,8 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.dy.common.mw.protocol.Command; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper; @@ -11,6 +13,7 @@ import com.dy.pipIrrGlobal.pojoPr.PrController; import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; import com.dy.pipIrrGlobal.voPr.VoController; import com.dy.pipIrrProject.result.ProjectResultCode; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -80,7 +83,10 @@ * @return */ public Integer addController(PrController po) { prControllerMapper.insert(po); int rows = prControllerMapper.insert(po); if(rows == 0) { return 0; } PrIntakeController addPrIntakeController = new PrIntakeController(); addPrIntakeController.setIntakeid(po.getIntakeId()); addPrIntakeController.setControllerid(po.getId()); @@ -88,7 +94,10 @@ addPrIntakeController.setOperator(po.getOperator()); addPrIntakeController.setOperatedt(po.getOperateDt()); addPrIntakeController.setRemarks("绑定"); prIntakeControllerMapper.insert(addPrIntakeController); int rec = prIntakeControllerMapper.insert(addPrIntakeController); if(rec == 0) { return 0; } return 1; } pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/DtoIntakeController.java
@@ -26,10 +26,10 @@ private Long intakeId; /** * 控制器ID * (流浪)控制器ID */ @Schema(description = "控制器ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "控制器ID不能为空") @Schema(description = "绑定时为流浪控制器ID/解绑时为控制器ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "(流浪)控制器ID不能为空") private Long controllerId; /** pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -53,9 +53,10 @@ * 取水口绑定控制器 * 1. 接收取水口ID及流浪控制器ID,并验证取水口和控制器是否存在 * 2. 判断该控制器是否存在未解绑记录,如果存在提示用户该控制器存在未解绑记录 * 3. 组装控制器对象插入控制器表中 * 4. 添加绑定记录 * 3. 组装控制器对象插入控制器表中(及添加绑定记录) * 4. 修改绑定记录设置备注 * 5. 删除流浪控制器(物理删除) * * @param po * @param bindingResult * @return @@ -79,20 +80,20 @@ } // 接收参数 Long intakeId = po.getIntakeId(); Long controllerId = po.getControllerId(); Long trampControllerId = po.getControllerId(); String remarks = po.getRemarks(); Long operator = po.getOperator(); // 根据编号分别获取取水口记录数、流浪控制器信息,判断取水口及控制器是否存在 Integer recIntke = Optional.ofNullable(intakeSv.getRecordCountOfIntake(intakeId)).orElse(0); PrControllerTramp prControllerTramp = intakeControllerSv.getTrampControllerInfo(controllerId); PrControllerTramp prControllerTramp = intakeControllerSv.getTrampControllerInfo(trampControllerId); //Map map_TrampController = Optional.ofNullable(intakeControllerSv.getTrampControllerInfo(controllerId)).orElse(new HashMap()); if(recIntke == 0 || prControllerTramp == null) { return BaseResponseUtils.buildFail(ProjectResultCode.INTAKE_OR_CONTROLLER_NO_EXIST.getMessage()); } // 根据控制器编号判断该控制器是否存在未解绑记录 Integer recBinded = Optional.ofNullable(controllerSv.getBindedCount(controllerId)).orElse(0); Integer recBinded = Optional.ofNullable(controllerSv.getBindedCount(trampControllerId)).orElse(0); if(recBinded > 0) { return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_BINDED.getMessage()); } @@ -113,17 +114,19 @@ return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage()); } // 添加绑定记录 PrIntakeController prIntakeController = DtoToPojo.INSTANCT.po2vo(po); prIntakeController.setOperatedt(operateTime); prIntakeController.setOperatetype((byte)1); Integer rec = Optional.ofNullable(intakeControllerSv.addRecord(prIntakeController)).orElse(0); // 修改绑定记录 PrIntakeController prIntakeController = new PrIntakeController(); prIntakeController.setRemarks(remarks); prIntakeController.setIntakeid(intakeId); Integer rec = Optional.ofNullable(intakeControllerSv.updateBindRecord(prIntakeController)).orElse(0); if(rec == 0) { return BaseResponseUtils.buildFail(ProjectResultCode.BIND_FAIL.getMessage()); } // 根据流浪控制器编号删除流浪控制器记录 intakeControllerSv.deleteTrampController(controllerId); intakeControllerSv.deleteTrampController(trampControllerId); return BaseResponseUtils.buildSuccess(true) ; } @@ -133,6 +136,7 @@ * 1. 接收取水口ID及流浪控制器ID,并验证取水口和控制器是否存在 * 2. 添加解绑记录 * 3. 删除控制器外键 * * @param po * @param bindingResult * @return @@ -188,6 +192,7 @@ /** * 根据取水口编号获取绑定记录列表 * * @param intakeId 取水口编号 * @return 取水口下控制器的绑定、解绑记录 */ @@ -211,13 +216,14 @@ }//成功返回绑定记录数据 return BaseResponseUtils.buildSuccess(list); } catch (Exception e) { log.error("查询农户异常", e); log.error("查询异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** * 根据控制器编号获取绑定记录列表 * * @param controllerId 控制器编号 * @return 与该控制器相关的绑定、解绑记录 */ @@ -236,11 +242,12 @@ try { List<Map<String, Object>> list = Optional.ofNullable(intakeControllerSv.getBindsByControllerId(controllerId)).orElse(new ArrayList<>()); if(list.size() <= 0) { return BaseResponseUtils.buildFail(ProjectResultCode.CONTROLLER_NO_RECORDS.getMessage()); //无绑定记录也返回成功 但数据为空 return BaseResponseUtils.buildSuccess(list); } return BaseResponseUtils.buildSuccess(list); } catch (Exception e) { log.error("查询农户异常", e); log.error("查询异常", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -282,6 +289,7 @@ /** * 添加流浪控制器 * * @param pct * @return */ @@ -299,6 +307,7 @@ /** * 删除流浪控制器 * * @param id * @return */ @@ -307,7 +316,9 @@ @SsoAop() public BaseResponse<Boolean> deleteTrampController(Long id){ PrControllerTramp controllerInfo = intakeControllerSv.getTrampControllerInfo(id); if (controllerInfo==null){return BaseResponseUtils.buildFail(ProjectResultCode.NO_EXIST_TRAMP_CONTROLLER.getMessage());} if (controllerInfo == null) { return BaseResponseUtils.buildFail(ProjectResultCode.NO_EXIST_TRAMP_CONTROLLER.getMessage()); } Integer rows = intakeControllerSv.deleteTrampController(id); if (rows == 0) { pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerSv.java
@@ -98,13 +98,13 @@ return prControllerTrampMapper.deleteByPrimaryKey(controllerId); } //增 //流浪控制器增 public Integer addTrampController(PrControllerTramp record){ return prControllerTrampMapper.insertSelective(record); } /*查*/ /*流浪控制器查*/ public QueryResultVo<List<PrControllerTramp>> getTrampControllers(TrampControllerQueryVo queryVo){ Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); @@ -119,4 +119,12 @@ return rsVo; } /** * 修改绑定记录通过取水口 * @param record * @return */ public Integer updateBindRecord(PrIntakeController record){ return prIntakeControllerMapper.updateByIntakeSelective(record); } }