wuzeyu
2024-03-29 6cf6a4c4670c2ebd7a2995921dfef74a3139430f
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -1,10 +1,28 @@
package com.dy.pipIrrProject.controller;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
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 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.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
 * @author ZhuBaoMin
@@ -19,12 +37,143 @@
    @Autowired
    private PrControllerMapper prControllerMapper;
    @Autowired
    private PrIntakeMapper prIntakeMapper;
    @Autowired
    private PrIntakeControllerMapper prIntakeControllerMapper;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * 根据指定获取控制器记录
     *
     * @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);
        QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>();
        rsVo.pageSize = queryVo.pageSize;
        rsVo.pageCurr = queryVo.pageCurr;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = prControllerMapper.getControllers(params);
        ArrayList<Object> list = new ArrayList<>();
        List<VoController> controllers = prControllerMapper.getControllers(params);
        for (int i = 0; i < controllers.size(); i++) {
            VoController controller = controllers.get(i);
            String rtuAddr = controller.getRtuAddr();
            list.add(rtuAddr);
        }
        String url = "http://localhost:8080/accMw/com/send";
        HttpEntity<?> httpEntity = new HttpEntity<>(list);
        ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
        JSONObject data = JSONObject.parseObject(entity.getBody()).getJSONObject("data");
        data.getString("rtuAddr");
        return rsVo;
    }
    /**
     * 添加控制器
     *
     * @param po
     * @return
     */
    public Integer addController(PrController po) {
        return prControllerMapper.insert(po);
        prControllerMapper.insert(po);
        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("绑定");
        prIntakeControllerMapper.insert(addPrIntakeController);
        return 1;
    }
    /**
     * 根据控制器地址获取控制器列表
     *
     * @param rtuAddr
     * @return
     */
    public List<Map<String, Object>> getControllersByAddr(String rtuAddr) {
        return prControllerMapper.getControllersByAddr(rtuAddr);
    }
    /**
     * 根据控制器编号逻辑删除控制
     *
     * @param controllerId
     * @return
     */
    public Integer deleteControllerById(Long controllerId) {
        return prControllerMapper.deleteControllerById(controllerId);
    }
    /**
     * 根据指定条件导出控制器列表
     *
     * @param queryVo
     * @return
     */
    public List<VoController> export(QueryVo queryVo) {
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
        List<VoController> rsVo = new ArrayList<>();
        rsVo = prControllerMapper.getControllers(params);
        return rsVo;
    }
    /**
     * 根据控制器编号获取未删除的控制器数量
     *
     * @param controllerId
     * @return
     */
    public Integer getRecordCountOfController(Long controllerId) {
        return prControllerMapper.getRecordCountOfController(controllerId);
    }
    /**
     * 根据控制器编号获取已绑定记录数
     *
     * @param controllerId
     * @return
     */
    public Integer getBindedCount(Long controllerId) {
        return prControllerMapper.getBindedCount(controllerId);
    }
    /**
     * 根据主键删除外键
     *
     * @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;
    }
}