xyc
2024-10-12 1ab5999f546adcca439eb32ea5ecd34819a13ff6
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java
@@ -14,7 +14,6 @@
import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao;
import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
import com.zt.life.modules.mainPart.basicInfo.service.XhProductModelService;
import com.zt.life.modules.mainPart.taskReliability.dao.*;
import com.zt.common.utils.JsonUtils2;
import com.zt.life.modules.mainPart.taskReliability.dao.SimulatAssessDao;
@@ -188,11 +187,13 @@
        int groupHeight = 20;
        double pointNumPerHour = 60.0 / simulatAssess.getSamplPeriod();
        //时序图线
        for (int i = 0; i < list.size(); i++) {
            x1 = 0;
            groupY = groupHeight * i;
            ProductStatusDto dto = list.get(i);
            double startTime = 0.0;
            for (StatusDto status : dto.getStatusList()) {
                switch (status.getStatus()) {
                    case "O":
@@ -211,9 +212,10 @@
                JSONObject lineJson = new JSONObject(templetsStrMap.get(status.getStatus()));
                setlineXy(lineJson, x1, y, x2, y, "");
                JsonUtils2.setJsonValueByPath(lineJson, "data/status".split("/"), status.getStatus());
                JsonUtils2.setJsonValueByPath(lineJson, "data/startTimes".split("/"), String.format("%.4f", x1));
                JsonUtils2.setJsonValueByPath(lineJson, "data/endTimes".split("/"), String.format("%.4f", x1 + status.getTimes()));
                JsonUtils2.setJsonValueByPath(lineJson, "data/startTimes".split("/"), String.format("%.1f", startTime));
                JsonUtils2.setJsonValueByPath(lineJson, "data/endTimes".split("/"), String.format("%.1f", startTime + status.getTimes()));
                JsonUtils2.setJsonValueByPath(lineJson, "id".split("/"), UUIDUtil.generateId().toString());
                startTime = startTime + status.getTimes();
                x1 = x2 - 5;
                jsonArray.add(lineJson);
            }
@@ -275,14 +277,14 @@
            JSONObject textJson = new JSONObject(templetsStrMap.get("text"));
            JsonUtils2.setJsonValueByPath(textJson, "data/dataId".split("/"), modelId);
            JsonUtils2.setJsonValueByPath(textJson, "id".split("/"), UUIDUtil.generateId().toString());
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), "模型"+(i+1));
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), "模型" + (i + 1));
            JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/modelName".split("/"), modelName);
            JsonUtils2.setJsonValueByPath(textJson, "size/width".split("/"), mapSpace.get("width")+10);
            JsonUtils2.setJsonValueByPath(textJson, "size/width".split("/"), mapSpace.get("width") + 10);
            double x11 = x1 + ((gkPoint - mapSpace.get("width")+12) / 2);
            double x11 = x1 + ((gkPoint - mapSpace.get("width") + 12) / 2);
            JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), x11);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y1-10);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y1 - 10);
            jsonArray.add(textJson);
            x1 = x2;
        }
@@ -307,7 +309,7 @@
            double x11 = x - mapSpace.get("width") / 2 - 5;
            JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), x11);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y2-10);
            JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y2 - 10);
            jsonArray.add(textJson);
            curPointHour += periodHour;
@@ -480,7 +482,8 @@
        List<TaskModelCheckResultDto> chkResult = taskService.checkTaskModel(simulatAssess.getProductId(),
                simulatAssess.getTaskModelId());
        if (chkResult.size() > 0) {
            result = Result.error("模型不完整,请检查模型定义及参数配置。");
//            result = Result.error("模型不完整,请检查模型定义及参数配置。");
            result = Result.ok(chkResult);
            return result;
        }
