|
@@ -1,8 +1,8 @@
|
|
|
package com.ruoyi.sim.service.impl;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
-import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
@@ -13,6 +13,7 @@ import com.ruoyi.sim.domain.vo.TaskVo;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.ruoyi.sim.mapper.TaskMapper;
|
|
@@ -36,8 +37,40 @@ public class TaskService {
|
|
|
* @param taskId 任务主键
|
|
|
* @return 任务
|
|
|
*/
|
|
|
- public Task selectTaskByTaskId(Long taskId) {
|
|
|
- return taskMapper.selectTaskByTaskId(taskId);
|
|
|
+ public AjaxResult selectTaskByTaskId(Long taskId) {
|
|
|
+ // check
|
|
|
+ if (taskId == null) {
|
|
|
+ return AjaxResult.error("taskId is null");
|
|
|
+ }
|
|
|
+ Task t = taskMapper.selectTaskByTaskId(taskId);
|
|
|
+ if (t == null) {
|
|
|
+ return AjaxResult.error("task is null");
|
|
|
+ }
|
|
|
+ //
|
|
|
+ TaskVo vo = new TaskVo();
|
|
|
+ String simType = t.getSimType();
|
|
|
+ BeanUtils.copyProperties(t, vo);
|
|
|
+ // 查询获得数据结构。
|
|
|
+ List<FaultTreeVo> listToQ = (List<FaultTreeVo>) faultService.selectAllTreeViaSimType(simType).get(AjaxResult.DATA_TAG);
|
|
|
+ // 变成扁平list
|
|
|
+ List<FaultTreeVo> listToF = FaultService.flatten(listToQ);
|
|
|
+ for (FaultTreeVo o : listToF) {
|
|
|
+ if (o == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (Fault.FAULT_TYPE_3.equals(o.getFaultType())) {
|
|
|
+ TaskFault tf = o.getTaskFault();
|
|
|
+ TaskFault tfQ = taskFaultService.selectUniqueTaskFault(taskId, tf.getFaultId());
|
|
|
+ // 存在就设置上数据库中TaskFault值。
|
|
|
+ if (tfQ != null) {
|
|
|
+ o.setTaskFault(tfQ);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 变成树list
|
|
|
+ vo.setSelectedData(FaultService.toTree(listToF, Fault.ROOT_FAULT_ID));
|
|
|
+ //
|
|
|
+ return AjaxResult.success(vo);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -53,12 +86,66 @@ public class TaskService {
|
|
|
/**
|
|
|
* 修改任务
|
|
|
*
|
|
|
- * @param task 任务
|
|
|
+ * @param tv 任务
|
|
|
* @return 结果
|
|
|
*/
|
|
|
- public int updateTask(Task task) {
|
|
|
- task.setUpdateTime(DateUtils.getNowDate());
|
|
|
- return taskMapper.updateTask(task);
|
|
|
+ public AjaxResult updateTaskByTeacher(TaskVo tv) {
|
|
|
+ l.info("updateTaskByTeacher " + tv);
|
|
|
+ // check
|
|
|
+ if (tv == null) {
|
|
|
+ return AjaxResult.error("TaskVo empty!");
|
|
|
+ }
|
|
|
+ if (!faultService.checkSimTypeOk(tv.getSimType())) {
|
|
|
+ return AjaxResult.error("simType error!");
|
|
|
+ }
|
|
|
+ if (!Task.TASK_TYPE_TEACHER_ADD.equals(tv.getTaskType())) {
|
|
|
+ return AjaxResult.error("taskType value error!");
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(tv.getName())) {
|
|
|
+ return AjaxResult.error("name isEmpty!");
|
|
|
+ }
|
|
|
+ //
|
|
|
+ tv.setCreateByUserId(SecurityUtils.getUserId());
|
|
|
+ tv.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ tv.setCreateTime(DateUtils.getNowDate());
|
|
|
+ tv.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ tv.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ tv.setRemark("");
|
|
|
+ tv.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ taskMapper.updateTask(tv);
|
|
|
+ List<FaultTreeVo> selectedData = tv.getSelectedData();
|
|
|
+ if (selectedData != null) {
|
|
|
+ List<FaultTreeVo> list = FaultService.flatten(selectedData);
|
|
|
+ for (FaultTreeVo ftv : list) {
|
|
|
+ if (ftv == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!Fault.FAULT_TYPE_3.equals(ftv.getFaultType())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ TaskFault tf = ftv.getTaskFault();
|
|
|
+ // check
|
|
|
+ if (tf == null) {
|
|
|
+ return AjaxResult.error("TaskFault empty!");
|
|
|
+ }
|
|
|
+ String flag = tf.getFlag();
|
|
|
+ if (StringUtils.isEmpty(flag)) {
|
|
|
+ return AjaxResult.error("flag empty!");
|
|
|
+ }
|
|
|
+ if (TaskFault.UNKNOWN.equals(flag)) {
|
|
|
+ return AjaxResult.error("flag UNKNOWN!");
|
|
|
+ }
|
|
|
+ if (!TaskFault.YES.equals(flag) && !TaskFault.NO.equals(flag)) {
|
|
|
+ return AjaxResult.error("flag must YES or NO!");
|
|
|
+ }
|
|
|
+ // todo:选中数量限制
|
|
|
+
|
|
|
+ // todo:故障部位冲突
|
|
|
+ tf.setTaskId(tv.getTaskId());
|
|
|
+ taskFaultService.insertOrUpdateTaskFault(tf);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -105,7 +192,7 @@ public class TaskService {
|
|
|
*/
|
|
|
@Transactional
|
|
|
public AjaxResult insertTaskByTeacher(TaskVo tv) {
|
|
|
- l.info("task new task " + tv);
|
|
|
+ l.info("insertTaskByTeacher " + tv);
|
|
|
// check
|
|
|
if (tv == null) {
|
|
|
return AjaxResult.error("TaskVo empty!");
|
|
@@ -126,8 +213,8 @@ public class TaskService {
|
|
|
tv.setUpdateBy(SecurityUtils.getUsername());
|
|
|
tv.setUpdateTime(DateUtils.getNowDate());
|
|
|
tv.setRemark("");
|
|
|
- List<FaultTreeVo> selectedData = tv.getSelectedData();
|
|
|
taskMapper.insertTask(tv);
|
|
|
+ List<FaultTreeVo> selectedData = tv.getSelectedData();
|
|
|
if (selectedData != null) {
|
|
|
List<FaultTreeVo> list = FaultService.flatten(selectedData);
|
|
|
for (FaultTreeVo ftv : list) {
|