From 0af78b53f3e2b272ea2ec6ff923abe3b9815b19f Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 31 十二月 2021 14:28:02 +0800
Subject: [PATCH] 功能完善

---
 dao/src/main/resources/mapper/IpVolumeMissionMapper.xml                                   |   57 +++-
 dao/src/main/java/com/sandu/ximon/dao/mapper/IpVolumeMissionMapper.java                   |    8 
 dao/src/main/resources/mapper/IpVolumeFileMapper.xml                                      |    6 
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java              |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java |   59 ++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeMissionParam.java           |  141 ++++++++---
 dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java                            |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java          |    4 
 ximon-admin/src/main/resources/application-dev.yml                                        |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java       |  323 +++++++++++++++++++++++---
 dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeMission.java                         |   63 ++---
 11 files changed, 523 insertions(+), 148 deletions(-)

diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
index 8453e23..1b53378 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeFile.java
@@ -44,12 +44,12 @@
     /**
      * 鏂囦欢澶у皬
      */
-    private String fileSize;
+    private Double fileSize;
 
     /**
      * 
      */
-    private String fileUrl;
+    private Long originSize;
 
     /**
      * 鍒涘缓鏃堕棿
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeMission.java b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeMission.java
index 61320d9..a3bc99a 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeMission.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/IpVolumeMission.java
@@ -4,36 +4,42 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
 
-import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
+import java.io.Serializable;
+import java.math.BigInteger;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import lombok.Data;
 
 /**
  * ip闊虫煴浠诲姟
+ *
  * @TableName ip_volume_mission
  */