@@ -669,8 +672,8 @@
        }
    }
    private void addTasksTag(List<TaskPhaseModel> taskPhaseModelAll,
                             Element root) {
    public void addTasksTag(List<TaskPhaseModel> taskPhaseModelAll,
                            Element root) {
        Element tasksTag = root.addElement("tasks");
        for (TaskPhaseModel taskPhaseModel : taskPhaseModelAll) {
            Element taskTag = tasksTag.addElement("task");
@@ -746,8 +749,8 @@
        }
    }
    private void calcTaskPhaseModelDuration(TaskPhase taskPhase,
                                            List<TaskPhaseModel> taskPhaseModelAll) {
    public void calcTaskPhaseModelDuration(TaskPhase taskPhase,
                                           List<TaskPhaseModel> taskPhaseModelAll) {
        List<TaskPhaseModel> taskPhaseModels = taskPhaseModelDao.getListByPhaseId(taskPhase.getId());
        double totalRate = taskPhaseModels.stream().mapToDouble(TaskPhaseModel::getOperatConditDurationRate).sum();
        double sum = 0.0;
@@ -766,7 +769,7 @@
        taskPhaseModels.get(taskPhaseModels.size() - 1).setOperatConditDuration(duration + taskPhase.getPhaseDuration() - sum);
    }
    private List<TaskPhase> calcTaskPhaseDuration(Task task) {
    public List<TaskPhase> calcTaskPhaseDuration(Task task) {
        List<TaskPhase> taskPhases = taskPhaseDao.getListByTaskId(task.getId());
        double totalRate = taskPhases.stream().mapToDouble(TaskPhase::getPhaseDurationRate).sum();
        double sum = 0.0;
@@ -1039,6 +1042,7 @@
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        List<WeakDto> productList = baseDao.getProductList(taskId, productId);
@@ -1053,35 +1057,41 @@
            Object nameValue = jsonArray.getJSONObject(i).get("name");
            if (nameValue instanceof Long) {
                productId1 = (Long) nameValue;
                WeakDto weakDto = map.get(productId1);
                Double mtbfTime = null;
                if (map.get(productId1) != null) {
                    WeakDto weakDto = map.get(productId1);
                    Double mtbfTime = null;
                Double mtbf = (Double) jsonArray.getJSONObject(i).get("mttf");
                Double mttr = (Double) jsonArray.getJSONObject(i).get("mttr");
                Double msr = (Double) jsonArray.getJSONObject(i).get("msr");
                    Double mtbf = (Double) jsonArray.getJSONObject(i).get("mttf");
                    Double mttr = (Double) jsonArray.getJSONObject(i).get("mttr");
                    Double msr = (Double) jsonArray.getJSONObject(i).get("msr");
                data.setMtbf(mtbf);
                data.setMttr(mttr);
                data.setMsr(msr);
                    data.setMtbf(mtbf);
                    data.setMttr(mttr);
                    data.setMsr(msr);
                if (weakDto != null) {
                    data.setId(weakDto.getId());
                    data.setSort(weakDto.getSort());
                    data.setPid(weakDto.getPid());
                    data.setName(weakDto.getName());
                    data.setProductType(weakDto.getProductType());
                    data.setTimeRate(weakDto.getTimeRate());
                    mtbfTime = mtbf / weakDto.getTimeRate();
                    if (weakDto != null) {
                        data.setId(weakDto.getId());
                        data.setSort(weakDto.getSort());
                        data.setPid(weakDto.getPid());
                        data.setName(weakDto.getName());
                        data.setProductType(weakDto.getProductType());
                        data.setTimeRate(weakDto.getTimeRate());
                        mtbfTime = mtbf / weakDto.getTimeRate();
                    }
                    data.setMtbfTime(mtbfTime);
                    data.setIsWeak(0);
                    list.add(data);
                }
                data.setMtbfTime(mtbfTime);
                data.setIsWeak(0);
                list.add(data);
            }
        }
        List<WeakDto> treeList = TreeUtils.build(list);
        this.getIsweak(treeList.get(0).getChildren());
        List<WeakDto> treeList = new ArrayList<>();
        if (list.size() > 0) {
            treeList = TreeUtils.build(list);
            this.getIsweak(treeList.get(0).getChildren());
        }
        return treeList;
    }
@@ -1117,10 +1127,10 @@
            task = taskService.get(taskModelId);
            simulatAssess = this.getByTaskId(taskModelId);
            SimulaDataDto resultData;
            if (showProductId!=null){
            if (showProductId != null) {
                simulatAssess.setProductId(showProductId);
                resultData =this.getResultXML(simulatAssess);
            }else{
                resultData = this.getResultXML(simulatAssess);
            } else {
                resultData = this.getResultXML(simulatAssess);
            }