| | |
| | | package com.dy.pipIrrProject.controller; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | 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.QueryResultVo; |
| | | import com.dy.pipIrrGlobal.daoPr.PrControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper; |
| | | import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrController; |
| | | import com.dy.pipIrrGlobal.pojoPr.PrIntakeController; |
| | | import com.dy.pipIrrGlobal.voPr.VoController; |
| | | import com.dy.pipIrrGlobal.voPr.VoOnLineIntake; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.dubbo.common.utils.PojoUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpEntity; |
| | | import org.springframework.http.HttpHeaders; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.client.RestTemplate; |
| | | import org.springframework.web.util.UriComponentsBuilder; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | |
| | | @Autowired |
| | | private PrControllerMapper prControllerMapper; |
| | | |
| | | @Autowired |
| | | private PrIntakeMapper prIntakeMapper; |
| | | |
| | | @Autowired |
| | | private PrIntakeControllerMapper prIntakeControllerMapper; |
| | | |
| | | @Autowired |
| | | private RestTemplate restTemplate; |
| | | |
| | | protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send"; |
| | | |
| | | |
| | | /** |
| | | * 根据指定获取控制器记录 |
| | | * |
| | | * @param queryVo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoController>> getControllers(QueryVo queryVo) { |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); |
| | | |
| | | Long itemTotal = prControllerMapper.getRecordCount(params); |
| | | Command com = new Command(); |
| | | com.id = Command.defaultId; |
| | | com.code = "LCD0001"; |
| | | com.type = "innerCommand"; |
| | | |
| | | QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>() ; |
| | | Integer pageCurr = 0; |
| | | Integer pageSize = 10000; |
| | | rsVo.pageCurr = 1; |
| | | rsVo.pageSize = 10000; |
| | | if(queryVo.pageSize != null && queryVo.pageCurr != null) { |
| | | rsVo.pageSize = queryVo.pageSize ; |
| | | JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); |
| | | |
| | | if (response != null && response.getString("code").equals("0001")) { |
| | | JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap"); |
| | | HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); |
| | | |
| | | JSONArray jsonArray = new JSONArray(); |
| | | for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("rtuAddr", entry.getKey()); |
| | | jsonObject.put("isOnLine", entry.getValue()); |
| | | jsonArray.add(jsonObject); |
| | | } |
| | | queryVo.setOnLineMap(jsonArray.toJSONString()); |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); |
| | | |
| | | Long itemTotal = prControllerMapper.getRecordCount(params); |
| | | |
| | | QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>(); |
| | | rsVo.pageSize = queryVo.pageSize; |
| | | rsVo.pageCurr = queryVo.pageCurr; |
| | | pageSize = queryVo.pageSize ; |
| | | pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString()); |
| | | } |
| | | params.put("pageCurr", pageCurr); |
| | | params.put("pageSize", pageSize); |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = prControllerMapper.getControllers(params); |
| | | return rsVo ; |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = prControllerMapper.getControllers(params); |
| | | return rsVo; |
| | | } else { |
| | | QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>(); |
| | | return rsVo; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 添加控制器 |
| | | * |
| | | * @param po |
| | | * @return |
| | | */ |
| | | public Integer addController(PrController po) { |
| | | return 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()); |
| | | addPrIntakeController.setOperatetype((byte) 1); |
| | | addPrIntakeController.setOperator(po.getOperator()); |
| | | addPrIntakeController.setOperatedt(po.getOperateDt()); |
| | | addPrIntakeController.setRemarks("绑定"); |
| | | int rec = prIntakeControllerMapper.insert(addPrIntakeController); |
| | | if (rec == 0) { |
| | | return 0; |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 根据控制器地址获取控制器列表 |
| | | * |
| | | * @param rtuAddr |
| | | * @return |
| | | */ |
| | |
| | | } |
| | | |
| | | /** |
| | | * 根据控制器编号逻辑删除控制 |
| | | * 根据控制器编号物理删除控制 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | | public Integer deleteControllerById(Long controllerId) { |
| | | return prControllerMapper.deleteControllerById(controllerId); |
| | | return prControllerMapper.deleteByPrimaryKey(controllerId); |
| | | } |
| | | |
| | | /** |
| | | * 根据指定条件导出控制器列表 |
| | | * |
| | | * @param queryVo |
| | | * @return |
| | | */ |
| | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); |
| | | List<VoController> rsVo = new ArrayList<>(); |
| | | rsVo = prControllerMapper.getControllers(params); |
| | | return rsVo ; |
| | | return rsVo; |
| | | } |
| | | |
| | | /** |
| | | * 根据控制器编号获取未删除的控制器数量 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | | public Integer getRecordCountOfController(Long controllerId) { |
| | | return prControllerMapper.getRecordCountOfController(controllerId); |
| | | } |
| | | |
| | | /** |
| | | * 根据控制器编号获取已绑定记录数 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据主键删除外键 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | | public Integer deleteIntakeId(Long controllerId) { |
| | | return prControllerMapper.deleteIntakeId(controllerId); |
| | | } |
| | | |
| | | /** |
| | | * 获取未绑控制器的取水口列表 |
| | | * |
| | | * @return |
| | | */ |
| | | public JSONArray getNoBindingIntakes() { |
| | | List<Map<String, Object>> list = Optional.ofNullable(prIntakeMapper.getNoBindingIntakes()).orElse(new ArrayList<>()); |
| | | JSONArray array = null; |
| | | if (list.size() > 0) { |
| | | array = JSONArray.parseArray(JSON.toJSONString(list)); |
| | | } |
| | | return array; |
| | | } |
| | | |
| | | /** |
| | | * 根据控制器编号物理删除控制 |
| | | * 2024-6-7 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | | public Integer deleteControllerByIdTwo(Long controllerId) { |
| | | return prControllerMapper.deleteByPrimaryKey(controllerId); |
| | | } |
| | | |
| | | /** |
| | | * 根据主键查询控制器列表 |
| | | * 2024-6-7 |
| | | * |
| | | * @param controllerId |
| | | * @return |
| | | */ |
| | | public PrController getByControllerId(Long controllerId) { |
| | | return prControllerMapper.selectByPrimaryKey(controllerId); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 发送命令 |
| | | * |
| | | * @return |
| | | */ |
| | | protected BaseResponse sendCom2Mw(Command com) { |
| | | String url = UriComponentsBuilder.fromUriString(mwUrlSendCom) |
| | | .build() |
| | | .toUriString(); |
| | | HttpHeaders headers = new HttpHeaders(); |
| | | HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers); |
| | | ResponseEntity<BaseResponse> response = null; |
| | | try { |
| | | // 通过Post方式调用接口 |
| | | response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return response.getBody(); |
| | | } |
| | | } |