-@TableName(value ="ip_volume_mission")
+@TableName(value = "ip_volume_mission")
 @Data
 public class IpVolumeMission implements Serializable {
     /**
-     * 
+     *
      */
     @TableId
-    private Long id;
+    private Integer taskId;
 
     /**
-     * 
+     *
      */
     private Long userId;
 
     /**
-     * 
+     *
      */
     private String userName;
 
-
+    /**
+     *
+     */
     private Long clientId;
 
     /**
@@ -42,24 +48,14 @@
     private String missionName;
 
     /**
-     * 鎾斁鏂囦欢
+     * 鏂囦欢url
      */
-    private String missionFileName;
-
-    /**
-     * 鎾斁鏂囦欢id
-     */
-    private Long missionFileId;
+    private String missionFileUrl;
 
     /**
      * 鎾斁缁堢鏁伴噺
      */
     private Integer numberInPlay;
-
-    /**
-     * 鍦ㄧ嚎鐘舵��
-     */
-    private Integer onLineState;
 
     /**
      * 鍒涘缓鏃堕棿
@@ -69,33 +65,28 @@
     /**
      * 寮�濮嬫棩鏈�
      */
-    private String onDate;
+    private BigInteger onDate;
 
     /**
      * 缁撴潫鏃ユ湡
      */
-    private String offDate;
+    private BigInteger offDate;
 
     /**
      * 鏄熸湡鑼冨洿
      */
-    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
-    private String weeksRange;
-
-    /**
-     * 寮�濮嬫椂鍒�
-     */
-    private String onTime;
-
-    /**
-     * 缁撴潫鏃跺埢
-     */
-    private String offTime;
+    private Integer week;
 
     /**
      * 浠诲姟闊抽噺
      */
-    private String missionVolume;
+    private Integer missionVolume;
+
+    /*@TableField
+    private List<IpVolumeFile> files;*/
+
+    /*@TableField
+    private List<String> fileNames;*/
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/IpVolumeMissionMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/IpVolumeMissionMapper.java
index 661a801..6c6564c 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/IpVolumeMissionMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/IpVolumeMissionMapper.java
@@ -1,8 +1,11 @@
 package com.sandu.ximon.dao.mapper;
 
-import com.sandu.ximon.dao.domain.IpVolumeMission;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sandu.ximon.dao.bo.IpVolumeMissionBo;
+import com.sandu.ximon.dao.domain.IpVolumeMission;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
 
 /**
  * @Entity com.sandu.ximon.dao.domain.IpVolumeMission
@@ -10,6 +13,9 @@
 @Mapper
 public interface IpVolumeMissionMapper extends BaseMapper<IpVolumeMission> {
 
+
+   List<IpVolumeMissionBo> listAllByClientId();
+
 }
 
 
diff --git a/dao/src/main/resources/mapper/IpVolumeFileMapper.xml b/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
index f8740bc..562589f 100644
--- a/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
+++ b/dao/src/main/resources/mapper/IpVolumeFileMapper.xml
@@ -10,14 +10,14 @@
             <result property="userName" column="user_name" jdbcType="VARCHAR"/>
             <result property="clientId" column="client_id" jdbcType="BIGINT"/>
             <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
-            <result property="fileSize" column="file_size" jdbcType="VARCHAR"/>
-            <result property="fileUrl" column="file_url" jdbcType="VARCHAR"/>
+            <result property="fileSize" column="file_size" jdbcType="DOUBLE"/>
+            <result property="originSize" column="origin_size" jdbcType="BIGINT"/>
             <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id,user_id,user_name,
         client_id,file_name,file_size,
-        file_url,create_time
+        origin_size,create_time
     </sql>
 </mapper>
diff --git a/dao/src/main/resources/mapper/IpVolumeMissionMapper.xml b/dao/src/main/resources/mapper/IpVolumeMissionMapper.xml
index 298d69a..bd0b533 100644
--- a/dao/src/main/resources/mapper/IpVolumeMissionMapper.xml
+++ b/dao/src/main/resources/mapper/IpVolumeMissionMapper.xml
@@ -5,31 +5,56 @@
 <mapper namespace="com.sandu.ximon.dao.mapper.IpVolumeMissionMapper">
 
     <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.IpVolumeMission">
-        <id property="id" column="id" jdbcType="BIGINT"/>
+        <id property="taskId" column="task_id" jdbcType="INTEGER"/>
         <result property="userId" column="user_id" jdbcType="BIGINT"/>
         <result property="userName" column="user_name" jdbcType="VARCHAR"/>
         <result property="clientId" column="client_id" jdbcType="BIGINT"/>
         <result property="missionName" column="mission_name" jdbcType="VARCHAR"/>
-        <result property="missionFileName" column="mission_file_name" jdbcType="VARCHAR"/>
-        <result property="missionFileId" column="mission_file_id" jdbcType="BIGINT"/>
+        <result property="missionFileUrl" column="mission_file_url" jdbcType="VARCHAR"/>
         <result property="numberInPlay" column="number_in_play" jdbcType="INTEGER"/>
-        <result property="onLineState" column="on_line_state" jdbcType="INTEGER"/>
         <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-        <result property="onDate" column="on_date" jdbcType="VARCHAR"/>
-        <result property="offDate" column="off_date" jdbcType="VARCHAR"/>
-        <result property="weeksRange" column="weeks_ range"
-                typeHandler="com.sandu.common.mybatis.JsonStringArrayTypeHandler"/>
-        <result property="onTime" column="on_time" jdbcType="VARCHAR"/>
-        <result property="offTime" column="off_time" jdbcType="VARCHAR"/>
-        <result property="missionVolume" column="mission_volume" jdbcType="VARCHAR"/>
+        <result property="onDate" column="on_date" jdbcType="BIGINT"/>
+        <result property="offDate" column="off_date" jdbcType="BIGINT"/>
+        <result property="week" column="week" jdbcType="INTEGER"/>
+        <result property="missionVolume" column="mission_volume" jdbcType="INTEGER"/>
+        <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
+
     </resultMap>
 
+
     <sql id="Base_Column_List">
-        id
+        task_id
         ,user_id,user_name,
-        mission_name,mission_file_name,mission_file_id,
-        number_in_play,on_line_state,create_time,
-        on_date,off_date,weeks_ range,
-        on_time,off_time,mission_volume
+        client_id,mission_name,mission_file_url,
+        number_in_play,create_time,on_date,
+        off_date,week,mission_volume
     </sql>
+    <select id="listAllByClientId" resultType="com.sandu.ximon.dao.bo.IpVolumeMissionBo">
+        SELECT
+            t1.task_id,
+            t1.mission_name,
+            t1.number_in_play,
+            t1.create_time,
+            t1.user_name
+        FROM
+            ip_volume_mission t1
+                JOIN ip_volume_file t2
+                JOIN broadcast_v2_task_file t3 ON t1.task_id = t3.task_id
+                AND t2.id = t3.file_id group by task_id
+    </select>
+
+
+    <!-- SELECT
+     t1.task_id,
+     t1.mission_name,
+     t1.number_in_play,
+     t1.create_time,
+     t1.user_name,
+     t2.file_name
+     FROM
+     ip_volume_mission t1
+     JOIN ip_volume_file t2
+     JOIN broadcast_v2_task_file t3 ON t1.task_id = t3.task_id
+     AND t2.id = t3.file_id-->
+
 </mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
index 6ae49bb..50f1d33 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/IpVolumeMissionController.java
@@ -19,28 +19,71 @@
     private final IpVolumeMissionService ipVolumeMissionService;
 
 
+    /**
+     *
+     * @param missionParam
+     * @return
+     */
     @PostMapping("/add")
     public ResponseVO<Object> addMission(@RequestBody IpVolumeMissionParam missionParam) {
         return ResponseUtil.success(ipVolumeMissionService.addMission(missionParam));
     }
 
-    @GetMapping("/update/{id}")
-    public ResponseVO<Object> updateMission(@PathVariable Long id, @RequestBody IpVolumeMissionParam missionParam) {
-        return ResponseUtil.success(ipVolumeMissionService.updateMission(id, missionParam));
+    /**
+     *
+     * @param taskId
+     * @param missionParam
+     * @return  0锛氭垚鍔� 1锛氭湇鍔″櫒鏃犺浠诲姟 2锛氫换鍔℃鍦ㄦ墽琛岋紝鏃犳硶淇敼 3锛氭湇鍔″櫒淇敼澶辫触
+     *       4锛氫换鍔″悕绉颁笉鍙负绌�  5锛氭枃浠跺垪琛ㄤ笉鍙负绌� 6锛氱粓绔垪琛ㄤ笉鍙负绌�
+     */
+    @PostMapping("/update/{taskId}")
+    public ResponseVO<Object> updateMission(@PathVariable Integer taskId, @RequestBody IpVolumeMissionParam missionParam) {
+        Integer result = ipVolumeMissionService.updateMission(taskId, missionParam);
+        if(result == 0){
+            return ResponseUtil.success("淇敼鎴愬姛");
+        }else if(result == 1){
+            return ResponseUtil.fail("鏈嶅姟鍣ㄦ棤璇ヤ换鍔�");
+        }else if(result == 2){
+            return ResponseUtil.fail("浠诲姟姝e湪鎵ц锛屾棤娉曚慨鏀�");
+        }else if(result == 3){
+            return ResponseUtil.fail("鏈嶅姟鍣ㄤ慨鏀瑰け璐�");
+        }else if(result == 4){
+            return ResponseUtil.fail("浠诲姟鍚嶇О涓嶅彲涓虹┖");
+        }else if(result == 5){
+            return ResponseUtil.fail("鏂囦欢鍒楄〃涓嶅彲涓虹┖");
+        }else if(result == 6){
+            return ResponseUtil.fail("缁堢鍒楄〃涓嶅彲涓虹┖");
+        }else {
+            return ResponseUtil.fail("鏈煡閿欒");
+        }
+
     }
 
-    @GetMapping("/delete/{id}")
-    public ResponseVO<Object> deleteMission(@PathVariable Long id) {
-        return ResponseUtil.success(ipVolumeMissionService.deleteMission(id));
+    @PostMapping("/delete/{taskId}")
+    public ResponseVO<Object> deleteMission(@PathVariable Integer taskId) {
+        //  0锛氭垚鍔�   1锛氫换鍔′笉澶勪簬绌洪棽鐘舵�� 2:鏈嶅姟鍣ㄥ垹闄ゅけ璐�
+        Integer result = ipVolumeMissionService.deleteMission(taskId);
+        if(result == 0) {
+            return ResponseUtil.success("鍒犻櫎鎴愬姛");
+        }else if(result == 1){
+            return ResponseUtil.fail("浠诲姟姝e湪鎵ц涓�");
+        }else if(result == 2){
+            return ResponseUtil.fail("鏈嶅姟鍣ㄥ垹闄ゅけ璐�");
+        }else if(result==-1){
+            return ResponseUtil.success("鏈嶅姟鍣ㄥ垹闄ゆ垚鍔�,鏁版嵁搴撴湭鎵惧埌璇ヤ换鍔�");
+        } else{
+            return ResponseUtil.fail("鏈煡閿欒");
+        }
     }
 
 
     // @AnonymousAccess
-    @PostMapping("/list")
+    @GetMapping("/list")
     public ResponseVO<Object> listMission() {
         //List<LampPost> list = lampPostService.list();
         // return ResponseUtil.success(list);
-        return ResponseUtil.success(ipVolumeMissionService.list());
+       // return ResponseUtil.success(ipVolumeMissionService.list());
         // todo
+        return ResponseUtil.success(ipVolumeMissionService.missionList());
     }
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
index aac2c83..b78fbb6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeFileParam.java
@@ -12,8 +12,10 @@
 public class IpVolumeFileParam {
 
     private String fileName;
-    private String fileSize;
+    private String fileSize;//LCD鐢�
+    private Double fileSizeIp;//ip闊虫煴鐢�
     private String fileUrl;
+    private Long originSize;//ip闊虫煴鐢�
     private String fileType;
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeMissionParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeMissionParam.java
index a6ba8ae..013f541 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeMissionParam.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/IpVolumeMissionParam.java
@@ -2,9 +2,14 @@
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
+import com.sandu.ximon.admin.vo.TaskMediaFileVO;
+import com.sandu.ximon.admin.vo.TaskRunTimeVO;
+import com.sandu.ximon.admin.vo.TaskTerminalVO;
 import lombok.Data;
 
+import java.math.BigInteger;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * @Author liuhaonan
@@ -14,47 +19,109 @@
 @Data
 public class IpVolumeMissionParam {
 
+
+    /**
+     * 闊虫煴浠诲姟鍚嶇О
+     */
     private String missionName;
-
-    /**
-     * 鎾斁鏂囦欢
-     */
-    private String missionFileName;
-
-    /**
-     * 鎾斁鏂囦欢id
-     */
-    private Long missionFileId;
-
-    /**
-     * 寮�濮嬫棩鏈�
-     */
-    private String onDate;
-
-    /**
-     * 缁撴潫鏃ユ湡
-     */
-    private String offDate;
-
-    /**
-     * 鏄熸湡鑼冨洿
-     */
-    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
-    private String weeksRange;
-
-    /**
-     * 寮�濮嬫椂鍒�
-     */
-    private String onTime;
-
-    /**
-     * 缁撴潫鏃跺埢
-     */
-    private String offTime;
 
     /**
      * 浠诲姟闊抽噺
      */
-    private String missionVolume;
+    private Integer missionVolume;
+
+
+    /**
+     * 寮�濮嬫棩鏈�
+     */
+    private BigInteger onDate;
+
+    /**
+     * 缁撴潫鏃ユ湡
+     */
+    private BigInteger offDate;
+
+    /**
+     * 鏄熸湡鑼冨洿
+     */
+    private String week;
+
+
+
+    TaskMediaFileVO[] files;
+
+    TaskTerminalVO[] terminals;
+
+    private List<Integer> terminalIds;
+    private List<Integer> fileIds;
+
+    TaskRunTimeVO[] exec;
+
+/*
+
+    */
+/**
+     * 闊虫煴浠诲姟鍚嶇О
+     *//*
+
+    private String missionName;
+
+    */
+/**
+     * 鎾斁鏂囦欢
+     *//*
+
+    private String missionFileName;
+
+    */
+/**
+     * 鎾斁鏂囦欢id
+     *//*
+
+    private Long missionFileId;
+
+
+    */
+/**
+     * 寮�濮嬫棩鏈�
+     *//*
+
+    private String onDate;
+
+    */
+/**
+     * 缁撴潫鏃ユ湡
+     *//*
+
+    private String offDate;
+
+    */
+/**
+     * 鏄熸湡鑼冨洿
+     *//*
+
+    private String week;
+
+    */
+/**
+     * 寮�濮嬫椂鍒�
+     *//*
+
+    private Integer onTime;
+
+    */
+/**
+     * 缁撴潫鏃跺埢
+     *//*
+
+    private Integer offTime;
+
+    */
+/**
+     * 浠诲姟闊抽噺
+     *//*
+
+    private Integer missionVolume;
+*/
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
index 8053284..f8bcee9 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeFileService.java
@@ -35,8 +35,8 @@
             file.setClientId(clientService.getClientId());
         }
         file.setFileName(fileParam.getFileName());
-        file.setFileSize(fileParam.getFileSize());
-        file.setFileUrl(fileParam.getFileUrl());
+        file.setFileSize(fileParam.getFileSizeIp());
+        file.setOriginSize(fileParam.getOriginSize());
         return save(file);
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
index 3b4ae18..1e0c7b3 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/IpVolumeMissionService.java
@@ -1,18 +1,28 @@
 package com.sandu.ximon.admin.service;
 
-import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
+import com.sandu.ximon.admin.config.MinIoConstant;
 import com.sandu.ximon.admin.param.IpVolumeMissionParam;
 import com.sandu.ximon.admin.param.ReceiveParam;
 import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.TaskAPIUtils;
+import com.sandu.ximon.admin.vo.TaskMediaFileVO;
+import com.sandu.ximon.admin.vo.TaskTerminalVO;
+import com.sandu.ximon.dao.bo.IpVolumeMissionBo;
+import com.sandu.ximon.dao.domain.BroadcastV2TaskFile;
+import com.sandu.ximon.dao.domain.BroadcastV2TaskTerminal;
+import com.sandu.ximon.dao.domain.IpVolumeFile;
 import com.sandu.ximon.dao.domain.IpVolumeMission;
 import com.sandu.ximon.dao.mapper.IpVolumeMissionMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 
 /**
@@ -25,57 +35,277 @@
 public class IpVolumeMissionService extends BaseServiceImpl<IpVolumeMissionMapper, IpVolumeMission> {
     private final IpVolumeMissionMapper ipVolumeMissionMapper;
     private final ClientService clientService;
+    private final IpVolumeFileService ipVolumeFileService;
+    private final BroadcastV2TaskFileService broadcastV2TaskFileService;
+    private final BroadcastV2TaskTerminalService broadcastV2TaskTerminalService;
 
     public boolean addMission(IpVolumeMissionParam missionparam) {
-        IpVolumeMission mission = new IpVolumeMission();
 
-        mission.setUserId(SecurityUtils.getUserId());
-        mission.setUserName(SecurityUtils.getUsername());
-        mission.setClientId(clientService.getClientId());
-        mission.setMissionName(missionparam.getMissionName());
-        mission.setMissionFileId(missionparam.getMissionFileId());
-        mission.setMissionFileName(missionparam.getMissionFileName());
-        mission.setOnDate(missionparam.getOnDate());
-        mission.setOffDate(missionparam.getOffDate());
-        mission.setWeeksRange(missionparam.getWeeksRange());
-        mission.setOnTime(missionparam.getOnTime());
-        mission.setOffTime(missionparam.getOffTime());
-        mission.setMissionVolume(missionparam.getMissionVolume());
+        String taskName = missionparam.getMissionName();
 
-        return save(mission);
+        if (null == taskName || "".equals(taskName)) {
+            throw new BusinessException("浠诲姟鍚嶇О涓嶅彲涓虹┖");
+            //return 1;
+        }
+
+        if (missionparam.getFileIds().size() <= 0) {
+            throw new BusinessException("鎾斁鏂囦欢涓嶅彲涓虹┖");
+            //return 2;
+        }
+
+        if (missionparam.getTerminalIds().size() <= 0) {
+            throw new BusinessException("鎾斁缁堢涓嶅彲涓虹┖");
+           // return 3;
+        }
+
+        //  灏佽鎾斁缁堢
+        List<TaskTerminalVO> taskTerminalVOList = new ArrayList<>();
+        //  灏佽鏁版嵁搴撲腑浠诲姟缁堢缁戝畾
+        List<BroadcastV2TaskTerminal> taskTerminalEntityList = new ArrayList<>();
+        for(Integer id: new HashSet<>(missionparam.getTerminalIds())) {
+            TaskTerminalVO taskTerminalVO = new TaskTerminalVO();
+            BroadcastV2TaskTerminal taskTerminalEntity = new BroadcastV2TaskTerminal();
+
+            taskTerminalVO.setI(id);
+            taskTerminalEntity.setTerminalId(id);
+
+            taskTerminalVOList.add(taskTerminalVO);
+            taskTerminalEntityList.add(taskTerminalEntity);
+        }
+
+        //  灏佽鎾斁鏂囦欢鍒楄〃
+        List<TaskMediaFileVO> taskMediaFileVOS = new ArrayList<>();
+        List<BroadcastV2TaskFile> taskFileEntityList = new ArrayList<>();
+        int i = 1;
+        for(Integer fileId: new HashSet<>(missionparam.getFileIds())) {
+            TaskMediaFileVO taskMediaFileVO = new TaskMediaFileVO();
+            BroadcastV2TaskFile taskFileEntity = new BroadcastV2TaskFile();
+
+            taskFileEntity.setFileId(fileId);
+
+            IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId);
+            String absolutePath = MinIoConstant.getAbsolutePath(
+                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
+                    fileEntity.getFileName()
+            );
+
+            taskMediaFileVO.setI(i);
+            i++;
+            taskMediaFileVO.setT(0);
+            taskMediaFileVO.setN(absolutePath);
+            taskMediaFileVO.setS(BigInteger.valueOf(fileEntity.getOriginSize()));
+
+            taskMediaFileVOS.add(taskMediaFileVO);
+            taskFileEntityList.add(taskFileEntity);
+        }
+
+
+        missionparam.setFiles(taskMediaFileVOS.toArray(new TaskMediaFileVO[taskMediaFileVOS.size()]));
+        missionparam.setTerminals(taskTerminalVOList.toArray(new TaskTerminalVO[taskTerminalVOList.size()]));
+        System.out.println("---------------------------");
+        //  鍚慖P闊虫煴鏈嶅姟鍣ㄦ坊鍔犱换鍔�
+        Integer taskId = TaskAPIUtils.addTask(missionparam);
+       // System.out.println("---------------------------");
+        //Integer taskId = 1111;
+
+        if (null != taskId && taskId != 0) {
+            IpVolumeMission byId = getById(taskId);
+            for (BroadcastV2TaskTerminal v2TaskTerminal: taskTerminalEntityList) {
+                v2TaskTerminal.setTaskId(taskId);
+            }
+            for (BroadcastV2TaskFile v2TaskFile :taskFileEntityList) {
+                v2TaskFile.setTaskId(taskId);
+            }
+            if (null == byId) {
+                //  鍚戞暟鎹簱娣诲姞璇ヤ换鍔¤褰�
+
+                IpVolumeMission mission = new IpVolumeMission();
+                mission.setTaskId(taskId);
+                mission.setUserId(SecurityUtils.getClientId());
+                if (SecurityUtils.getClientId() != null) {
+                    mission.setUserName(SecurityUtils.getUsername());
+                }
+                mission.setClientId(clientService.getClientId());
+                mission.setMissionName(missionparam.getMissionName());
+                mission.setOnDate(missionparam.getOnDate());
+                mission.setOffDate(missionparam.getOffDate());
+                mission.setWeek(Integer.parseInt(missionparam.getWeek(), 2));//鏃堕棿鐢变簩杩涘埗瀛楃涓茶浆鎹负鍗佽繘鍒�
+                mission.setMissionVolume(missionparam.getMissionVolume());
+                //mission.setMissionFileUrl(missionparam.getFiles().toString());
+                mission.setNumberInPlay(missionparam.getTerminals().length);
+                /*TaskTerminalVO[] terminals = missionparam.getTerminals();*/
+
+                System.out.println(save(mission));
+                System.out.println("----------------------------------------------------------");
+
+
+            } else {//[Lcom.sandu.ximon.admin.vo.TaskMediaFileVO;@b5558c3
+
+                IpVolumeMission mission = new IpVolumeMission();
+                mission.setTaskId(taskId);
+                mission.setMissionName(missionparam.getMissionName());
+                mission.setOnDate(missionparam.getOnDate());
+                mission.setOffDate(missionparam.getOffDate());
+                mission.setWeek(Integer.parseInt(missionparam.getWeek(), 2));//鏃堕棿鐢变簩杩涘埗瀛楃涓茶浆鎹负鍗佽繘鍒�
+                mission.setMissionVolume(missionparam.getMissionVolume());
+                mission.setMissionFileUrl(missionparam.getFiles().toString());
+                mission.setNumberInPlay(missionparam.getTerminals().length);
+                System.out.println(updateById(mission));
+                System.out.println("----------------------------------------------------------");
+            }
+            broadcastV2TaskFileService.deleteByTaskId(taskId);
+            broadcastV2TaskTerminalService.deleteByTaskId(taskId);
+            broadcastV2TaskTerminalService.saveBatch(taskTerminalEntityList);
+            broadcastV2TaskFileService.saveBatch(taskFileEntityList);
+
+            return true;
+        } else {
+            return false;
+        }
+
     }
 
-    public boolean updateMission(Long missionId, IpVolumeMissionParam missionparam) {
-        IpVolumeMission byId = getById(missionId);
-        if (byId == null) {
-            throw new BusinessException("鏈壘鍒拌浠诲姟");
+    public Integer updateMission(Integer taskId, IpVolumeMissionParam missionparam) {
+
+        String taskName = missionparam.getMissionName();
+
+        if(null == taskName || "".equals(taskName)) {
+            return 4;
         }
-        IpVolumeMission mission = new IpVolumeMission();
-        mission.setId(missionId);
-      /*  mission.setUserId(SecurityUtils.getUserId());
-        mission.setUserName(SecurityUtils.getUsername());
-        mission.setClientId(clientService.getClientId());*/
-        mission.setMissionName(missionparam.getMissionName());
-        mission.setMissionFileId(missionparam.getMissionFileId());
-        mission.setMissionFileName(missionparam.getMissionFileName());
-        mission.setOnDate(missionparam.getOnDate());
-        mission.setOffDate(missionparam.getOffDate());
-        mission.setWeeksRange(missionparam.getWeeksRange());
-        mission.setOnTime(missionparam.getOnTime());
-        mission.setOffTime(missionparam.getOffTime());
-        mission.setMissionVolume(missionparam.getMissionVolume());
 
-        HttpUtil.post("123", String.valueOf(mission));
+        if(missionparam.getFileIds().size()<=0){
+            return 5;
+        }
 
-        return updateById(mission);
+        if(missionparam.getTerminalIds().size()<=0){
+            return 6;
+        }
+
+
+        //  灏佽鎾斁缁堢
+        List<TaskTerminalVO> taskTerminalVOList = new ArrayList<>();
+        //  灏佽鏁版嵁搴撲腑浠诲姟缁堢缁戝畾
+        List<BroadcastV2TaskTerminal> taskTerminalEntityList = new ArrayList<>();
+        for(Integer id: new HashSet<>(missionparam.getTerminalIds())) {
+            TaskTerminalVO taskTerminalVO = new TaskTerminalVO();
+            BroadcastV2TaskTerminal taskTerminalEntity = new BroadcastV2TaskTerminal();
+
+            taskTerminalVO.setI(id);
+            taskTerminalEntity.setTerminalId(id);
+
+            taskTerminalVOList.add(taskTerminalVO);
+            taskTerminalEntityList.add(taskTerminalEntity);
+        }
+
+        //  灏佽鎾斁鏂囦欢鍒楄〃
+        List<TaskMediaFileVO> taskMediaFileVOS = new ArrayList<>();
+        List<BroadcastV2TaskFile> taskFileEntityList = new ArrayList<>();
+        int i = 1;
+        for(Integer fileId: new HashSet<>(missionparam.getFileIds())) {
+            TaskMediaFileVO taskMediaFileVO = new TaskMediaFileVO();
+            BroadcastV2TaskFile taskFileEntity = new BroadcastV2TaskFile();
+
+            taskFileEntity.setFileId(fileId);
+
+            IpVolumeFile fileEntity = ipVolumeFileService.getById(fileId);
+            String absolutePath = MinIoConstant.getAbsolutePath(
+                    MinIoConstant.BROADCAST_FILE.getBucketName() + fileEntity.getUserId(),
+                    fileEntity.getFileName()
+            );
+
+            taskMediaFileVO.setI(i);
+            i++;
+            taskMediaFileVO.setT(0);
+            taskMediaFileVO.setN(absolutePath);
+            taskMediaFileVO.setS(BigInteger.valueOf(fileEntity.getOriginSize()));
+
+            taskMediaFileVOS.add(taskMediaFileVO);
+            taskFileEntityList.add(taskFileEntity);
+        }
+
+
+        missionparam.setFiles(taskMediaFileVOS.toArray(new TaskMediaFileVO[taskMediaFileVOS.size()]));
+        missionparam.setTerminals(taskTerminalVOList.toArray(new TaskTerminalVO[taskTerminalVOList.size()]));
+        System.out.println("---------------------------");
+
+        //  鍚慖P闊虫煴鏈嶅姟鍣ㄦ洿鏂颁换鍔�
+        Integer result = TaskAPIUtils.updateTask(taskId, missionparam);
+
+        if(result==0){
+            IpVolumeMission byId = getById(taskId);
+            for (BroadcastV2TaskTerminal v2TaskTerminal: taskTerminalEntityList) {
+                v2TaskTerminal.setTaskId(taskId);
+            }
+            for (BroadcastV2TaskFile v2TaskFile :taskFileEntityList) {
+                v2TaskFile.setTaskId(taskId);
+            }
+            if (null == byId) {
+                //  鍚戞暟鎹簱娣诲姞璇ヤ换鍔¤褰�
+
+                IpVolumeMission mission = new IpVolumeMission();
+                mission.setTaskId(taskId);
+                mission.setUserId(SecurityUtils.getUserId());
+                if (SecurityUtils.getUserId() != null) {
+                    mission.setUserName(SecurityUtils.getUsername());
+                }
+                mission.setClientId(clientService.getClientId());
+                mission.setMissionName(missionparam.getMissionName());
+                mission.setOnDate(missionparam.getOnDate());
+                mission.setOffDate(missionparam.getOffDate());
+                mission.setWeek(Integer.parseInt(missionparam.getWeek(), 2));//鏃堕棿鐢变簩杩涘埗瀛楃涓茶浆鎹负鍗佽繘鍒�
+                mission.setMissionVolume(missionparam.getMissionVolume());
+               // mission.setMissionFileUrl(missionparam.getFiles().toString());
+                mission.setNumberInPlay(missionparam.getTerminals().length);
+                /*TaskTerminalVO[] terminals = missionparam.getTerminals();*/
+
+                System.out.println(save(mission));
+                System.out.println("----------------------------------------------------------");
+            } else {//[Lcom.sandu.ximon.admin.vo.TaskMediaFileVO;@b5558c3
+
+                IpVolumeMission mission = new IpVolumeMission();
+                mission.setTaskId(taskId);
+                mission.setMissionName(missionparam.getMissionName());
+                mission.setOnDate(missionparam.getOnDate());
+                mission.setOffDate(missionparam.getOffDate());
+                mission.setWeek(Integer.parseInt(missionparam.getWeek(), 2));//鏃堕棿鐢变簩杩涘埗瀛楃涓茶浆鎹负鍗佽繘鍒�
+                mission.setMissionVolume(missionparam.getMissionVolume());
+               // mission.setMissionFileUrl(missionparam.getFiles().toString());
+                mission.setNumberInPlay(missionparam.getTerminals().length);
+                System.out.println(updateById(mission));
+                System.out.println("----------------------------------------------------------");
+            }
+            broadcastV2TaskFileService.deleteByTaskId(taskId);
+            broadcastV2TaskTerminalService.deleteByTaskId(taskId);
+            broadcastV2TaskTerminalService.saveBatch(taskTerminalEntityList);
+            broadcastV2TaskFileService.saveBatch(taskFileEntityList);
+            return 0;
+
+        }else {
+            return result;
+        }
     }
 
-    public boolean deleteMission(Long missionId) {
-        IpVolumeMission byId = getById(missionId);
-        if (byId == null) {
-            throw new BusinessException("鏈壘鍒拌浠诲姟");
+    /**
+     * 鍒犻櫎浠诲姟
+     * @param taskId
+     * @return0锛氭垚鍔�   1锛氫换鍔′笉澶勪簬绌洪棽鐘舵�� 2:鏈嶅姟鍣ㄥ垹闄ゅけ璐�
+     */
+    public Integer deleteMission(Integer taskId) {
+        Integer del = TaskAPIUtils.delTask(taskId);
+        if(del==0){
+            IpVolumeMission byId = getById(taskId);
+            if (byId == null) {
+               return -1;
+            }
+            removeById(taskId);
+            broadcastV2TaskFileService.removeById(taskId);
+            broadcastV2TaskTerminalService.removeById(taskId);
+            return 0;
         }
-        return removeById(missionId);
+        else {
+            return del;
+        }
+
     }
 
     public List<IpVolumeMission> listMission(ReceiveParam receiveParam) {
@@ -85,8 +315,19 @@
         return list(wrapper);
     }
 
+    public List<IpVolumeMissionBo> missionList() {
+        List<IpVolumeMissionBo> ipVolumeMissionBos = ipVolumeMissionMapper.listAllByClientId();
 
-    public void setMissionToData(Long missionId,List<Long> dateIds){
+        for (IpVolumeMissionBo missionBo: ipVolumeMissionBos) {
+            missionBo.setFileNames(broadcastV2TaskFileService.findByTaskid(missionBo.getTaskId()));
+
+        }
+
+        return ipVolumeMissionBos;
+        //return new ArrayList<>();
+    }
+
+    public void setMissionToData(Long missionId, List<Long> dateIds) {
 
 
         // tudo
diff --git a/ximon-admin/src/main/resources/application-dev.yml b/ximon-admin/src/main/resources/application-dev.yml
index a415311..444a387 100644
--- a/ximon-admin/src/main/resources/application-dev.yml
+++ b/ximon-admin/src/main/resources/application-dev.yml
@@ -14,7 +14,7 @@
     password: chenjiantian1992 # Redis鏈嶅姟鍣ㄨ繛鎺ュ瘑鐮侊紙榛樿涓虹┖锛�
     timeout: 300ms # 杩炴帴瓒呮椂鏃堕棿锛堟绉掞級
 server:
-  port: 20017
+  port: 8080
 sandu:
   jwt:
     header: Authorization

--
Gitblit v1.9.3