Index: webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.java	(revision 37007)
+++ webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.java	(revision 37008)
@@ -5,6 +5,7 @@
 import com.novacloud.domain.model.MailList;
 import com.novacloud.domain.model.MailListView;
 import com.novacloud.util.database.SearchPageUtil;
+import org.apache.ibatis.annotations.Param;
 
 public interface MailListMapper {
     int deleteByPrimaryKey(String maillistId);
@@ -318,4 +319,13 @@
 	 * @throws
 	 */
 	List<String> queryMailinfoLimit(MailListView mailList);
+
+	/**
+	 * updateOnlineFlag(更新主表在线审单标志)
+	 * @return
+	 * @Exception 异常对象
+	 * @author weixu
+	 * @date 2024/2/26 14:48
+	 */
+	void updateOnlineFlag(@Param("maillistId") String maillistId);
 }
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.xml	(revision 37007)
+++ webmail-dao/src/main/java/com/novacloud/dao/MailListMapper.xml	(revision 37008)
@@ -2050,6 +2050,9 @@
                                maillist_dealtime = #{maillistDealtime,jdbcType=VARCHAR}
         where maillist_id = #{maillistId,jdbcType=VARCHAR}
     </update>
+    <update id="updateOnlineFlag">
+        update wm_maillist set maillist_online_review = '1', maillist_online_review_time = NOW() where maillist_id = #{maillistId}
+    </update>
     <!-- 查找全部实际邮件id -->
     <select id="queryMailinfoLimit" resultType="java.lang.String" parameterType="com.novacloud.domain.model.MailListView" >
         SELECT
Index: webmail-dao/src/main/java/com/novacloud/dao/ManualAllocationMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ManualAllocationMapper.xml	(revision 37007)
+++ webmail-dao/src/main/java/com/novacloud/dao/ManualAllocationMapper.xml	(revision 37008)
@@ -130,7 +130,8 @@
 				) THEN
 					today.ma_id
 				END
-			) totalnum 
+			) totalnum ,
+		    wu.account as account
 		FROM 
 			wm_user wu 
 		LEFT JOIN wm_dept wd ON wd.dept_id = wu.departname 
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.java	(revision 37008)
@@ -0,0 +1,33 @@
+package com.novacloud.dao;
+
+import com.novacloud.domain.model.share.ShareContainerBehaviorLog;
+import com.novacloud.domain.model.share.ShareContainerResultLogParam;
+import com.novacloud.domain.model.share.ShareContainerResultLogs;
+import com.novacloud.util.database.Page;
+import com.novacloud.util.database.SearchPageUtil;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ShareContainerBehaviorLogMapper {
+    int deleteByPrimaryKey(String behaviorId);
+
+    int insert(ShareContainerBehaviorLog record);
+
+    int insertSelective(ShareContainerBehaviorLog record);
+
+    ShareContainerBehaviorLog selectByPrimaryKey(String behaviorId);
+
+    int updateByPrimaryKeySelective(ShareContainerBehaviorLog record);
+
+    int updateByPrimaryKey(ShareContainerBehaviorLog record);
+
+    /**
+     * insertLogList(批量保存行为日志)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 14:42
+     */
+    void insertLogList(@Param("logList") List<ShareContainerBehaviorLog> logList);
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareContainerBehaviorLogMapper.xml	(revision 37008)
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.novacloud.dao.ShareContainerBehaviorLogMapper" >
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareContainerBehaviorLog" >
+    <id column="behavior_id" property="behaviorId" jdbcType="VARCHAR" />
+    <result column="maillist_id" property="maillistId" jdbcType="VARCHAR" />
+    <result column="container_id" property="containerId" jdbcType="VARCHAR" />
+    <result column="container_no" property="containerNo" jdbcType="VARCHAR" />
+    <result column="behavior_type" property="behaviorType" jdbcType="VARCHAR" />
+    <result column="crt_time" property="crtTime" jdbcType="TIMESTAMP" />
+    <result column="crt_user" property="crtUser" jdbcType="VARCHAR" />
+    <result column="behavior_data" property="behaviorData" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    behavior_id, maillist_id, container_id, container_no, behavior_type, crt_time, crt_user, 
+    behavior_data
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from share_container_behavior_log
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from share_container_behavior_log
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareContainerBehaviorLog" >
+    insert into share_container_behavior_log (behavior_id, maillist_id, container_id, 
+      container_no, behavior_type, crt_time, 
+      crt_user, behavior_data)
+    values (#{behaviorId,jdbcType=VARCHAR}, #{maillistId,jdbcType=VARCHAR}, #{containerId,jdbcType=VARCHAR}, 
+      #{containerNo,jdbcType=VARCHAR}, #{behaviorType,jdbcType=VARCHAR}, #{crtTime,jdbcType=TIMESTAMP}, 
+      #{crtUser,jdbcType=VARCHAR}, #{behaviorData,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareContainerBehaviorLog" >
+    insert into share_container_behavior_log
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="behaviorId != null" >
+        behavior_id,
+      </if>
+      <if test="maillistId != null" >
+        maillist_id,
+      </if>
+      <if test="containerId != null" >
+        container_id,
+      </if>
+      <if test="containerNo != null" >
+        container_no,
+      </if>
+      <if test="behaviorType != null" >
+        behavior_type,
+      </if>
+      <if test="crtTime != null" >
+        crt_time,
+      </if>
+      <if test="crtUser != null" >
+        crt_user,
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="behaviorId != null" >
+        #{behaviorId,jdbcType=VARCHAR},
+      </if>
+      <if test="maillistId != null" >
+        #{maillistId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerId != null" >
+        #{containerId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="behaviorType != null" >
+        #{behaviorType,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="crtUser != null" >
+        #{crtUser,jdbcType=VARCHAR},
+      </if>
+      <if test="behaviorData != null" >
+        #{behaviorData,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+    <insert id="insertLogList">
+      insert into share_container_behavior_log (behavior_id, maillist_id, container_id,
+                                                container_no, behavior_type, crt_time,
+                                                crt_user, behavior_data)
+      values
+      <foreach collection ="logList" item="item" index= "index" separator =",">
+        (#{item.behaviorId,jdbcType=VARCHAR}, #{item.maillistId,jdbcType=VARCHAR}, #{item.containerId,jdbcType=VARCHAR},
+        #{item.containerNo,jdbcType=VARCHAR}, #{item.behaviorType,jdbcType=VARCHAR}, #{item.crtTime,jdbcType=TIMESTAMP},
+        #{item.crtUser,jdbcType=VARCHAR}, #{item.behaviorData,jdbcType=VARCHAR})
+      </foreach>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareContainerBehaviorLog" >
+    update share_container_behavior_log
+    <set >
+      <if test="maillistId != null" >
+        maillist_id = #{maillistId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerId != null" >
+        container_id = #{containerId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        container_no = #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="behaviorType != null" >
+        behavior_type = #{behaviorType,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="crtUser != null" >
+        crt_user = #{crtUser,jdbcType=VARCHAR},
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data = #{behaviorData,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareContainerBehaviorLog" >
+    update share_container_behavior_log
+    set maillist_id = #{maillistId,jdbcType=VARCHAR},
+      container_id = #{containerId,jdbcType=VARCHAR},
+      container_no = #{containerNo,jdbcType=VARCHAR},
+      behavior_type = #{behaviorType,jdbcType=VARCHAR},
+      crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      crt_user = #{crtUser,jdbcType=VARCHAR},
+      behavior_data = #{behaviorData,jdbcType=VARCHAR}
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </update>
+</mapper>
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.java	(revision 37008)
@@ -0,0 +1,134 @@
+package com.novacloud.dao;
+
+import com.novacloud.domain.model.share.ShareContainer;
+import com.novacloud.domain.model.share.ShareContainerResult;
+import com.novacloud.domain.model.share.ShareContainerResultInfo;
+import com.novacloud.domain.model.share.ShareContainerResultLogParam;
+import com.novacloud.domain.model.share.ShareContainerResultLogs;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineReviewVo;
+import com.novacloud.util.database.SearchPageUtil;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ShareContainerResultMapper {
+    int deleteByPrimaryKey(String containerId);
+
+    int insert(ShareContainerResult record);
+
+    int insertSelective(ShareContainerResult record);
+
+    ShareContainerResult selectByPrimaryKey(String containerId);
+
+    int updateByPrimaryKeySelective(ShareContainerResult record);
+
+    int updateByPrimaryKey(ShareContainerResult record);
+
+    /**
+     * queryDataWithMainId(根据业务id和集装箱号查询结果表是否存在数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 13:56
+     */
+    ShareContainerResult queryDataWithMainId(@Param("maillistId") String maillistId, @Param("containerNo") String containerNo);
+
+    /**
+     * insertList(批量插入集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 14:39
+     */
+    void insertList(@Param("resultList") List<ShareContainerResult> resultList);
+
+    /**
+     * editContainerList(批量编辑集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 14:45
+     */
+    void editContainerList(@Param("editContainer") List<ShareContainerResult> editContainer);
+
+    /**
+     * deleteContainerList(根据集装箱id批量删除数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 14:49
+     */
+    void deleteContainerList(@Param("deleteContainer") List<String> deleteContainer);
+
+    /**
+     * queryContainerList(根据业务id获取集装箱号和集装箱id)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 17:50
+     */
+    List<ShareContainer> queryContainerList(@Param("maillistId") String maillistId);
+
+    /**
+     * queryContainerResultWithMainId(根据业务id获取集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/24 14:26
+     */
+    List<ShareContainerResult> queryContainerResultWithMainId(@Param("maillistId") String maillistId);
+
+    /**
+     * saveUpdateData(保存更新的数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/25 17:20
+     */
+    void saveUpdateData(@Param("updateData") List<ShareContainerResult> updateData);
+
+    /**
+     * queryShareContainerLogsListCount(查询集装箱操作日志数量)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 14:17
+     */
+    int queryShareContainerBusinessListCount(@Param("object") ShareContainerResultLogParam query, @Param("userid") String userid);
+
+    /**
+     * queryShareContainerLogsList(查询日志信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 15:55
+     */
+    List<ShareContainerResultLogs> queryShareContainerBusinessList(SearchPageUtil searchPageUtil);
+
+    /**
+     * queryContainerListByIdList(根据业务id查询拆分的集装箱信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 17:09
+     */
+    List<ShareContainerResultInfo> queryContainerListByIdList(@Param("query") ShareContainerResultLogParam query);
+
+    /**
+     * queryShareContainerResultInfo(查询集装箱要编辑的数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 16:29
+     */
+    ShareContainerResultInfo queryShareContainerResultInfo(@Param("containerId") String containerId);
+
+    /**
+     * queryShareContainerResultInfoList(查询在线审单需要的集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/28 10:31
+     */
+    List<ShareContainerWithOnlineReviewVo> queryShareContainerResultInfoList(@Param("containerNo") String containerNo, @Param("userId") String userId);
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareContainerResultMapper.xml	(revision 37008)
@@ -0,0 +1,695 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.novacloud.dao.ShareContainerResultMapper" >
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareContainerResult" >
+    <id column="container_id" property="containerId" jdbcType="VARCHAR" />
+    <result column="maillist_id" property="maillistId" jdbcType="VARCHAR" />
+    <result column="container_no" property="containerNo" jdbcType="VARCHAR" />
+    <result column="data_source" property="dataSource" jdbcType="VARCHAR" />
+    <result column="enter_time" property="enterTime" jdbcType="TIMESTAMP" />
+    <result column="divide_hddz_userid" property="divideHddzUserid" jdbcType="VARCHAR" />
+    <result column="divide_hddz_no" property="divideHddzNo" jdbcType="VARCHAR" />
+    <result column="divide_hddz" property="divideHddz" jdbcType="VARCHAR" />
+    <result column="divide_hddz_time" property="divideHddzTime" jdbcType="TIMESTAMP" />
+    <result column="online_review_userid" property="onlineReviewUserid" jdbcType="VARCHAR" />
+    <result column="online_review_no" property="onlineReviewNo" jdbcType="VARCHAR" />
+    <result column="online_review" property="onlineReview" jdbcType="VARCHAR" />
+    <result column="online_review_time" property="onlineReviewTime" jdbcType="TIMESTAMP" />
+    <result column="predict_finish_time" property="predictFinishTime" jdbcType="TIMESTAMP" />
+    <result column="ywbh" property="ywbh" jdbcType="VARCHAR" />
+    <result column="status" property="status" jdbcType="VARCHAR" />
+    <result column="page_number" property="pageNumber" jdbcType="VARCHAR" />
+    <result column="remark" property="remark" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    container_id, maillist_id, container_no, data_source, enter_time, divide_hddz_userid,
+    divide_hddz_no, divide_hddz, divide_hddz_time, online_review_userid, online_review_no,
+    online_review, online_review_time, predict_finish_time, ywbh, status, page_number,
+    remark
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from share_container_result
+    where container_id = #{containerId,jdbcType=VARCHAR}
+  </select>
+  <select id="queryDataWithMainId" resultType="com.novacloud.domain.model.share.ShareContainerResult">
+    select
+    <include refid="Base_Column_List" />
+    from share_container_result
+    where maillist_id = #{maillistId} and container_no = #{containerNo} and status = '0'
+  </select>
+  <select id="queryContainerList" resultType="com.novacloud.domain.model.share.ShareContainer">
+    select container_id, container_no from share_container_result
+    where maillist_id = #{maillistId} and status = '0'
+    order by container_no
+  </select>
+  <select id="queryContainerResultWithMainId" resultType="com.novacloud.domain.model.share.ShareContainerResult">
+    select
+    <include refid="Base_Column_List" />
+    from share_container_result
+    where maillist_id = #{maillistId} and status = '0'
+    order by container_no
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from share_container_result
+    where container_id = #{containerId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteContainerList">
+    delete from share_container_result
+    where container_id in
+    <foreach collection="deleteContainer" item="str" open="(" close=")" separator=",">
+      #{str}
+    </foreach>
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareContainerResult" >
+    insert into share_container_result (container_id, maillist_id, container_no,
+                                        data_source, enter_time, divide_hddz_userid,
+                                        divide_hddz_no, divide_hddz, divide_hddz_time,
+                                        online_review_userid, online_review_no, online_review,
+                                        online_review_time, predict_finish_time,
+                                        ywbh, status, page_number,
+                                        remark)
+    values (#{containerId,jdbcType=VARCHAR}, #{maillistId,jdbcType=VARCHAR}, #{containerNo,jdbcType=VARCHAR},
+            #{dataSource,jdbcType=VARCHAR}, #{enterTime,jdbcType=TIMESTAMP}, #{divideHddzUserid,jdbcType=VARCHAR},
+            #{divideHddzNo,jdbcType=VARCHAR}, #{divideHddz,jdbcType=VARCHAR}, #{divideHddzTime,jdbcType=TIMESTAMP},
+            #{onlineReviewUserid,jdbcType=VARCHAR}, #{onlineReviewNo,jdbcType=VARCHAR}, #{onlineReview,jdbcType=VARCHAR},
+            #{onlineReviewTime,jdbcType=TIMESTAMP}, #{predictFinishTime,jdbcType=TIMESTAMP},
+            #{ywbh,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, #{pageNumber,jdbcType=VARCHAR},
+            #{remark,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareContainerResult" >
+    insert into share_container_result
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="containerId != null" >
+        container_id,
+      </if>
+      <if test="maillistId != null" >
+        maillist_id,
+      </if>
+      <if test="containerNo != null" >
+        container_no,
+      </if>
+      <if test="dataSource != null" >
+        data_source,
+      </if>
+      <if test="enterTime != null" >
+        enter_time,
+      </if>
+      <if test="divideHddzUserid != null" >
+        divide_hddz_userid,
+      </if>
+      <if test="divideHddzNo != null" >
+        divide_hddz_no,
+      </if>
+      <if test="divideHddz != null" >
+        divide_hddz,
+      </if>
+      <if test="divideHddzTime != null" >
+        divide_hddz_time,
+      </if>
+      <if test="onlineReviewUserid != null" >
+        online_review_userid,
+      </if>
+      <if test="onlineReviewNo != null" >
+        online_review_no,
+      </if>
+      <if test="onlineReview != null" >
+        online_review,
+      </if>
+      <if test="onlineReviewTime != null" >
+        online_review_time,
+      </if>
+      <if test="predictFinishTime != null" >
+        predict_finish_time,
+      </if>
+      <if test="ywbh != null" >
+        ywbh,
+      </if>
+      <if test="status != null" >
+        status,
+      </if>
+      <if test="pageNumber != null" >
+        page_number,
+      </if>
+      <if test="remark != null" >
+        remark,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="containerId != null" >
+        #{containerId,jdbcType=VARCHAR},
+      </if>
+      <if test="maillistId != null" >
+        #{maillistId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="dataSource != null" >
+        #{dataSource,jdbcType=VARCHAR},
+      </if>
+      <if test="enterTime != null" >
+        #{enterTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="divideHddzUserid != null" >
+        #{divideHddzUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddzNo != null" >
+        #{divideHddzNo,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddz != null" >
+        #{divideHddz,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddzTime != null" >
+        #{divideHddzTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="onlineReviewUserid != null" >
+        #{onlineReviewUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewNo != null" >
+        #{onlineReviewNo,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReview != null" >
+        #{onlineReview,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewTime != null" >
+        #{onlineReviewTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="predictFinishTime != null" >
+        #{predictFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="ywbh != null" >
+        #{ywbh,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null" >
+        #{status,jdbcType=VARCHAR},
+      </if>
+      <if test="pageNumber != null" >
+        #{pageNumber,jdbcType=VARCHAR},
+      </if>
+      <if test="remark != null" >
+        #{remark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <insert id="insertList">
+    insert into share_container_result (container_id, maillist_id, container_no,
+    data_source, enter_time, divide_hddz_userid,
+    divide_hddz_no, divide_hddz, divide_hddz_time,
+    online_review_userid, online_review_no, online_review,
+    online_review_time, predict_finish_time,
+    ywbh, status, page_number,
+    remark)
+    values
+    <foreach collection ="resultList" item="item" index= "index" separator =",">
+      (#{item.containerId,jdbcType=VARCHAR}, #{item.maillistId,jdbcType=VARCHAR}, #{item.containerNo,jdbcType=VARCHAR},
+      #{item.dataSource,jdbcType=VARCHAR}, #{item.enterTime,jdbcType=TIMESTAMP}, #{item.divideHddzUserid,jdbcType=VARCHAR},
+      #{item.divideHddzNo,jdbcType=VARCHAR}, #{item.divideHddz,jdbcType=VARCHAR}, #{item.divideHddzTime,jdbcType=TIMESTAMP},
+      #{item.onlineReviewUserid,jdbcType=VARCHAR}, #{item.onlineReviewNo,jdbcType=VARCHAR}, #{item.onlineReview,jdbcType=VARCHAR},
+      #{item.onlineReviewTime,jdbcType=TIMESTAMP}, #{item.predictFinishTime,jdbcType=TIMESTAMP},
+      #{item.ywbh,jdbcType=VARCHAR}, #{item.status,jdbcType=VARCHAR}, #{item.pageNumber,jdbcType=VARCHAR},
+      #{item.remark,jdbcType=VARCHAR})
+    </foreach>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareContainerResult" >
+    update share_container_result
+    <set >
+      <if test="maillistId != null" >
+        maillist_id = #{maillistId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        container_no = #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="dataSource != null" >
+        data_source = #{dataSource,jdbcType=VARCHAR},
+      </if>
+      <if test="enterTime != null" >
+        enter_time = #{enterTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="divideHddzUserid != null" >
+        divide_hddz_userid = #{divideHddzUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddzNo != null" >
+        divide_hddz_no = #{divideHddzNo,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddz != null" >
+        divide_hddz = #{divideHddz,jdbcType=VARCHAR},
+      </if>
+      <if test="divideHddzTime != null" >
+        divide_hddz_time = #{divideHddzTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="onlineReviewUserid != null" >
+        online_review_userid = #{onlineReviewUserid,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewNo != null" >
+        online_review_no = #{onlineReviewNo,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReview != null" >
+        online_review = #{onlineReview,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewTime != null" >
+        online_review_time = #{onlineReviewTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="predictFinishTime != null" >
+        predict_finish_time = #{predictFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="ywbh != null" >
+        ywbh = #{ywbh,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null" >
+        status = #{status,jdbcType=VARCHAR},
+      </if>
+      <if test="pageNumber != null" >
+        page_number = #{pageNumber,jdbcType=VARCHAR},
+      </if>
+      <if test="remark != null" >
+        remark = #{remark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where container_id = #{containerId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareContainerResult" >
+    update share_container_result
+    set maillist_id = #{maillistId,jdbcType=VARCHAR},
+        container_no = #{containerNo,jdbcType=VARCHAR},
+        data_source = #{dataSource,jdbcType=VARCHAR},
+        enter_time = #{enterTime,jdbcType=TIMESTAMP},
+        divide_hddz_userid = #{divideHddzUserid,jdbcType=VARCHAR},
+        divide_hddz_no = #{divideHddzNo,jdbcType=VARCHAR},
+        divide_hddz = #{divideHddz,jdbcType=VARCHAR},
+        divide_hddz_time = #{divideHddzTime,jdbcType=TIMESTAMP},
+        online_review_userid = #{onlineReviewUserid,jdbcType=VARCHAR},
+        online_review_no = #{onlineReviewNo,jdbcType=VARCHAR},
+        online_review = #{onlineReview,jdbcType=VARCHAR},
+        online_review_time = #{onlineReviewTime,jdbcType=TIMESTAMP},
+        predict_finish_time = #{predictFinishTime,jdbcType=TIMESTAMP},
+        ywbh = #{ywbh,jdbcType=VARCHAR},
+        status = #{status,jdbcType=VARCHAR},
+        page_number = #{pageNumber,jdbcType=VARCHAR},
+        remark = #{remark,jdbcType=VARCHAR}
+    where container_id = #{containerId,jdbcType=VARCHAR}
+  </update>
+  <update id="editContainerList">
+    <foreach collection="editContainer" item="item" index="index" separator=";">
+      update share_container_result
+      set container_no = #{item.containerNo,jdbcType=TIMESTAMP},
+          enter_time = #{item.enterTime,jdbcType=TIMESTAMP}
+      where container_id = #{item.containerId,jdbcType=VARCHAR}
+    </foreach>
+  </update>
+    <update id="saveUpdateData">
+      <foreach collection="updateData" item="item" index="index" separator=";">
+        update share_container_result
+        <set >
+          <if test="item.enterTime != null" >
+            enter_time = #{item.enterTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="item.divideHddzUserid != null" >
+            divide_hddz_userid = #{item.divideHddzUserid,jdbcType=VARCHAR},
+          </if>
+          <if test="item.divideHddzNo != null" >
+            divide_hddz_no = #{item.divideHddzNo,jdbcType=VARCHAR},
+          </if>
+          <if test="item.divideHddz != null" >
+            divide_hddz = #{item.divideHddz,jdbcType=VARCHAR},
+          </if>
+          <if test="item.divideHddzTime != null" >
+            divide_hddz_time = #{item.divideHddzTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="item.onlineReviewUserid != null" >
+            online_review_userid = #{item.onlineReviewUserid,jdbcType=VARCHAR},
+          </if>
+          <if test="item.onlineReviewNo != null" >
+            online_review_no = #{item.onlineReviewNo,jdbcType=VARCHAR},
+          </if>
+          <if test="item.onlineReview != null" >
+            online_review = #{item.onlineReview,jdbcType=VARCHAR},
+          </if>
+          <if test="item.onlineReviewTime != null" >
+            online_review_time = #{item.onlineReviewTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="item.predictFinishTime != null" >
+            predict_finish_time = #{item.predictFinishTime,jdbcType=TIMESTAMP},
+          </if>
+          <if test="item.pageNumber != null" >
+            page_number = #{item.pageNumber,jdbcType=VARCHAR},
+          </if>
+          <if test="item.remark != null" >
+            remark = #{item.remark,jdbcType=VARCHAR},
+          </if>
+        </set>
+        where container_id = #{item.containerId,jdbcType=VARCHAR}
+      </foreach>
+    </update>
+
+  <select id="queryShareContainerBusinessListCount" resultType="java.lang.Integer">
+    SELECT
+    count( 1 )
+    FROM
+    (
+    SELECT
+    wml.maillist_id AS maillistMailid,
+    wml.maillist_sendertime AS maillistSendertime,
+    wml.maillist_subject AS maillistSubject,
+    (SELECT  rmr.rr_emergent  FROM wm_readrecord rmr where rmr.rr_maillistid=wml.maillist_id and rr_role='0' and rr_emergent !='0' and  rr_emergentfirstset='1' limit 1) AS mailEmergent,
+    ( CASE WHEN wml.maillist_online_review = '1' THEN '在线审单' ELSE '' END ) AS processingType,
+    wml.maillist_online_review_time AS processingTime,
+    wml.maillist_dealtime AS maillistDealtime,
+    Group_concat(DISTINCT(wso.serviceno_no)) AS serviceNo,
+    wal.addresslist_companyname as companyName,
+    Group_concat(DISTINCT(wtc.tocc_mailname)) AS toccReceive,
+    (SELECT description FROM wm_dict_value wdv LEFT JOIN wm_dict_code wdc ON wdc.id = wdv.dcid WHERE wdv.`value` = wml.maillist_dealstate  AND wdc.CODE = 'MAIL_DEAL_STATUS'  ) AS dealstateName,
+    (SELECT description FROM wm_dict_value wdv LEFT JOIN wm_dict_code wdc ON wdc.id = wdv.dcid WHERE wdv.`value` = wml.maillist_dividestate  AND wdc.CODE   = 'DIVIDE_STATE' )  AS maillistDividestate
+    FROM
+    wm_maillist wml
+    LEFT JOIN wm_addresslist wal ON wal.addresslist_mailname = wml.maillist_sendermail
+    LEFT JOIN wm_serviceno wso ON wso.serviceno_mailinfoid = wml.maillist_id
+    LEFT JOIN wm_tocc wtc on wtc.tocc_mailinfoid = wml.maillist_id and wtc.tocc_type = '0'
+    <where>
+      wml.maillist_online_review = '1'
+      AND wml.maillist_id IN (
+      SELECT DISTINCT
+      res.maillist_id
+      FROM
+      share_container_result res
+      left join share_online_review_result rr on res.container_id = rr.container_id
+      left join share_online_review_sync_result sr on sr.online_review_id = rr.online_review_id
+      <where>
+        <if test="object!=null and object.hddzUser != null and object.hddzUser != '' ">
+          res.divide_hddz_userid = #{object.hddzUser}
+        </if>
+        <if test="object!=null and object.onlineUser != null and object.onlineUser != '' ">
+          and res.online_review_userid =#{object.onlineUser}
+        </if>
+        <if test="object!=null and object.isLdFinish != null and object.isLdFinish != '' ">
+          <choose>
+            <when test='object.isLdFinish == "1"'>
+              and IFNULL(rr.finish_time, '')  != ''
+            </when>
+            <otherwise>
+              and IFNULL(rr.finish_time, '')  = ''
+            </otherwise>
+          </choose>
+        </if>
+        <if test="object!=null and object.isDdFinish != null and object.isDdFinish != '' ">
+          <choose>
+            <when test='object.isDdFinish == "1"'>
+              and IFNULL(rr.last_finish_time, '') != ''
+            </when>
+            <otherwise>
+              and IFNULL(rr.last_finish_time, '') = ''
+            </otherwise>
+          </choose>
+        </if>
+        <if test="object!=null and object.isSync != null and object.isSync != '' ">
+          <choose>
+            <when test='object.isSync == "1"'>
+              and IFNULL(sr.last_sync_time,'') != ''
+            </when>
+            <otherwise>
+              and IFNULL(sr.last_sync_time,'') = ''
+            </otherwise>
+          </choose>
+        </if>
+        <if test="object!=null and object.ddMistake != null and object.ddMistake != ''">
+          and rr.last_finish_remark like CONCAT('%',#{object.ddMistake}, '%')
+        </if>
+        <if test="object!=null and object.containerNo != null and object.containerNo != ''">
+          and res.container_no like CONCAT('%',#{object.containerNo}, '%')
+        </if>
+      </where>
+      )
+      <if test="object!=null and object.dateStart != null and object.dateStart != '' ">
+        and wml.maillist_sendertime  <![CDATA[ >= ]]>  CONCAT(#{object.dateStart},' 00:00:00')
+      </if>
+      <if test="object!=null and object.dateEnd != null and object.dateEnd != ''">
+        and wml.maillist_sendertime  <![CDATA[ <= ]]>  CONCAT(#{object.dateEnd},' 23:59:59')
+      </if>
+      <if test="object!=null and object.maillistDealstate != null">
+        and wml.maillist_dividestate =#{object.maillistDealstate}
+      </if>
+      <!-- 邮箱id  收件人id-->
+      <if test="object!=null and object.mailId != null">
+        and wml.maillist_mailid = #{object.mailId}
+      </if>
+      <!-- 业务编号 -->
+      <if test="object!=null and object.snstateName != null">
+        and wml.maillist_id in (select serviceno_mailinfoid from wm_serviceno  where serviceno_no like  CONCAT('%',#{object.snstateName},'%')  )
+      </if>
+      <!--   公司名称 -->
+      <if test="object!=null and object.companyName != null">
+        and wml.maillist_sendermail in (SELECT t.addresslist_mailname  from wm_addresslist t WHERE t.addresslist_companyname like CONCAT('%',#{object.companyName},'%'))
+      </if>
+      <!-- 优先级 -->
+      <if test="object !=null and object.mailEmergent != null">
+        and wml.maillist_id in (select rr_maillistid from wm_readrecord  where rr_userid = #{object.userId} and rr_emergent= #{object.mailEmergent} )
+      </if>
+      <!-- 客户类型 -->
+      <if test="object!=null and object.isvip !=null">
+        and wml.maillist_vip = #{object.isvip}
+      </if>
+    </where>
+        GROUP BY wml.maillist_id
+    ) a
+  </select>
+  <select id="queryShareContainerBusinessList"
+          resultType="com.novacloud.domain.model.share.ShareContainerResultLogs">
+    select * from (
+    SELECT
+    wml.maillist_id AS maillistMailid,
+    wml.maillist_sendertime AS maillistSendertime,
+    wml.maillist_subject AS maillistSubject,
+    (SELECT rmr.rr_emergent FROM wm_readrecord rmr where rmr.rr_maillistid=wml.maillist_id and rr_role='0' and
+    rr_emergent !='0' and rr_emergentfirstset='1' limit 1) AS mailEmergent,
+    ( CASE WHEN wml.maillist_online_review = '1' THEN '在线审单' ELSE '' END ) AS processingType,
+    wml.maillist_online_review_time AS processingTime,
+    wml.maillist_dealtime AS maillistDealtime,
+    Group_concat(DISTINCT(wso.serviceno_no)) AS serviceNo,
+    wal.addresslist_companyname as companyName,
+    Group_concat(DISTINCT(wtc.tocc_mailname)) AS toccReceive,
+    (SELECT description FROM wm_dict_value wdv LEFT JOIN wm_dict_code wdc ON wdc.id = wdv.dcid WHERE wdv.`value` =
+    wml.maillist_dealstate AND wdc.CODE = 'MAIL_DEAL_STATUS' ) AS dealstateName,
+    (SELECT description FROM wm_dict_value wdv LEFT JOIN wm_dict_code wdc ON wdc.id = wdv.dcid WHERE wdv.`value` =
+    wml.maillist_dividestate AND wdc.CODE = 'DIVIDE_STATE' ) AS maillistDividestate
+    FROM
+    wm_maillist wml
+    LEFT JOIN wm_addresslist wal ON wal.addresslist_mailname = wml.maillist_sendermail
+    LEFT JOIN wm_serviceno wso ON wso.serviceno_mailinfoid = wml.maillist_id
+    LEFT JOIN wm_tocc wtc on wtc.tocc_mailinfoid = wml.maillist_id and wtc.tocc_type = '0'
+    <where>wml.maillist_online_review = '1'
+      AND
+      wml.maillist_id IN (
+      SELECT DISTINCT
+      res.maillist_id
+      FROM
+      share_container_result res
+      left join share_online_review_result rr on res.container_id = rr.container_id
+      left join share_online_review_sync_result sr on sr.online_review_id = rr.online_review_id
+      <where>
+        <if test="object !=null and object.hddzUser != null and object.hddzUser != '' ">
+            res.divide_hddz_userid = #{object.hddzUser}
+        </if>
+        <if test="object !=null and object.onlineUser != null and object.onlineUser != '' ">
+            and res.online_review_userid =#{object.onlineUser}
+        </if>
+        <if test="object !=null and object.isLdFinish != null and object.isLdFinish != '' ">
+            <choose>
+              <when test='object.isLdFinish == "1"'>
+                and IFNULL(rr.finish_time, '')  != ''
+              </when>
+              <otherwise>
+                and IFNULL(rr.finish_time, '')  = ''
+              </otherwise>
+            </choose>
+        </if>
+        <if test="object !=null and object.isDdFinish != null and object.isDdFinish != '' ">
+          <choose>
+            <when test='object.isDdFinish == "1"'>
+              and IFNULL(rr.last_finish_time, '') != ''
+            </when>
+            <otherwise>
+              and IFNULL(rr.last_finish_time, '') = ''
+            </otherwise>
+          </choose>
+        </if>
+        <if test="object!=null and object.isSync != null and object.isSync != '' ">
+          <choose>
+            <when test= 'object.isSync == "1"'>
+              and IFNULL(sr.last_sync_time,'') != ''
+            </when>
+            <otherwise>
+              and IFNULL(sr.last_sync_time,'') = ''
+            </otherwise>
+          </choose>
+        </if>
+        <if test="object!=null and object.ddMistake != null and object.ddMistake != ''">
+            and rr.last_finish_remark like CONCAT('%',#{object.ddMistake}, '%')
+        </if>
+        <if test="object!=null and object.containerNo != null and object.containerNo != ''">
+          and res.container_no like CONCAT('%',#{object.containerNo}, '%')
+        </if>
+      </where>
+    )
+      <if test="object!=null and object.dateStart != null and object.dateStart != '' ">
+        and wml.maillist_sendertime  <![CDATA[ >= ]]>  CONCAT(#{object.dateStart},' 00:00:00')
+      </if>
+      <if test="object!=null and object.dateEnd != null and object.dateEnd != '' ">
+        and wml.maillist_sendertime  <![CDATA[ <= ]]>  CONCAT(#{object.dateEnd},' 23:59:59')
+      </if>
+      <if test="object!=null and object.maillistDealstate != null">
+        and wml.maillist_dividestate =#{object.maillistDealstate}
+      </if>
+      <!-- 邮箱id  收件人id-->
+      <if test="object!=null and object.mailId != null">
+        and wml.maillist_mailid = #{object.mailId}
+      </if>
+      <!-- 业务编号 -->
+      <if test="object!=null and object.snstateName != null">
+        and wml.maillist_id in (select serviceno_mailinfoid from wm_serviceno  where serviceno_no like  CONCAT('%',#{object.snstateName},'%')  )
+      </if>
+      <!--   公司名称 -->
+      <if test="object!=null and object.companyName != null">
+        and wml.maillist_sendermail in (SELECT t.addresslist_mailname  from wm_addresslist t WHERE t.addresslist_companyname like CONCAT('%',#{object.companyName},'%'))
+      </if>
+      <!-- 优先级 -->
+      <if test="object !=null and object.mailEmergent != null">
+        and wml.maillist_id in (select rr_maillistid from wm_readrecord  where rr_userid = #{object.userId} and rr_emergent= #{object.mailEmergent} )
+      </if>
+      <!-- 客户类型 -->
+      <if test="object!=null and object.isvip !=null">
+        and wml.maillist_vip = #{object.isvip}
+      </if>
+    </where>
+        GROUP BY wml.maillist_id
+        order by wml.maillist_sendertime desc, wml.maillist_id asc
+    ) tmp
+  </select>
+  <select id="queryContainerListByIdList"
+          resultType="com.novacloud.domain.model.share.ShareContainerResultInfo">
+    SELECT
+      res.container_id AS containerId,
+      res.maillist_id AS maillistId,
+      res.container_no AS containerNo,
+      res.enter_time AS enterTime,
+      res.divide_hddz AS divideHddz,
+      res.divide_hddz_time AS divideHddzTime,
+      res.online_review AS onlineReview,
+      res.online_review_time AS onlineReviewTime,
+      res.predict_finish_time AS predictFinishTime,
+      res.ywbh AS ywbh,
+      rr.start_time AS startTime,
+      rr.finish_time AS finishTime,
+      rr.review_finish_time AS reviewFinishTime,
+      rr.file_update_remark AS fileUpdateRemark,
+      rr.last_finish_time AS lastFinishTime,
+      rr.last_finish_user AS lastFinishUser,
+      rr.last_finish_remark AS lastFinishRemark,
+      sr.last_sync_time AS lastSyncTime,
+      sr.hddz_remark AS hddzRemark
+    FROM
+      share_container_result res
+        LEFT JOIN share_online_review_result rr ON res.container_id = rr.container_id
+        LEFT JOIN share_online_review_sync_result sr ON rr.online_review_id = sr.online_review_id
+    <where>
+      <if test="query !=null and query.businessId != null">
+            maillist_id = #{query.businessId}
+      </if>
+      <if test="query !=null and query.hddzUser != null and query.hddzUser != '' ">
+        and res.divide_hddz_userid = #{query.hddzUser}
+      </if>
+      <if test="query !=null and query.onlineUser != null and query.onlineUser != '' ">
+        and res.online_review_userid =#{query.onlineUser}
+      </if>
+      <if test="query !=null and query.isLdFinish != null and query.isLdFinish != '' ">
+        <choose>
+          <when test='query.isLdFinish == "1"'>
+            and IFNULL(rr.finish_time, '')  != ''
+          </when>
+          <otherwise>
+            and IFNULL(rr.finish_time, '')  = ''
+          </otherwise>
+        </choose>
+      </if>
+      <if test="query !=null and query.isDdFinish != null and query.isDdFinish != '' ">
+        <choose>
+          <when test='query.isDdFinish == "1"'>
+            and IFNULL(rr.last_finish_time, '') != ''
+          </when>
+          <otherwise>
+            and IFNULL(rr.last_finish_time, '') = ''
+          </otherwise>
+        </choose>
+      </if>
+      <if test="query!=null and query.isSync != null and query.isSync != '' ">
+        <choose>
+          <when test= 'query.isSync == "1"'>
+            and IFNULL(sr.last_sync_time,'') != ''
+          </when>
+          <otherwise>
+            and IFNULL(sr.last_sync_time,'') = ''
+          </otherwise>
+        </choose>
+      </if>
+      <if test="query!=null and query.ddMistake != null and query.ddMistake != ''">
+        and rr.last_finish_remark like CONCAT('%',#{query.ddMistake}, '%')
+      </if>
+      <if test="query!=null and query.containerNo != null and query.containerNo != ''">
+        and res.container_no like CONCAT('%',#{query.containerNo}, '%')
+      </if>
+    </where>
+  </select>
+  <select id="queryShareContainerResultInfo"
+          resultType="com.novacloud.domain.model.share.ShareContainerResultInfo">
+    SELECT
+      res.container_id AS containerId,
+      res.maillist_id AS maillistId,
+      res.container_no AS containerNo,
+      res.enter_time AS enterTime,
+      res.divide_hddz AS divideHddz,
+      res.divide_hddz_time AS divideHddzTime,
+      res.online_review AS onlineReview,
+      res.online_review_time AS onlineReviewTime,
+      res.predict_finish_time AS predictFinishTime,
+      res.ywbh AS ywbh,
+      rr.online_review_id as onlineReviewId,
+      rr.start_time AS startTime,
+      rr.finish_time AS finishTime,
+      rr.review_finish_time AS reviewFinishTime,
+      rr.file_update_remark AS fileUpdateRemark,
+      rr.last_finish_time AS lastFinishTime,
+      rr.last_finish_user AS lastFinishUser,
+      rr.last_finish_remark AS lastFinishRemark,
+      sr.last_sync_time AS lastSyncTime,
+      sr.hddz_remark AS hddzRemark
+    FROM
+      share_container_result res
+        LEFT JOIN share_online_review_result rr ON res.container_id = rr.container_id
+        LEFT JOIN share_online_review_sync_result sr ON rr.online_review_id = sr.online_review_id
+    where res.container_id = #{containerId}
+  </select>
+    <select id="queryShareContainerResultInfoList"
+            resultType="com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineReviewVo">
+      SELECT
+        mail.maillist_id as maillistId,
+        mail.maillist_sendertime as maillistSendertime,
+        res.container_id as containerId,
+        res.container_no as containerNo,
+      (SELECT  rmr.rr_emergent  FROM wm_readrecord rmr where rmr.rr_maillistid=mail.maillist_id and rr_role='0' and rr_emergent !='0' and  rr_emergentfirstset='1' limit 1) AS mailEmergent,
+		res.divide_hddz_no as divideHddzNo,
+		res.divide_hddz as divideHddz,
+		res.online_review_no as onlineReviewNo,
+		res.online_review as onlineReview
+      FROM
+        share_container_result res
+        LEFT JOIN wm_maillist mail ON res.maillist_id = mail.maillist_id
+        <where>
+            <if test="containerNo != null and containerNo != '' ">
+              res.container_no like CONCAT('%', #{containerNo}, '%')
+            </if>
+            <if test="userId != null and userId != ''">
+              and res.online_review_no = #{userId}
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.java	(revision 37008)
@@ -0,0 +1,17 @@
+package com.novacloud.dao;
+
+import com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog;
+
+public interface ShareOnlineReviewBehaviorLogMapper {
+    int deleteByPrimaryKey(String reviewId);
+
+    int insert(ShareOnlineReviewBehaviorLog record);
+
+    int insertSelective(ShareOnlineReviewBehaviorLog record);
+
+    ShareOnlineReviewBehaviorLog selectByPrimaryKey(String reviewId);
+
+    int updateByPrimaryKeySelective(ShareOnlineReviewBehaviorLog record);
+
+    int updateByPrimaryKey(ShareOnlineReviewBehaviorLog record);
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewBehaviorLogMapper.xml	(revision 37008)
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.novacloud.dao.ShareOnlineReviewBehaviorLogMapper" >
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog" >
+    <id column="review_id" property="reviewId" jdbcType="VARCHAR" />
+    <result column="online_review_id" property="onlineReviewId" jdbcType="VARCHAR" />
+    <result column="container_no" property="containerNo" jdbcType="VARCHAR" />
+    <result column="behavior" property="behavior" jdbcType="VARCHAR" />
+    <result column="crt_user" property="crtUser" jdbcType="VARCHAR" />
+    <result column="crt_time" property="crtTime" jdbcType="TIMESTAMP" />
+    <result column="behavior_data" property="behaviorData" jdbcType="VARCHAR" />
+    <result column="end_time" property="endTime" jdbcType="TIMESTAMP" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    review_id, online_review_id, container_no, behavior, crt_user, crt_time, behavior_data, 
+    end_time
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from share_online_review_behavior_log
+    where review_id = #{reviewId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from share_online_review_behavior_log
+    where review_id = #{reviewId,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog" >
+    insert into share_online_review_behavior_log (review_id, online_review_id, container_no, 
+      behavior, crt_user, crt_time, 
+      behavior_data, end_time)
+    values (#{reviewId,jdbcType=VARCHAR}, #{onlineReviewId,jdbcType=VARCHAR}, #{containerNo,jdbcType=VARCHAR}, 
+      #{behavior,jdbcType=VARCHAR}, #{crtUser,jdbcType=VARCHAR}, #{crtTime,jdbcType=TIMESTAMP}, 
+      #{behaviorData,jdbcType=VARCHAR}, #{endTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog" >
+    insert into share_online_review_behavior_log
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="reviewId != null" >
+        review_id,
+      </if>
+      <if test="onlineReviewId != null" >
+        online_review_id,
+      </if>
+      <if test="containerNo != null" >
+        container_no,
+      </if>
+      <if test="behavior != null" >
+        behavior,
+      </if>
+      <if test="crtUser != null" >
+        crt_user,
+      </if>
+      <if test="crtTime != null" >
+        crt_time,
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data,
+      </if>
+      <if test="endTime != null" >
+        end_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="reviewId != null" >
+        #{reviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewId != null" >
+        #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="behavior != null" >
+        #{behavior,jdbcType=VARCHAR},
+      </if>
+      <if test="crtUser != null" >
+        #{crtUser,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="behaviorData != null" >
+        #{behaviorData,jdbcType=VARCHAR},
+      </if>
+      <if test="endTime != null" >
+        #{endTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog" >
+    update share_online_review_behavior_log
+    <set >
+      <if test="onlineReviewId != null" >
+        online_review_id = #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null" >
+        container_no = #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="behavior != null" >
+        behavior = #{behavior,jdbcType=VARCHAR},
+      </if>
+      <if test="crtUser != null" >
+        crt_user = #{crtUser,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data = #{behaviorData,jdbcType=VARCHAR},
+      </if>
+      <if test="endTime != null" >
+        end_time = #{endTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where review_id = #{reviewId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog" >
+    update share_online_review_behavior_log
+    set online_review_id = #{onlineReviewId,jdbcType=VARCHAR},
+      container_no = #{containerNo,jdbcType=VARCHAR},
+      behavior = #{behavior,jdbcType=VARCHAR},
+      crt_user = #{crtUser,jdbcType=VARCHAR},
+      crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      behavior_data = #{behaviorData,jdbcType=VARCHAR},
+      end_time = #{endTime,jdbcType=TIMESTAMP}
+    where review_id = #{reviewId,jdbcType=VARCHAR}
+  </update>
+</mapper>
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.java	(revision 37008)
@@ -0,0 +1,18 @@
+package com.novacloud.dao;
+
+
+import com.novacloud.domain.model.share.ShareOnlineReviewResult;
+
+public interface ShareOnlineReviewResultMapper {
+    int deleteByPrimaryKey(String onlineReviewId);
+
+    int insert(ShareOnlineReviewResult record);
+
+    int insertSelective(ShareOnlineReviewResult record);
+
+    ShareOnlineReviewResult selectByPrimaryKey(String onlineReviewId);
+
+    int updateByPrimaryKeySelective(ShareOnlineReviewResult record);
+
+    int updateByPrimaryKey(ShareOnlineReviewResult record);
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewResultMapper.xml	(revision 37008)
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.novacloud.dao.ShareOnlineReviewResultMapper">
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareOnlineReviewResult">
+    <id column="online_review_id" jdbcType="VARCHAR" property="onlineReviewId" />
+    <result column="container_id" jdbcType="VARCHAR" property="containerId" />
+    <result column="container_no" jdbcType="VARCHAR" property="containerNo" />
+    <result column="get_file_time" jdbcType="TIMESTAMP" property="getFileTime" />
+    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
+    <result column="finish_time" jdbcType="TIMESTAMP" property="finishTime" />
+    <result column="review_finish_time" jdbcType="TIMESTAMP" property="reviewFinishTime" />
+    <result column="file_update_remark" jdbcType="VARCHAR" property="fileUpdateRemark" />
+    <result column="last_finish_time" jdbcType="TIMESTAMP" property="lastFinishTime" />
+    <result column="last_finish_user" jdbcType="VARCHAR" property="lastFinishUser" />
+    <result column="last_finish_remark" jdbcType="VARCHAR" property="lastFinishRemark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    online_review_id, container_id, container_no, get_file_time, start_time, finish_time, 
+    review_finish_time, file_update_remark, last_finish_time, last_finish_user, last_finish_remark
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from share_online_review_result
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from share_online_review_result
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewResult">
+    insert into share_online_review_result (online_review_id, container_id, container_no, 
+      get_file_time, start_time, finish_time, 
+      review_finish_time, file_update_remark, last_finish_time, 
+      last_finish_user, last_finish_remark)
+    values (#{onlineReviewId,jdbcType=VARCHAR}, #{containerId,jdbcType=VARCHAR}, #{containerNo,jdbcType=VARCHAR}, 
+      #{getFileTime,jdbcType=TIMESTAMP}, #{startTime,jdbcType=TIMESTAMP}, #{finishTime,jdbcType=TIMESTAMP}, 
+      #{reviewFinishTime,jdbcType=TIMESTAMP}, #{fileUpdateRemark,jdbcType=VARCHAR}, #{lastFinishTime,jdbcType=TIMESTAMP}, 
+      #{lastFinishUser,jdbcType=VARCHAR}, #{lastFinishRemark,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewResult">
+    insert into share_online_review_result
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="onlineReviewId != null">
+        online_review_id,
+      </if>
+      <if test="containerId != null">
+        container_id,
+      </if>
+      <if test="containerNo != null">
+        container_no,
+      </if>
+      <if test="getFileTime != null">
+        get_file_time,
+      </if>
+      <if test="startTime != null">
+        start_time,
+      </if>
+      <if test="finishTime != null">
+        finish_time,
+      </if>
+      <if test="reviewFinishTime != null">
+        review_finish_time,
+      </if>
+      <if test="fileUpdateRemark != null">
+        file_update_remark,
+      </if>
+      <if test="lastFinishTime != null">
+        last_finish_time,
+      </if>
+      <if test="lastFinishUser != null">
+        last_finish_user,
+      </if>
+      <if test="lastFinishRemark != null">
+        last_finish_remark,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="onlineReviewId != null">
+        #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerId != null">
+        #{containerId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null">
+        #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="getFileTime != null">
+        #{getFileTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="startTime != null">
+        #{startTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="finishTime != null">
+        #{finishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="reviewFinishTime != null">
+        #{reviewFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="fileUpdateRemark != null">
+        #{fileUpdateRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="lastFinishTime != null">
+        #{lastFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastFinishUser != null">
+        #{lastFinishUser,jdbcType=VARCHAR},
+      </if>
+      <if test="lastFinishRemark != null">
+        #{lastFinishRemark,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewResult">
+    update share_online_review_result
+    <set>
+      <if test="containerId != null">
+        container_id = #{containerId,jdbcType=VARCHAR},
+      </if>
+      <if test="containerNo != null">
+        container_no = #{containerNo,jdbcType=VARCHAR},
+      </if>
+      <if test="getFileTime != null">
+        get_file_time = #{getFileTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="startTime != null">
+        start_time = #{startTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="finishTime != null">
+        finish_time = #{finishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="reviewFinishTime != null">
+        review_finish_time = #{reviewFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="fileUpdateRemark != null">
+        file_update_remark = #{fileUpdateRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="lastFinishTime != null">
+        last_finish_time = #{lastFinishTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="lastFinishUser != null">
+        last_finish_user = #{lastFinishUser,jdbcType=VARCHAR},
+      </if>
+      <if test="lastFinishRemark != null">
+        last_finish_remark = #{lastFinishRemark,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewResult">
+    update share_online_review_result
+    set container_id = #{containerId,jdbcType=VARCHAR},
+      container_no = #{containerNo,jdbcType=VARCHAR},
+      get_file_time = #{getFileTime,jdbcType=TIMESTAMP},
+      start_time = #{startTime,jdbcType=TIMESTAMP},
+      finish_time = #{finishTime,jdbcType=TIMESTAMP},
+      review_finish_time = #{reviewFinishTime,jdbcType=TIMESTAMP},
+      file_update_remark = #{fileUpdateRemark,jdbcType=VARCHAR},
+      last_finish_time = #{lastFinishTime,jdbcType=TIMESTAMP},
+      last_finish_user = #{lastFinishUser,jdbcType=VARCHAR},
+      last_finish_remark = #{lastFinishRemark,jdbcType=VARCHAR}
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </update>
+
+</mapper>
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.java	(revision 37008)
@@ -0,0 +1,17 @@
+package com.novacloud.dao;
+
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog;
+
+public interface ShareOnlineReviewSyncBehaviorLogMapper {
+    int deleteByPrimaryKey(String behaviorId);
+
+    int insert(ShareOnlineReviewSyncBehaviorLog record);
+
+    int insertSelective(ShareOnlineReviewSyncBehaviorLog record);
+
+    ShareOnlineReviewSyncBehaviorLog selectByPrimaryKey(String behaviorId);
+
+    int updateByPrimaryKeySelective(ShareOnlineReviewSyncBehaviorLog record);
+
+    int updateByPrimaryKey(ShareOnlineReviewSyncBehaviorLog record);
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncBehaviorLogMapper.xml	(revision 37008)
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.novacloud.dao.ShareOnlineReviewSyncBehaviorLogMapper" >
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog" >
+    <id column="behavior_id" property="behaviorId" jdbcType="VARCHAR" />
+    <result column="online_review_id" property="onlineReviewId" jdbcType="VARCHAR" />
+    <result column="behavior" property="behavior" jdbcType="VARCHAR" />
+    <result column="crt_time" property="crtTime" jdbcType="TIMESTAMP" />
+    <result column="behavior_data" property="behaviorData" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    behavior_id, online_review_id, behavior, crt_time, behavior_data
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from share_online_review_sync_behavior_log
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from share_online_review_sync_behavior_log
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog" >
+    insert into share_online_review_sync_behavior_log (behavior_id, online_review_id, behavior, 
+      crt_time, behavior_data)
+    values (#{behaviorId,jdbcType=VARCHAR}, #{onlineReviewId,jdbcType=VARCHAR}, #{behavior,jdbcType=VARCHAR}, 
+      #{crtTime,jdbcType=TIMESTAMP}, #{behaviorData,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog" >
+    insert into share_online_review_sync_behavior_log
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="behaviorId != null" >
+        behavior_id,
+      </if>
+      <if test="onlineReviewId != null" >
+        online_review_id,
+      </if>
+      <if test="behavior != null" >
+        behavior,
+      </if>
+      <if test="crtTime != null" >
+        crt_time,
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="behaviorId != null" >
+        #{behaviorId,jdbcType=VARCHAR},
+      </if>
+      <if test="onlineReviewId != null" >
+        #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="behavior != null" >
+        #{behavior,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="behaviorData != null" >
+        #{behaviorData,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog" >
+    update share_online_review_sync_behavior_log
+    <set >
+      <if test="onlineReviewId != null" >
+        online_review_id = #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="behavior != null" >
+        behavior = #{behavior,jdbcType=VARCHAR},
+      </if>
+      <if test="crtTime != null" >
+        crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="behaviorData != null" >
+        behavior_data = #{behaviorData,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog" >
+    update share_online_review_sync_behavior_log
+    set online_review_id = #{onlineReviewId,jdbcType=VARCHAR},
+      behavior = #{behavior,jdbcType=VARCHAR},
+      crt_time = #{crtTime,jdbcType=TIMESTAMP},
+      behavior_data = #{behaviorData,jdbcType=VARCHAR}
+    where behavior_id = #{behaviorId,jdbcType=VARCHAR}
+  </update>
+</mapper>
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.java
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.java	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.java	(revision 37008)
@@ -0,0 +1,17 @@
+package com.novacloud.dao;
+
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncResult;
+
+public interface ShareOnlineReviewSyncResultMapper {
+
+    int insert(ShareOnlineReviewSyncResult record);
+
+    int insertSelective(ShareOnlineReviewSyncResult record);
+
+    ShareOnlineReviewSyncResult selectByPrimaryKey(String onlineReviewId);
+
+    int updateByPrimaryKeySelective(ShareOnlineReviewSyncResult record);
+
+    int updateByPrimaryKey(ShareOnlineReviewSyncResult record);
+
+}
\ No newline at end of file
Index: webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.xml
===================================================================
--- webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.xml	(revision 0)
+++ webmail-dao/src/main/java/com/novacloud/dao/ShareOnlineReviewSyncResultMapper.xml	(revision 37008)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.novacloud.dao.ShareOnlineReviewSyncResultMapper" >
+  <resultMap id="BaseResultMap" type="com.novacloud.domain.model.share.ShareOnlineReviewSyncResult" >
+    <id column="online_review_id" property="onlineReviewId" jdbcType="VARCHAR" />
+    <result column="last_sync_time" property="lastSyncTime" jdbcType="TIMESTAMP" />
+    <result column="hddz_remark" property="hddzRemark" jdbcType="VARCHAR" />
+    <result column="sync_suer" property="syncSuer" jdbcType="VARCHAR" />
+  </resultMap>
+  <sql id="Base_Column_List" >
+    online_review_id, last_sync_time, hddz_remark, sync_suer
+  </sql>
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
+    select 
+    <include refid="Base_Column_List" />
+    from share_online_review_sync_result
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
+    delete from share_online_review_sync_result
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </delete>
+  <insert id="insert" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncResult" >
+    insert into share_online_review_sync_result (online_review_id, last_sync_time,
+      hddz_remark, sync_suer)
+    values (#{onlineReviewId,jdbcType=VARCHAR}, #{lastSyncTime,jdbcType=TIMESTAMP},
+      #{hddzRemark,jdbcType=VARCHAR}, #{syncSuer,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncResult" >
+    insert into share_online_review_sync_result
+    <trim prefix="(" suffix=")" suffixOverrides="," >
+      <if test="onlineReviewId != null" >
+        online_review_id,
+      </if>
+      <if test="lastSyncTime != null" >
+        last_sync_time,
+      </if>
+      <if test="hddzRemark != null" >
+        hddz_remark,
+      </if>
+      <if test="syncSuer != null" >
+        sync_suer,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
+      <if test="onlineReviewId != null" >
+        #{onlineReviewId,jdbcType=VARCHAR},
+      </if>
+      <if test="lastSyncTime != null" >
+        #{lastSyncTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="hddzRemark != null" >
+        #{hddzRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="syncSuer != null" >
+        #{syncSuer,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncResult" >
+    update share_online_review_sync_result
+    <set >
+      <if test="lastSyncTime != null" >
+        last_sync_time = #{lastSyncTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="hddzRemark != null" >
+        hddz_remark = #{hddzRemark,jdbcType=VARCHAR},
+      </if>
+      <if test="syncSuer != null" >
+        sync_suer = #{syncSuer,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.novacloud.domain.model.share.ShareOnlineReviewSyncResult" >
+    update share_online_review_sync_result
+    set
+      last_sync_time = #{lastSyncTime,jdbcType=TIMESTAMP},
+      hddz_remark = #{hddzRemark,jdbcType=VARCHAR},
+      sync_suer = #{syncSuer,jdbcType=VARCHAR}
+    where online_review_id = #{onlineReviewId,jdbcType=VARCHAR}
+  </update>
+</mapper>
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/MailListView.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/MailListView.java	(revision 37007)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/MailListView.java	(revision 37008)
@@ -178,6 +178,9 @@
     // 是否vip客户 2021-04-27 zhanggcadd
     private String maillistVipName;
 
+    //拆分的集装箱信息
+    private String containers;
+
     public String getMaillistVipName() {
         return maillistVipName;
     }
@@ -618,4 +621,11 @@
         this.loginUserId = loginUserId;
     }
 
+    public String getContainers() {
+        return containers;
+    }
+
+    public void setContainers(String containers) {
+        this.containers = containers;
+    }
 }
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/ManualAllocationView.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/ManualAllocationView.java	(revision 37007)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/ManualAllocationView.java	(revision 37008)
@@ -32,6 +32,9 @@
     
     private String endDate;
 
+    //20240225 添加水果通账号
+    private String account;
+
     public String getMaId() {
         return maId;
     }
@@ -143,6 +146,12 @@
 	public void setEndDate(String endDate) {
 		this.endDate = endDate;
 	}
-    
-    
+
+    public String getAccount() {
+        return account;
+    }
+
+    public void setAccount(String account) {
+        this.account = account;
+    }
 }
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/ReadRecord.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/ReadRecord.java	(revision 37007)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/ReadRecord.java	(revision 37008)
@@ -1,5 +1,8 @@
 package com.novacloud.domain.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
 import java.util.Date;
 
 public class ReadRecord {
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainer.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainer.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainer.java	(revision 37008)
@@ -0,0 +1,45 @@
+package com.novacloud.domain.model.share;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model
+ * @Description: TODO
+ * @date Date : 2024/2/23 10:52
+ */
+public class ShareContainer {
+
+    //集装箱号
+    private String containerNo;
+
+    //集装箱状态
+    private String status;
+
+    //集装箱id
+    private String containerId;
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+}
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerBehaviorLog.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerBehaviorLog.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerBehaviorLog.java	(revision 37008)
@@ -0,0 +1,85 @@
+package com.novacloud.domain.model.share;
+
+import java.util.Date;
+
+public class ShareContainerBehaviorLog {
+    private String behaviorId;
+
+    private String maillistId;
+
+    private String containerId;
+
+    private String containerNo;
+
+    private String behaviorType;
+
+    private Date crtTime;
+
+    private String crtUser;
+
+    private String behaviorData;
+
+    public String getBehaviorId() {
+        return behaviorId;
+    }
+
+    public void setBehaviorId(String behaviorId) {
+        this.behaviorId = behaviorId;
+    }
+
+    public String getMaillistId() {
+        return maillistId;
+    }
+
+    public void setMaillistId(String maillistId) {
+        this.maillistId = maillistId;
+    }
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getBehaviorType() {
+        return behaviorType;
+    }
+
+    public void setBehaviorType(String behaviorType) {
+        this.behaviorType = behaviorType;
+    }
+
+    public Date getCrtTime() {
+        return crtTime;
+    }
+
+    public void setCrtTime(Date crtTime) {
+        this.crtTime = crtTime;
+    }
+
+    public String getCrtUser() {
+        return crtUser;
+    }
+
+    public void setCrtUser(String crtUser) {
+        this.crtUser = crtUser;
+    }
+
+    public String getBehaviorData() {
+        return behaviorData;
+    }
+
+    public void setBehaviorData(String behaviorData) {
+        this.behaviorData = behaviorData;
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResult.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResult.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResult.java	(revision 37008)
@@ -0,0 +1,199 @@
+package com.novacloud.domain.model.share;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+public class ShareContainerResult {
+    private String containerId;
+
+    private String maillistId;
+
+    private String containerNo;
+
+    private String dataSource;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date enterTime;
+
+    private String divideHddzUserid;
+
+    private String divideHddzNo;
+
+    private String divideHddz;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date divideHddzTime;
+
+    private String onlineReviewUserid;
+
+    private String onlineReviewNo;
+
+    private String onlineReview;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date onlineReviewTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date predictFinishTime;
+
+    private String ywbh;
+
+    private String status;
+
+    private String pageNumber;
+
+    private String remark;
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getMaillistId() {
+        return maillistId;
+    }
+
+    public void setMaillistId(String maillistId) {
+        this.maillistId = maillistId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getDataSource() {
+        return dataSource;
+    }
+
+    public void setDataSource(String dataSource) {
+        this.dataSource = dataSource;
+    }
+
+    public Date getEnterTime() {
+        return enterTime;
+    }
+
+    public void setEnterTime(Date enterTime) {
+        this.enterTime = enterTime;
+    }
+
+    public String getDivideHddzNo() {
+        return divideHddzNo;
+    }
+
+    public void setDivideHddzNo(String divideHddzNo) {
+        this.divideHddzNo = divideHddzNo;
+    }
+
+    public String getDivideHddz() {
+        return divideHddz;
+    }
+
+    public void setDivideHddz(String divideHddz) {
+        this.divideHddz = divideHddz;
+    }
+
+    public Date getDivideHddzTime() {
+        return divideHddzTime;
+    }
+
+    public void setDivideHddzTime(Date divideHddzTime) {
+        this.divideHddzTime = divideHddzTime;
+    }
+
+    public String getOnlineReviewNo() {
+        return onlineReviewNo;
+    }
+
+    public void setOnlineReviewNo(String onlineReviewNo) {
+        this.onlineReviewNo = onlineReviewNo;
+    }
+
+    public String getOnlineReview() {
+        return onlineReview;
+    }
+
+    public void setOnlineReview(String onlineReview) {
+        this.onlineReview = onlineReview;
+    }
+
+    public Date getOnlineReviewTime() {
+        return onlineReviewTime;
+    }
+
+    public void setOnlineReviewTime(Date onlineReviewTime) {
+        this.onlineReviewTime = onlineReviewTime;
+    }
+
+    public Date getPredictFinishTime() {
+        return predictFinishTime;
+    }
+
+    public void setPredictFinishTime(Date predictFinishTime) {
+        this.predictFinishTime = predictFinishTime;
+    }
+
+    public String getYwbh() {
+        return ywbh;
+    }
+
+    public void setYwbh(String ywbh) {
+        this.ywbh = ywbh;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDivideHddzUserid() {
+        return divideHddzUserid;
+    }
+
+    public void setDivideHddzUserid(String divideHddzUserid) {
+        this.divideHddzUserid = divideHddzUserid;
+    }
+
+    public String getOnlineReviewUserid() {
+        return onlineReviewUserid;
+    }
+
+    public void setOnlineReviewUserid(String onlineReviewUserid) {
+        this.onlineReviewUserid = onlineReviewUserid;
+    }
+
+    public String getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(String pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public ShareContainerResult() {
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultInfo.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultInfo.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultInfo.java	(revision 37008)
@@ -0,0 +1,281 @@
+package com.novacloud.domain.model.share;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.novacloud.domain.model.MailFile;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model.share
+ * @Description: TODO
+ * @date Date : 2024/2/26 15:23
+ */
+public class ShareContainerResultInfo {
+
+    //集装箱id
+    private String containerId;
+
+    //业务主键
+    private String maillistId;
+
+    //集装箱号
+    private String containerNo;
+
+    //集装箱录入时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date enterTime;
+
+    //分配单证人员
+    private String divideHddz;
+
+    //分配单证人员时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date divideHddzTime;
+
+    //分配在线审单人员
+    private String onlineReview;
+
+    //分配在线审单人员时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date onlineReviewTime;
+
+    // 预计完成时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date predictFinishTime;
+
+    //业务编号
+    private String ywbh;
+
+    //开始录单时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    //完成录单时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date finishTime;
+
+    //审单完成时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reviewFinishTime;
+
+    //在线审单最新更新文件
+    private String fileUpdateRemark;
+
+    // 兜底完成时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date lastFinishTime;
+
+    // 兜底人员
+    private String lastFinishUser;
+
+    // 兜底错误说明
+    private String lastFinishRemark;
+
+    // 同步水果通时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date lastSyncTime;
+
+    // 单证人员发现错误
+    private String hddzRemark;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //获取附件时间
+    private Date getFileTime;
+
+    // 同步人员
+    private String syncSuer;
+
+    //在线审单id
+    private String onlineReviewId;
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getMaillistId() {
+        return maillistId;
+    }
+
+    public void setMaillistId(String maillistId) {
+        this.maillistId = maillistId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public Date getEnterTime() {
+        return enterTime;
+    }
+
+    public void setEnterTime(Date enterTime) {
+        this.enterTime = enterTime;
+    }
+
+    public String getDivideHddz() {
+        return divideHddz;
+    }
+
+    public void setDivideHddz(String divideHddz) {
+        this.divideHddz = divideHddz;
+    }
+
+    public Date getDivideHddzTime() {
+        return divideHddzTime;
+    }
+
+    public void setDivideHddzTime(Date divideHddzTime) {
+        this.divideHddzTime = divideHddzTime;
+    }
+
+    public String getOnlineReview() {
+        return onlineReview;
+    }
+
+    public void setOnlineReview(String onlineReview) {
+        this.onlineReview = onlineReview;
+    }
+
+    public Date getOnlineReviewTime() {
+        return onlineReviewTime;
+    }
+
+    public void setOnlineReviewTime(Date onlineReviewTime) {
+        this.onlineReviewTime = onlineReviewTime;
+    }
+
+    public Date getPredictFinishTime() {
+        return predictFinishTime;
+    }
+
+    public void setPredictFinishTime(Date predictFinishTime) {
+        this.predictFinishTime = predictFinishTime;
+    }
+
+    public String getYwbh() {
+        return ywbh;
+    }
+
+    public void setYwbh(String ywbh) {
+        this.ywbh = ywbh;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(Date finishTime) {
+        this.finishTime = finishTime;
+    }
+
+    public Date getReviewFinishTime() {
+        return reviewFinishTime;
+    }
+
+    public void setReviewFinishTime(Date reviewFinishTime) {
+        this.reviewFinishTime = reviewFinishTime;
+    }
+
+    public String getFileUpdateRemark() {
+        return fileUpdateRemark;
+    }
+
+    public void setFileUpdateRemark(String fileUpdateRemark) {
+        this.fileUpdateRemark = fileUpdateRemark;
+    }
+
+    public Date getLastFinishTime() {
+        return lastFinishTime;
+    }
+
+    public void setLastFinishTime(Date lastFinishTime) {
+        this.lastFinishTime = lastFinishTime;
+    }
+
+    public String getLastFinishUser() {
+        return lastFinishUser;
+    }
+
+    public void setLastFinishUser(String lastFinishUser) {
+        this.lastFinishUser = lastFinishUser;
+    }
+
+    public String getLastFinishRemark() {
+        return lastFinishRemark;
+    }
+
+    public void setLastFinishRemark(String lastFinishRemark) {
+        this.lastFinishRemark = lastFinishRemark;
+    }
+
+    public Date getLastSyncTime() {
+        return lastSyncTime;
+    }
+
+    public void setLastSyncTime(Date lastSyncTime) {
+        this.lastSyncTime = lastSyncTime;
+    }
+
+    public String getHddzRemark() {
+        return hddzRemark;
+    }
+
+    public void setHddzRemark(String hddzRemark) {
+        this.hddzRemark = hddzRemark;
+    }
+
+    public Date getGetFileTime() {
+        return getFileTime;
+    }
+
+    public void setGetFileTime(Date getFileTime) {
+        this.getFileTime = getFileTime;
+    }
+
+    public String getSyncSuer() {
+        return syncSuer;
+    }
+
+    public void setSyncSuer(String syncSuer) {
+        this.syncSuer = syncSuer;
+    }
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+}
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogParam.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogParam.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogParam.java	(revision 37008)
@@ -0,0 +1,190 @@
+package com.novacloud.domain.model.share;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model.share
+ * @Description: TODO
+ * @date Date : 2024/2/26 11:25
+ */
+public class ShareContainerResultLogParam {
+    private String dateStart;//开始日期
+    private String dateEnd;//结束日期
+    private String hddzUser;//单证人员
+    private String onlineUser;//在线审单
+    private String isReceive;//是否回复邮件
+    // 是否完成录单
+    private String isLdFinish;
+    // 是否完成兜底
+    private String isDdFinish;
+    // 是否同步
+    private String isSync;
+    // 兜底错误
+    private String ddMistake;
+    //单证错误
+    private String hddzMistake;
+
+    //业务编号
+    private String snstateName;
+    // 公司名称
+    private String companyName;
+    //处理状态
+    private String maillistDealstate;
+    //优先级
+    private String mailEmergent;
+    //客户类型
+    private String isvip;
+    //集装箱号
+    private String containerNo;
+
+    //收件人
+    private String mailId;
+
+    //业务主键id
+    private String businessId;
+
+    public String getBusinessId() {
+        return businessId;
+    }
+
+    public void setBusinessId(String businessId) {
+        this.businessId = businessId;
+    }
+
+    public String getDateStart() {
+        return dateStart;
+    }
+
+    public void setDateStart(String dateStart) {
+        this.dateStart = dateStart;
+    }
+
+    public String getDateEnd() {
+        return dateEnd;
+    }
+
+    public void setDateEnd(String dateEnd) {
+        this.dateEnd = dateEnd;
+    }
+
+    public String getHddzUser() {
+        return hddzUser;
+    }
+
+    public void setHddzUser(String hddzUser) {
+        this.hddzUser = hddzUser;
+    }
+
+    public String getOnlineUser() {
+        return onlineUser;
+    }
+
+    public void setOnlineUser(String onlineUser) {
+        this.onlineUser = onlineUser;
+    }
+
+    public String getIsReceive() {
+        return isReceive;
+    }
+
+    public void setIsReceive(String isReceive) {
+        this.isReceive = isReceive;
+    }
+
+    public String getIsLdFinish() {
+        return isLdFinish;
+    }
+
+    public void setIsLdFinish(String isLdFinish) {
+        this.isLdFinish = isLdFinish;
+    }
+
+    public String getIsDdFinish() {
+        return isDdFinish;
+    }
+
+    public void setIsDdFinish(String isDdFinish) {
+        this.isDdFinish = isDdFinish;
+    }
+
+    public String getIsSync() {
+        return isSync;
+    }
+
+    public void setIsSync(String isSync) {
+        this.isSync = isSync;
+    }
+
+    public String getDdMistake() {
+        return ddMistake;
+    }
+
+    public void setDdMistake(String ddMistake) {
+        this.ddMistake = ddMistake;
+    }
+
+    public String getHddzMistake() {
+        return hddzMistake;
+    }
+
+    public void setHddzMistake(String hddzMistake) {
+        this.hddzMistake = hddzMistake;
+    }
+
+    public String getSnstateName() {
+        return snstateName;
+    }
+
+    public void setSnstateName(String snstateName) {
+        this.snstateName = snstateName;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getMaillistDealstate() {
+        return maillistDealstate;
+    }
+
+    public void setMaillistDealstate(String maillistDealstate) {
+        this.maillistDealstate = maillistDealstate;
+    }
+
+    public String getMailEmergent() {
+        return mailEmergent;
+    }
+
+    public void setMailEmergent(String mailEmergent) {
+        this.mailEmergent = mailEmergent;
+    }
+
+    public String getIsvip() {
+        return isvip;
+    }
+
+    public void setIsvip(String isvip) {
+        this.isvip = isvip;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getMailId() {
+        return mailId;
+    }
+
+    public void setMailId(String mailId) {
+        this.mailId = mailId;
+    }
+}
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogs.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogs.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareContainerResultLogs.java	(revision 37008)
@@ -0,0 +1,176 @@
+package com.novacloud.domain.model.share;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model.share
+ * @Description: TODO
+ * @date Date : 2024/2/26 14:51
+ * 日志展示信息
+ */
+public class ShareContainerResultLogs {
+
+    // 邮箱id
+    private String maillistMailid;
+
+    // 发送时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date maillistSendertime;
+
+    // 邮件主题
+    private String maillistSubject;
+
+    // 分配的状态(0 未分配 1已分配 2无需分配)
+    private String maillistDividestate;
+
+
+    // 邮件回复状态 (0：未回复；1：已回复；2：无需回复)
+    private String maillistDealstate;
+
+    // 回复状态名称
+    private String dealstateName;
+
+    // 邮件处理时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date maillistDealtime;
+
+    // 邮件重要标记 0:普通 1：重要
+    private String mailImportant;
+
+    // 邮件是否紧急 2019.1.29 zhanggc add
+    private String mailEmergent;
+
+    //处理类型
+    private String processingType;
+
+    //处理时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processingTime;
+
+    //公司名称
+    private String companyName;
+
+    //业务编号
+    private String serviceNo;
+
+    // 收件人
+    private String toccReceive;
+
+    public String getMaillistMailid() {
+        return maillistMailid;
+    }
+
+    public void setMaillistMailid(String maillistMailid) {
+        this.maillistMailid = maillistMailid;
+    }
+
+    public Date getMaillistSendertime() {
+        return maillistSendertime;
+    }
+
+    public void setMaillistSendertime(Date maillistSendertime) {
+        this.maillistSendertime = maillistSendertime;
+    }
+
+    public String getMaillistSubject() {
+        return maillistSubject;
+    }
+
+    public void setMaillistSubject(String maillistSubject) {
+        this.maillistSubject = maillistSubject;
+    }
+
+    public String getMaillistDividestate() {
+        return maillistDividestate;
+    }
+
+    public void setMaillistDividestate(String maillistDividestate) {
+        this.maillistDividestate = maillistDividestate;
+    }
+
+    public String getMaillistDealstate() {
+        return maillistDealstate;
+    }
+
+    public void setMaillistDealstate(String maillistDealstate) {
+        this.maillistDealstate = maillistDealstate;
+    }
+
+    public String getDealstateName() {
+        return dealstateName;
+    }
+
+    public void setDealstateName(String dealstateName) {
+        this.dealstateName = dealstateName;
+    }
+
+    public Date getMaillistDealtime() {
+        return maillistDealtime;
+    }
+
+    public void setMaillistDealtime(Date maillistDealtime) {
+        this.maillistDealtime = maillistDealtime;
+    }
+
+    public String getMailImportant() {
+        return mailImportant;
+    }
+
+    public void setMailImportant(String mailImportant) {
+        this.mailImportant = mailImportant;
+    }
+
+    public String getMailEmergent() {
+        return mailEmergent;
+    }
+
+    public void setMailEmergent(String mailEmergent) {
+        this.mailEmergent = mailEmergent;
+    }
+
+    public String getProcessingType() {
+        return processingType;
+    }
+
+    public void setProcessingType(String processingType) {
+        this.processingType = processingType;
+    }
+
+    public Date getProcessingTime() {
+        return processingTime;
+    }
+
+    public void setProcessingTime(Date processingTime) {
+        this.processingTime = processingTime;
+    }
+
+    public String getCompanyName() {
+        return companyName;
+    }
+
+    public void setCompanyName(String companyName) {
+        this.companyName = companyName;
+    }
+
+    public String getServiceNo() {
+        return serviceNo;
+    }
+
+    public void setServiceNo(String serviceNo) {
+        this.serviceNo = serviceNo;
+    }
+
+    public String getToccReceive() {
+        return toccReceive;
+    }
+
+    public void setToccReceive(String toccReceive) {
+        this.toccReceive = toccReceive;
+    }
+}
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewBehaviorLog.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewBehaviorLog.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewBehaviorLog.java	(revision 37008)
@@ -0,0 +1,85 @@
+package com.novacloud.domain.model.share;
+
+import java.util.Date;
+
+public class ShareOnlineReviewBehaviorLog {
+    private String reviewId;
+
+    private String onlineReviewId;
+
+    private String containerNo;
+
+    private String behavior;
+
+    private String crtUser;
+
+    private Date crtTime;
+
+    private String behaviorData;
+
+    private Date endTime;
+
+    public String getReviewId() {
+        return reviewId;
+    }
+
+    public void setReviewId(String reviewId) {
+        this.reviewId = reviewId;
+    }
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getBehavior() {
+        return behavior;
+    }
+
+    public void setBehavior(String behavior) {
+        this.behavior = behavior;
+    }
+
+    public String getCrtUser() {
+        return crtUser;
+    }
+
+    public void setCrtUser(String crtUser) {
+        this.crtUser = crtUser;
+    }
+
+    public Date getCrtTime() {
+        return crtTime;
+    }
+
+    public void setCrtTime(Date crtTime) {
+        this.crtTime = crtTime;
+    }
+
+    public String getBehaviorData() {
+        return behaviorData;
+    }
+
+    public void setBehaviorData(String behaviorData) {
+        this.behaviorData = behaviorData;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewResult.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewResult.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewResult.java	(revision 37008)
@@ -0,0 +1,116 @@
+package com.novacloud.domain.model.share;
+
+import java.util.Date;
+
+public class ShareOnlineReviewResult {
+    private String onlineReviewId;
+
+    private String containerId;
+
+    private String containerNo;
+
+
+    private Date getFileTime;
+
+    private Date startTime;
+
+    private Date finishTime;
+
+    private Date reviewFinishTime;
+
+    private String fileUpdateRemark;
+
+    private Date lastFinishTime;
+
+    private String lastFinishUser;
+
+    private String lastFinishRemark;
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public Date getGetFileTime() {
+        return getFileTime;
+    }
+
+    public void setGetFileTime(Date getFileTime) {
+        this.getFileTime = getFileTime;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(Date finishTime) {
+        this.finishTime = finishTime;
+    }
+
+    public Date getReviewFinishTime() {
+        return reviewFinishTime;
+    }
+
+    public void setReviewFinishTime(Date reviewFinishTime) {
+        this.reviewFinishTime = reviewFinishTime;
+    }
+
+    public String getFileUpdateRemark() {
+        return fileUpdateRemark;
+    }
+
+    public void setFileUpdateRemark(String fileUpdateRemark) {
+        this.fileUpdateRemark = fileUpdateRemark;
+    }
+
+    public Date getLastFinishTime() {
+        return lastFinishTime;
+    }
+
+    public void setLastFinishTime(Date lastFinishTime) {
+        this.lastFinishTime = lastFinishTime;
+    }
+
+    public String getLastFinishUser() {
+        return lastFinishUser;
+    }
+
+    public void setLastFinishUser(String lastFinishUser) {
+        this.lastFinishUser = lastFinishUser;
+    }
+
+    public String getLastFinishRemark() {
+        return lastFinishRemark;
+    }
+
+    public void setLastFinishRemark(String lastFinishRemark) {
+        this.lastFinishRemark = lastFinishRemark;
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncBehaviorLog.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncBehaviorLog.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncBehaviorLog.java	(revision 37008)
@@ -0,0 +1,55 @@
+package com.novacloud.domain.model.share;
+
+import java.util.Date;
+
+public class ShareOnlineReviewSyncBehaviorLog {
+    private String behaviorId;
+
+    private String onlineReviewId;
+
+    private String behavior;
+
+    private Date crtTime;
+
+    private String behaviorData;
+
+    public String getBehaviorId() {
+        return behaviorId;
+    }
+
+    public void setBehaviorId(String behaviorId) {
+        this.behaviorId = behaviorId;
+    }
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public String getBehavior() {
+        return behavior;
+    }
+
+    public void setBehavior(String behavior) {
+        this.behavior = behavior;
+    }
+
+    public Date getCrtTime() {
+        return crtTime;
+    }
+
+    public void setCrtTime(Date crtTime) {
+        this.crtTime = crtTime;
+    }
+
+    public String getBehaviorData() {
+        return behaviorData;
+    }
+
+    public void setBehaviorData(String behaviorData) {
+        this.behaviorData = behaviorData;
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncResult.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncResult.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/ShareOnlineReviewSyncResult.java	(revision 37008)
@@ -0,0 +1,45 @@
+package com.novacloud.domain.model.share;
+
+import java.util.Date;
+
+public class ShareOnlineReviewSyncResult {
+    private String onlineReviewId;
+
+    private Date lastSyncTime;
+
+    private String hddzRemark;
+
+    private String syncSuer;
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public Date getLastSyncTime() {
+        return lastSyncTime;
+    }
+
+    public void setLastSyncTime(Date lastSyncTime) {
+        this.lastSyncTime = lastSyncTime;
+    }
+
+    public String getHddzRemark() {
+        return hddzRemark;
+    }
+
+    public void setHddzRemark(String hddzRemark) {
+        this.hddzRemark = hddzRemark;
+    }
+
+    public String getSyncSuer() {
+        return syncSuer;
+    }
+
+    public void setSyncSuer(String syncSuer) {
+        this.syncSuer = syncSuer;
+    }
+}
\ No newline at end of file
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineParam.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineParam.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineParam.java	(revision 37008)
@@ -0,0 +1,142 @@
+package com.novacloud.domain.model.share.onlIneVo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model.share.onlIneVo
+ * @Description: TODO
+ * @date Date : 2024/3/2 11:33
+ */
+public class ShareContainerWithOnlineParam {
+
+    // 业务主键
+    private String maillistId;
+
+    //集装箱id
+    private String containerId;
+
+    //集装箱号
+    private String containerNo;
+
+    //业务编号
+    private String ywbh;
+
+    //开始时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    //结束时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date finishTime;
+
+    //备注
+    private String remark;
+
+    //在线审单id
+    private String onlineReviewId;
+
+    //行为类型
+    private String behaviorCode;
+
+    //行为数据
+    private String behaviorData;
+
+    //创建人
+    private String crtUser;
+
+    public String getMaillistId() {
+        return maillistId;
+    }
+
+    public void setMaillistId(String maillistId) {
+        this.maillistId = maillistId;
+    }
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getYwbh() {
+        return ywbh;
+    }
+
+    public void setYwbh(String ywbh) {
+        this.ywbh = ywbh;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(Date finishTime) {
+        this.finishTime = finishTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public String getBehaviorCode() {
+        return behaviorCode;
+    }
+
+    public void setBehaviorCode(String behaviorCode) {
+        this.behaviorCode = behaviorCode;
+    }
+
+    public String getBehaviorData() {
+        return behaviorData;
+    }
+
+    public void setBehaviorData(String behaviorData) {
+        this.behaviorData = behaviorData;
+    }
+
+    public String getCrtUser() {
+        return crtUser;
+    }
+
+    public void setCrtUser(String crtUser) {
+        this.crtUser = crtUser;
+    }
+}
Index: webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineReviewVo.java
===================================================================
--- webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineReviewVo.java	(revision 0)
+++ webmail-domain/src/main/java/com/novacloud/domain/model/share/onlIneVo/ShareContainerWithOnlineReviewVo.java	(revision 37008)
@@ -0,0 +1,298 @@
+package com.novacloud.domain.model.share.onlIneVo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.novacloud.domain.model.MailFile;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.domain.model.share.onlIneVo
+ * @Description: TODO
+ * @date Date : 2024/2/28 10:53
+ * 给在线审单提供数据
+ */
+public class ShareContainerWithOnlineReviewVo {
+
+    // 业务主键
+    private String maillistId;
+
+    //集装箱id
+    private String containerId;
+
+    //集装箱号
+    private String containerNo;
+
+    //分配单证人员账号
+    private String divideHddzNo;
+
+    //分配单证人员
+    private String divideHddz;
+
+    //分配在线审单人员账号
+    private String onlineReviewNo;
+
+    //分配在线审单人员
+    private String onlineReview;
+
+    //业务编号
+    private String ywbh;
+
+    //开始录单时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    //完成录单时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date finishTime;
+
+    //审单完成时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reviewFinishTime;
+
+    //在线审单最新更新文件
+    private String fileUpdateRemark;
+
+    // 兜底完成时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date lastFinishTime;
+
+    // 兜底人员
+    private String lastFinishUser;
+
+    // 兜底错误说明
+    private String lastFinishRemark;
+
+    // 同步水果通时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date lastSyncTime;
+
+    // 单证人员发现错误
+    private String hddzRemark;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    //获取附件时间
+    private Date getFileTime;
+
+    // 同步人员
+    private String syncSuer;
+
+    //在线审单id
+    private String onlineReviewId;
+
+    //附件信息
+    private List<MailFile> fileList;
+
+    //收件时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date maillistSendertime;
+
+    //邮件优先级
+    private String mailEmergent;
+
+    //行为类型
+    private String behaviorCode;
+
+    public String getMaillistId() {
+        return maillistId;
+    }
+
+    public void setMaillistId(String maillistId) {
+        this.maillistId = maillistId;
+    }
+
+    public String getContainerId() {
+        return containerId;
+    }
+
+    public void setContainerId(String containerId) {
+        this.containerId = containerId;
+    }
+
+    public String getContainerNo() {
+        return containerNo;
+    }
+
+    public void setContainerNo(String containerNo) {
+        this.containerNo = containerNo;
+    }
+
+    public String getDivideHddzNo() {
+        return divideHddzNo;
+    }
+
+    public void setDivideHddzNo(String divideHddzNo) {
+        this.divideHddzNo = divideHddzNo;
+    }
+
+    public String getDivideHddz() {
+        return divideHddz;
+    }
+
+    public void setDivideHddz(String divideHddz) {
+        this.divideHddz = divideHddz;
+    }
+
+    public String getOnlineReviewNo() {
+        return onlineReviewNo;
+    }
+
+    public void setOnlineReviewNo(String onlineReviewNo) {
+        this.onlineReviewNo = onlineReviewNo;
+    }
+
+    public String getOnlineReview() {
+        return onlineReview;
+    }
+
+    public void setOnlineReview(String onlineReview) {
+        this.onlineReview = onlineReview;
+    }
+
+    public String getYwbh() {
+        return ywbh;
+    }
+
+    public void setYwbh(String ywbh) {
+        this.ywbh = ywbh;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getFinishTime() {
+        return finishTime;
+    }
+
+    public void setFinishTime(Date finishTime) {
+        this.finishTime = finishTime;
+    }
+
+    public Date getReviewFinishTime() {
+        return reviewFinishTime;
+    }
+
+    public void setReviewFinishTime(Date reviewFinishTime) {
+        this.reviewFinishTime = reviewFinishTime;
+    }
+
+    public String getFileUpdateRemark() {
+        return fileUpdateRemark;
+    }
+
+    public void setFileUpdateRemark(String fileUpdateRemark) {
+        this.fileUpdateRemark = fileUpdateRemark;
+    }
+
+    public Date getLastFinishTime() {
+        return lastFinishTime;
+    }
+
+    public void setLastFinishTime(Date lastFinishTime) {
+        this.lastFinishTime = lastFinishTime;
+    }
+
+    public String getLastFinishUser() {
+        return lastFinishUser;
+    }
+
+    public void setLastFinishUser(String lastFinishUser) {
+        this.lastFinishUser = lastFinishUser;
+    }
+
+    public String getLastFinishRemark() {
+        return lastFinishRemark;
+    }
+
+    public void setLastFinishRemark(String lastFinishRemark) {
+        this.lastFinishRemark = lastFinishRemark;
+    }
+
+    public Date getLastSyncTime() {
+        return lastSyncTime;
+    }
+
+    public void setLastSyncTime(Date lastSyncTime) {
+        this.lastSyncTime = lastSyncTime;
+    }
+
+    public String getHddzRemark() {
+        return hddzRemark;
+    }
+
+    public void setHddzRemark(String hddzRemark) {
+        this.hddzRemark = hddzRemark;
+    }
+
+    public Date getGetFileTime() {
+        return getFileTime;
+    }
+
+    public void setGetFileTime(Date getFileTime) {
+        this.getFileTime = getFileTime;
+    }
+
+    public String getSyncSuer() {
+        return syncSuer;
+    }
+
+    public void setSyncSuer(String syncSuer) {
+        this.syncSuer = syncSuer;
+    }
+
+    public String getOnlineReviewId() {
+        return onlineReviewId;
+    }
+
+    public void setOnlineReviewId(String onlineReviewId) {
+        this.onlineReviewId = onlineReviewId;
+    }
+
+    public List<MailFile> getFileList() {
+        return fileList;
+    }
+
+    public void setFileList(List<MailFile> fileList) {
+        this.fileList = fileList;
+    }
+
+    public Date getMaillistSendertime() {
+        return maillistSendertime;
+    }
+
+    public void setMaillistSendertime(Date maillistSendertime) {
+        this.maillistSendertime = maillistSendertime;
+    }
+
+    public String getMailEmergent() {
+        return mailEmergent;
+    }
+
+    public void setMailEmergent(String mailEmergent) {
+        this.mailEmergent = mailEmergent;
+    }
+
+    public String getBehaviorCode() {
+        return behaviorCode;
+    }
+
+    public void setBehaviorCode(String behaviorCode) {
+        this.behaviorCode = behaviorCode;
+    }
+}
Index: webmail-service/src/main/java/com/novacloud/service/inbox/InBoxService.java
===================================================================
--- webmail-service/src/main/java/com/novacloud/service/inbox/InBoxService.java	(revision 37007)
+++ webmail-service/src/main/java/com/novacloud/service/inbox/InBoxService.java	(revision 37008)
@@ -270,7 +270,7 @@
 	 * @参数： @param maillistRemarks 备注
 	 * @throws
 	 */
-	void saveMaillistRemarks(MailListView mailListView);
+	void saveMaillistRemarks(MailListView mailListView, String userid);
 
 	/**
 	 * 方法功能说明：  无需分配/回复功能
Index: webmail-service/src/main/java/com/novacloud/service/inbox/impl/InBoxServiceImpl.java
===================================================================
--- webmail-service/src/main/java/com/novacloud/service/inbox/impl/InBoxServiceImpl.java	(revision 37007)
+++ webmail-service/src/main/java/com/novacloud/service/inbox/impl/InBoxServiceImpl.java	(revision 37008)
@@ -10,6 +10,7 @@
 
 import javax.annotation.Resource;
 
+import com.novacloud.service.share.ShareContainerResultService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -96,6 +97,9 @@
 	@Resource
 	private InBoxService inBoxService;
 
+	@Resource
+	private ShareContainerResultService shareContainerResultService;
+
 	/**
 	 * @version 1.0
 	 * @Title: queryInBoxListPageCount
@@ -738,8 +742,13 @@
 	 */
 	@Transactional(propagation=Propagation.REQUIRED)
 	@Override
-	public void saveMaillistRemarks(MailListView mailListView) {
+	public void saveMaillistRemarks(MailListView mailListView, String userid) {
 		mailListDao.saveMaillistRemarks(mailListView);
+
+		//处理拆分集装箱信息
+		if (!CommonUtil.isEmpty(mailListView.getContainers())) {
+			shareContainerResultService.saveContainerInfo(mailListView, userid);
+		}
 	}
 
 	/**
Index: webmail-service/src/main/java/com/novacloud/service/share/ShareContainerResultService.java
===================================================================
--- webmail-service/src/main/java/com/novacloud/service/share/ShareContainerResultService.java	(revision 0)
+++ webmail-service/src/main/java/com/novacloud/service/share/ShareContainerResultService.java	(revision 37008)
@@ -0,0 +1,146 @@
+package com.novacloud.service.share;
+
+import com.novacloud.domain.model.MailListView;
+import com.novacloud.domain.model.share.ShareContainer;
+import com.novacloud.domain.model.share.ShareContainerBehaviorLog;
+import com.novacloud.domain.model.share.ShareContainerResult;
+import com.novacloud.domain.model.share.ShareContainerResultInfo;
+import com.novacloud.domain.model.share.ShareContainerResultLogParam;
+import com.novacloud.domain.model.share.ShareContainerResultLogs;
+import com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog;
+import com.novacloud.domain.model.share.ShareOnlineReviewResult;
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog;
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncResult;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineParam;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineReviewVo;
+import com.novacloud.util.database.Page;
+
+import java.util.List;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.service.share
+ * @Description: TODO
+ * @date Date : 2024/2/22 16:30
+ */
+public interface ShareContainerResultService {
+
+    /**
+     * saveContainerInfo(保存拆分的集装箱信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/22 17:00
+     */
+    void saveContainerInfo(MailListView mailListView, String userid);
+
+    /**
+     * saveContainerData(保存数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 14:27
+     */
+    void saveContainerData(List<ShareContainerResult> resultList, List<ShareContainerBehaviorLog> logList, List<ShareContainerResult> editContainer, List<String> deleteContainer, MailListView mailListView);
+
+    /**
+     * queryContainerList(根据业务id获取集装箱id和集装箱号)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/23 17:49
+     */
+    List<ShareContainer> queryContainerList(String maillistId);
+
+    /**
+     * queryContainerResultWithMainId(根据业务id获取集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/24 14:24
+     */
+    List<ShareContainerResult> queryContainerResultWithMainId(String maillistId);
+
+    /**
+     * updateDivideHddz(更新分配的审单人员或者单证人员)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/25 16:44
+     */
+    void saveData(List<ShareContainerResult> param, String type, String userid);
+
+    /**
+     * saveUpdateData(保存要更新的数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/25 17:17
+     */
+    void saveUpdateData(List<ShareContainerResult> updateData, List<ShareContainerBehaviorLog> logList);
+
+    /**
+     * queryShareContainerLogsListCount(查询日志表总数量)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 13:14
+     */
+    int queryShareContainerBusinessListCount(ShareContainerResultLogParam query, String userid);
+
+    /**
+     * queryShareContainerLogsList(查询日志表数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 13:15
+     */
+    List<ShareContainerResultLogs> queryShareContainerBusinessList(ShareContainerResultLogParam query, Page page, String userid);
+
+    /**
+     * queryShareContainerLogsList(根据业务id查询集装箱行为信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 14:19
+     */
+    List<ShareContainerResultInfo> queryShareContainerLogsList(ShareContainerResultLogParam query);
+
+    /**
+     * queryShareContainerResultInfo(查询集装箱编辑数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 16:28
+     */
+    ShareContainerResultInfo queryShareContainerResultInfo(String containerId);
+
+    /**
+     * saveEditData(保存集装箱在线审单编辑信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 18:22
+     */
+    void saveEditData(ShareContainerWithOnlineParam param);
+
+    /**
+     * saveOnlineReviewData(保存在线审单行为)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 20:46
+     */
+    void saveOnlineReviewData(ShareOnlineReviewResult reviewResult, ShareOnlineReviewBehaviorLog behaviorLog, ShareOnlineReviewSyncResult syncResult, ShareOnlineReviewSyncBehaviorLog syncBehaviorLog, String behaviorCode);
+
+    /**
+     * queryShareContainerResultInfoList(给在线审单)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/28 10:19
+     */
+    List<ShareContainerWithOnlineReviewVo> queryShareContainerResultInfoList(String containerNo, String userId);
+}
Index: webmail-service/src/main/java/com/novacloud/service/share/impl/ShareContainerResultServiceImpl.java
===================================================================
--- webmail-service/src/main/java/com/novacloud/service/share/impl/ShareContainerResultServiceImpl.java	(revision 0)
+++ webmail-service/src/main/java/com/novacloud/service/share/impl/ShareContainerResultServiceImpl.java	(revision 37008)
@@ -0,0 +1,559 @@
+package com.novacloud.service.share.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.novacloud.constant.behaviorConstant;
+import com.novacloud.dao.FileMapper;
+import com.novacloud.dao.MailListMapper;
+import com.novacloud.dao.ShareContainerBehaviorLogMapper;
+import com.novacloud.dao.ShareContainerResultMapper;
+import com.novacloud.dao.ShareOnlineReviewBehaviorLogMapper;
+import com.novacloud.dao.ShareOnlineReviewResultMapper;
+import com.novacloud.dao.ShareOnlineReviewSyncBehaviorLogMapper;
+import com.novacloud.dao.ShareOnlineReviewSyncResultMapper;
+import com.novacloud.domain.model.MailListView;
+import com.novacloud.domain.model.share.ShareContainer;
+import com.novacloud.domain.model.share.ShareContainerBehaviorLog;
+import com.novacloud.domain.model.share.ShareContainerResult;
+import com.novacloud.domain.model.share.ShareContainerResultInfo;
+import com.novacloud.domain.model.share.ShareContainerResultLogParam;
+import com.novacloud.domain.model.share.ShareContainerResultLogs;
+import com.novacloud.domain.model.share.ShareOnlineReviewBehaviorLog;
+import com.novacloud.domain.model.share.ShareOnlineReviewResult;
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncBehaviorLog;
+import com.novacloud.domain.model.share.ShareOnlineReviewSyncResult;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineParam;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineReviewVo;
+import com.novacloud.exception.BusinessException;
+import com.novacloud.service.share.ShareContainerResultService;
+import com.novacloud.util.common.CommonUtil;
+import com.novacloud.util.database.Page;
+import com.novacloud.util.database.SearchPageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.service.share.impl
+ * @Description: TODO
+ * @date Date : 2024/2/22 16:31
+ */
+@Service("shareContainerResultService")
+public class ShareContainerResultServiceImpl implements ShareContainerResultService {
+
+    @Resource
+    private ShareContainerResultService shareContainerResultService;
+
+    @Resource
+    private ShareContainerResultMapper shareContainerResultMapper;
+
+    @Resource
+    private ShareContainerBehaviorLogMapper shareContainerBehaviorLogMapper;
+
+    @Resource
+    private MailListMapper mailListMapper;
+
+    @Resource
+    private ShareOnlineReviewResultMapper shareOnlineReviewResultMapper;
+
+    @Resource
+    private ShareOnlineReviewBehaviorLogMapper shareOnlineReviewBehaviorLogMapper;
+
+    @Resource
+    private ShareOnlineReviewSyncResultMapper shareOnlineReviewSyncResultMapper;
+
+    @Resource
+    private ShareOnlineReviewSyncBehaviorLogMapper shareOnlineReviewSyncBehaviorLogMapper;
+
+    @Resource
+    private FileMapper fileMapper;
+
+    /**
+     * saveContainerInfo(保存分配的集装箱信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:37
+     */
+    @Transactional
+    @Override
+    public void saveContainerInfo(MailListView mailListView, String userid) {
+
+        //拆分集装箱结果数据
+        List<ShareContainerResult> resultList = new ArrayList<ShareContainerResult>();
+        //行为日志数据
+        List<ShareContainerBehaviorLog> logList = new ArrayList<ShareContainerBehaviorLog>();
+        //编辑的集装箱数据
+        List<ShareContainerResult> editContainer = new ArrayList<ShareContainerResult>();
+        //删除的集装箱数据  记录要删除的集装箱id
+        List<String> deleteContainer = new ArrayList<String>();
+
+        //处理数据
+        handlerContainerData(mailListView, resultList, logList, editContainer, deleteContainer, userid);
+
+        //保存数据
+        shareContainerResultService.saveContainerData(resultList, logList, editContainer, deleteContainer, mailListView);
+    }
+
+    // 保存数据
+    @Transactional
+    @Override
+    public void saveContainerData(List<ShareContainerResult> resultList, List<ShareContainerBehaviorLog> logList, List<ShareContainerResult> editContainer, List<String> deleteContainer, MailListView mailListView) {
+        //1、新增的集装箱数据
+        if (!CommonUtil.isEmpty(resultList)) {
+            shareContainerResultMapper.insertList(resultList);
+        }
+        //2、行为日志表保存
+        if (!CommonUtil.isEmpty(logList)) {
+            shareContainerBehaviorLogMapper.insertLogList(logList);
+        }
+        //3、 编辑的集装箱数据保存
+        if (!CommonUtil.isEmpty(editContainer)) {
+            shareContainerResultMapper.editContainerList(editContainer);
+        }
+        //4、删除的集装箱数据保存
+        if (!CommonUtil.isEmpty(deleteContainer)) {
+            shareContainerResultMapper.deleteContainerList(deleteContainer);
+        }
+
+        //5、更新业务主表得在线审单标志
+        mailListMapper.updateOnlineFlag(mailListView.getMaillistId());
+    }
+
+    /**
+     * 根据业务id获取集装箱id和集装箱号
+     * @param maillistId
+     * @return
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public List<ShareContainer> queryContainerList(String maillistId) {
+        return shareContainerResultMapper.queryContainerList(maillistId);
+    }
+
+    /**
+     * queryContainerResultWithMainId(根据业务id获取拆分的集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/24 14:25
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public List<ShareContainerResult> queryContainerResultWithMainId(String maillistId) {
+        return shareContainerResultMapper.queryContainerResultWithMainId(maillistId);
+    }
+
+    /**
+     * saveData(保存分配的 单证人员/在线审单人员)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:38
+     */
+    @Override
+    public void saveData(List<ShareContainerResult> param, String type, String userid) {
+        //行为日志数据
+        List<ShareContainerBehaviorLog> logList = new ArrayList<ShareContainerBehaviorLog>();
+
+        //要更新的数据
+        List<ShareContainerResult> updateData = new ArrayList<ShareContainerResult>();
+
+        //处理要更新数据
+        handleUpdataData(param, type, userid, logList, updateData);
+
+        //保存要更新的数据
+        shareContainerResultService.saveUpdateData(updateData, logList);
+    }
+
+    /**
+     * saveUpdateData(保存要更新的数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:41
+     */
+    @Transactional
+    @Override
+    public void saveUpdateData(List<ShareContainerResult> updateData, List<ShareContainerBehaviorLog> logList) {
+        if (!CommonUtil.isEmpty(updateData)) {
+            shareContainerResultMapper.saveUpdateData(updateData);
+        }
+
+        //行为日志保存
+        if (!CommonUtil.isEmpty(logList)) {
+            shareContainerBehaviorLogMapper.insertLogList(logList);
+        }
+    }
+
+    /**
+     * queryShareContainerBusinessListCount(查询日志页面数据总数)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:41
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public int queryShareContainerBusinessListCount(ShareContainerResultLogParam query, String userid) {
+        return shareContainerResultMapper.queryShareContainerBusinessListCount(query, userid);
+    }
+
+    /**
+     * queryShareContainerBusinessList(查询日志页面列表数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:41
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public List<ShareContainerResultLogs> queryShareContainerBusinessList(ShareContainerResultLogParam query, Page page, String userid) {
+        // 1、获取在线审单的业务主数据
+        try {
+            SearchPageUtil searchPageUtil = new SearchPageUtil();
+            searchPageUtil.setObject(query);
+            searchPageUtil.setPage(page);
+            List<ShareContainerResultLogs> resultLogs = shareContainerResultMapper.queryShareContainerBusinessList(searchPageUtil);
+            return resultLogs;
+        }catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException("0301", "列表查询失败:"+e.getMessage());
+        }
+    }
+
+    /**
+     * queryShareContainerLogsList(查询日志数据下拆分的集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:42
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public List<ShareContainerResultInfo> queryShareContainerLogsList(ShareContainerResultLogParam query) {
+        //查询所有的集装箱信息
+         return shareContainerResultMapper.queryContainerListByIdList(query);
+    }
+
+    /**
+     * queryShareContainerResultInfo(根据集装箱id查询集装箱信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:43
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public ShareContainerResultInfo queryShareContainerResultInfo(String containerId) {
+        return shareContainerResultMapper.queryShareContainerResultInfo(containerId);
+    }
+
+    /**
+     * saveEditData(保存在线审单操作数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:43
+     */
+    @Override
+    public void saveEditData(ShareContainerWithOnlineParam param) {
+
+        //1、操作结果
+        ShareOnlineReviewResult reviewResult = new ShareOnlineReviewResult();
+        //组装在线审单行为日志
+        ShareOnlineReviewBehaviorLog behaviorLog = new ShareOnlineReviewBehaviorLog();
+        //组装同步结果数据
+        ShareOnlineReviewSyncResult syncResult = new ShareOnlineReviewSyncResult();
+        //同步行为日志
+        ShareOnlineReviewSyncBehaviorLog syncBehaviorLog = new ShareOnlineReviewSyncBehaviorLog();
+
+        //处理行为数据
+        handleBehaviorData(param, reviewResult, behaviorLog, syncResult, syncBehaviorLog);
+
+        //保存数据
+        shareContainerResultService.saveOnlineReviewData(reviewResult, behaviorLog, syncResult, syncBehaviorLog, param.getBehaviorCode());
+    }
+
+    //处理行为数据
+    private void handleBehaviorData(ShareContainerWithOnlineParam param, ShareOnlineReviewResult reviewResult, ShareOnlineReviewBehaviorLog behaviorLog, ShareOnlineReviewSyncResult syncResult, ShareOnlineReviewSyncBehaviorLog syncBehaviorLog) {
+        String resultId = UUID.randomUUID().toString();
+        if (!CommonUtil.isEmpty(param.getOnlineReviewId())) {
+            resultId = param.getOnlineReviewId();
+        }
+        // 开始录单
+        if (behaviorConstant.BehaviorEnum.START_NOTE.getCode().equals(param.getBehaviorCode())) {
+            createData(param, reviewResult, behaviorLog, resultId);
+            if (!CommonUtil.isEmpty(param.getStartTime())) {
+                reviewResult.setStartTime(param.getStartTime());
+            }
+        }
+        //审单完成
+        if (behaviorConstant.BehaviorEnum.CHECK.getCode().equals(param.getBehaviorCode())) {
+            createData(param, reviewResult, behaviorLog, resultId);
+            if (!CommonUtil.isEmpty(param.getStartTime())) {
+                reviewResult.setReviewFinishTime(param.getStartTime());
+            }
+        }
+        //完成录单
+        if (behaviorConstant.BehaviorEnum.FINISH_NOTE.getCode().equals(param.getBehaviorCode())) {
+            createData(param, reviewResult, behaviorLog, resultId);
+            if (!CommonUtil.isEmpty(param.getStartTime())) {
+                reviewResult.setFinishTime(param.getStartTime());
+            }
+            if (!CommonUtil.isEmpty(param.getRemark())) {
+                reviewResult.setFileUpdateRemark(param.getRemark());
+            }
+        }
+        //获取附件信息
+        if (behaviorConstant.BehaviorEnum.GETEFILE.getCode().equals(param.getBehaviorCode())) {
+            createData(param, reviewResult, behaviorLog, resultId);
+            if (!CommonUtil.isEmpty(param.getStartTime())) {
+                reviewResult.setGetFileTime(param.getStartTime());
+            }
+        }
+        //兜底完成
+        if (behaviorConstant.BehaviorEnum.LASET_CHECK.getCode().equals(param.getBehaviorCode())) {
+            createData(param, reviewResult, behaviorLog, resultId);
+            if (!CommonUtil.isEmpty(param.getStartTime())) {
+                reviewResult.setLastFinishTime(param.getStartTime());
+            }
+            if (!CommonUtil.isEmpty(param.getCrtUser())) {
+                reviewResult.setLastFinishUser(param.getCrtUser());
+            }
+            if (!CommonUtil.isEmpty(param.getRemark())) {
+                reviewResult.setLastFinishRemark(param.getRemark());
+            }
+        }
+        // 同步
+        if (behaviorConstant.BehaviorEnum.SYNC.getCode().equals(param.getBehaviorCode())) {
+            //创建同步数据
+            createSyncData(param, syncResult, syncBehaviorLog, resultId);
+        }
+    }
+
+    // 处理同步数据
+    private void createSyncData(ShareContainerWithOnlineParam param, ShareOnlineReviewSyncResult syncResult, ShareOnlineReviewSyncBehaviorLog syncBehaviorLog, String resultId) {
+        //组装同步结果数据
+        syncResult.setOnlineReviewId(resultId);
+        syncResult.setLastSyncTime(param.getStartTime());
+        syncResult.setHddzRemark(param.getRemark());
+        syncResult.setSyncSuer(param.getCrtUser());
+
+        //同步行为日志
+        syncBehaviorLog.setBehaviorId(UUID.randomUUID().toString());
+        syncBehaviorLog.setOnlineReviewId(resultId);
+        syncBehaviorLog.setBehavior(param.getBehaviorCode()); //在线审单传递
+        syncBehaviorLog.setCrtTime(new Date());
+        syncBehaviorLog.setBehaviorData(param.getBehaviorData());
+
+    }
+
+    //创建在线审单结果数据
+    private void createData(ShareContainerWithOnlineParam param, ShareOnlineReviewResult reviewResult, ShareOnlineReviewBehaviorLog behaviorLog, String resultId) {
+        //结果数据
+        reviewResult.setOnlineReviewId(resultId);
+        reviewResult.setContainerId(param.getContainerId());
+        reviewResult.setContainerNo(param.getContainerNo());
+
+        //记录日志
+        behaviorLog.setBehaviorData(param.getBehaviorData());
+        behaviorLog.setContainerNo(param.getContainerNo());
+        behaviorLog.setOnlineReviewId(resultId);
+        behaviorLog.setReviewId(UUID.randomUUID().toString());
+        behaviorLog.setCrtTime(new Date());
+        behaviorLog.setBehavior(param.getBehaviorCode());
+        behaviorLog.setCrtUser(param.getCrtUser());
+    }
+
+    /**
+     * saveOnlineReviewData(保存在线审单结果数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/3/4 9:49
+     */
+    @Transactional
+    @Override
+    public void saveOnlineReviewData(ShareOnlineReviewResult reviewResult, ShareOnlineReviewBehaviorLog behaviorLog, ShareOnlineReviewSyncResult syncResult, ShareOnlineReviewSyncBehaviorLog syncBehaviorLog, String behaviorCode) {
+        if (!CommonUtil.isEmpty(reviewResult) && !behaviorConstant.BehaviorEnum.SYNC.getCode().equals(behaviorCode)) {
+            //先查询之前是否存在
+            ShareOnlineReviewResult result = shareOnlineReviewResultMapper.selectByPrimaryKey(reviewResult.getOnlineReviewId());
+            if (CommonUtil.isEmpty(result)) {
+                //新增
+                shareOnlineReviewResultMapper.insertSelective(reviewResult);
+            } else {
+                shareOnlineReviewResultMapper.updateByPrimaryKeySelective(reviewResult);
+            }
+            if (!CommonUtil.isEmpty(behaviorLog)) {
+                shareOnlineReviewBehaviorLogMapper.insert(behaviorLog);
+            }
+        }
+
+
+        if (!CommonUtil.isEmpty(syncResult) && behaviorConstant.BehaviorEnum.SYNC.getCode().equals(behaviorCode)) {
+            //查询是否存在过
+            ShareOnlineReviewSyncResult result = shareOnlineReviewSyncResultMapper.selectByPrimaryKey(syncResult.getOnlineReviewId());
+            if (CommonUtil.isEmpty(result)) {
+                //新增
+                shareOnlineReviewSyncResultMapper.insertSelective(syncResult);
+            } else {
+                shareOnlineReviewSyncResultMapper.updateByPrimaryKeySelective(syncResult);
+            }
+            if (!CommonUtil.isEmpty(syncBehaviorLog)) {
+                shareOnlineReviewSyncBehaviorLogMapper.insertSelective(syncBehaviorLog);
+            }
+        }
+
+    }
+
+    /**
+     * queryShareContainerResultInfoList(给在线审单提供查询集装箱接口)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/28 10:21
+     */
+    @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
+    @Override
+    public List<ShareContainerWithOnlineReviewVo> queryShareContainerResultInfoList(String containerNo, String userId) {
+        // 1、根据集装箱号获取集装箱数据
+        List<ShareContainerWithOnlineReviewVo> list = shareContainerResultMapper.queryShareContainerResultInfoList(containerNo, userId);
+
+        //2、根据业务主键id获取附件信息
+        for (ShareContainerWithOnlineReviewVo reviewVo : list) {
+            reviewVo.setFileList(fileMapper.queryFileByfileMailinfoid(reviewVo.getMaillistId()));
+        }
+        return list;
+    }
+
+    // 处理更新的数据
+    private void handleUpdataData(List<ShareContainerResult> param, String type, String userid, List<ShareContainerBehaviorLog> logList, List<ShareContainerResult> updateData) {
+        if ("0".equals(type)) {
+            //更新单证人员
+            for (ShareContainerResult result : param) {
+                if (!CommonUtil.isEmpty(result.getDivideHddzNo())) {
+                    ShareContainerResult divideHddz = new ShareContainerResult();
+                    BeanUtils.copyProperties(result, divideHddz);
+                    divideHddz.setEnterTime(new Date());
+                    divideHddz.setDivideHddzTime(new Date());
+
+                    updateData.add(divideHddz);
+                    //保存日志信息
+                    createBehaviorLog(param, result.getMaillistId(), logList, userid, result.getContainerNo(), result.getContainerId(), behaviorConstant.BehaviorEnum.ASSIGN_DOCUMENTATION_PERSONNEL.getCode());  // 分配单证人员
+                }
+            }
+        } else {
+            //更新审单人员
+            for (ShareContainerResult result : param) {
+                if (!CommonUtil.isEmpty(result.getOnlineReviewNo())) {
+                    ShareContainerResult onlineReview = new ShareContainerResult();
+                    BeanUtils.copyProperties(result, onlineReview);
+                    onlineReview.setEnterTime(new Date());
+                    onlineReview.setOnlineReviewTime(new Date());
+
+                    updateData.add(onlineReview);
+                    //保存日志信息
+                    createBehaviorLog(param, result.getMaillistId(), logList, userid, result.getContainerNo(), result.getContainerId(), behaviorConstant.BehaviorEnum.ASSIGN_ONLINE_REVIEW_PERSONNEL.getCode());  // 分配审单人员
+                }
+            }
+        }
+    }
+
+    //处理数据
+    private void handlerContainerData(MailListView mailListView, List<ShareContainerResult> resultList, List<ShareContainerBehaviorLog> logList, List<ShareContainerResult> editContainer, List<String> deleteContainer, String userid) {
+        //获取集装箱信息
+        List<ShareContainer> containerList = JSONArray.parseArray(mailListView.getContainers(), ShareContainer.class);
+
+        for (ShareContainer container : containerList) {
+            if ("0".equals(container.getStatus())) {
+                //新增的集装箱
+                insertContainer(mailListView, resultList, logList, userid, container);
+            } else if ("1".equals(container.getStatus())) {
+                //编辑的集装箱信息 只更新结果表的集装号
+                updateContainer(mailListView, logList, editContainer, userid, container);
+            } else if ("2".equals(container.getStatus())) {
+                //删除的集装箱信息  -- 结果表删除集装箱数据
+                deleteContainer(mailListView, logList, deleteContainer, userid, container);
+            }
+        }
+    }
+
+    // 删除的集装箱数据
+    private void deleteContainer(MailListView mailListView, List<ShareContainerBehaviorLog> logList, List<String> deleteContainer, String userid, ShareContainer container) {
+        deleteContainer.add(container.getContainerId());
+        //行为表插入一条行为数据
+        createBehaviorLog(mailListView, mailListView.getMaillistId(), logList, userid, container.getContainerNo(), container.getContainerId(), behaviorConstant.BehaviorEnum.DELETE.getCode());
+
+    }
+
+    // 更新的集装箱数据
+    private void updateContainer(MailListView mailListView, List<ShareContainerBehaviorLog> logList, List<ShareContainerResult> editContainer, String userid, ShareContainer container) {
+        ShareContainerResult result = new ShareContainerResult();
+        result.setContainerId(container.getContainerId());
+        result.setContainerNo(container.getContainerNo());
+        result.setEnterTime(new Date());
+        editContainer.add(result);
+        //行为表插入一条行为数据
+        createBehaviorLog(mailListView, mailListView.getMaillistId(), logList, userid, container.getContainerNo(), container.getContainerId(), behaviorConstant.BehaviorEnum.EDIT.getCode());
+
+    }
+
+    // 新增的集装箱数据
+    private void insertContainer(MailListView mailListView, List<ShareContainerResult> resultList, List<ShareContainerBehaviorLog> logList, String userid, ShareContainer container) {
+        //1、首先查询当前结果表种是否已经存在
+        ShareContainerResult data = shareContainerResultMapper.queryDataWithMainId(mailListView.getMaillistId(), container.getContainerNo());
+        if (CommonUtil.isEmpty(data)) {
+            //不存在数据
+            //创建集装箱结果表
+            String containerId = createContainer(mailListView, resultList, container);
+            //记录行为日志
+            createBehaviorLog(mailListView, mailListView.getMaillistId(), logList, userid, container.getContainerNo(), containerId, behaviorConstant.BehaviorEnum.NEW_CREATE.getCode());
+        } else {
+            //存在数据
+            //1、首先判断集装箱号之前是否存在  存在，则为拆分的集装箱信息
+            //创建集装箱结果表
+            String containerId = createContainer(mailListView, resultList, container);
+            //记录行为日志
+            createBehaviorLog(mailListView, mailListView.getMaillistId(), logList, userid, container.getContainerNo(), containerId, behaviorConstant.BehaviorEnum.DISASSEMBLE.getCode());
+        }
+    }
+
+    //创建行为日志数据
+    private void createBehaviorLog(Object objData,String businessId, List<ShareContainerBehaviorLog> logList, String userid, String containerNo, String containerId, String behaviorCode) {
+        ShareContainerBehaviorLog behaviorLog = new ShareContainerBehaviorLog();
+        behaviorLog.setBehaviorId(UUID.randomUUID().toString());
+        behaviorLog.setMaillistId(businessId);
+        behaviorLog.setContainerNo(containerNo);
+        behaviorLog.setContainerId(containerId);
+        behaviorLog.setBehaviorType(behaviorCode); //行为
+        behaviorLog.setBehaviorData(JSON.toJSONString(objData));
+        behaviorLog.setCrtTime(new Date());
+        behaviorLog.setCrtUser(userid);
+        logList.add(behaviorLog);
+    }
+
+    //创建集装箱数据
+    private String createContainer(MailListView mailListView, List<ShareContainerResult> resultList, ShareContainer container) {
+        ShareContainerResult result = new ShareContainerResult();
+        String containerId = UUID.randomUUID().toString();
+        result.setContainerId(containerId);
+        result.setMaillistId(mailListView.getMaillistId());
+        result.setContainerNo(container.getContainerNo());
+        result.setDataSource("0");
+        result.setEnterTime(new Date());
+        result.setStatus("0");
+        resultList.add(result);
+        return containerId;
+    }
+}
Index: webmail-utils/src/main/java/com/novacloud/constant/behaviorConstant.java
===================================================================
--- webmail-utils/src/main/java/com/novacloud/constant/behaviorConstant.java	(revision 0)
+++ webmail-utils/src/main/java/com/novacloud/constant/behaviorConstant.java	(revision 37008)
@@ -0,0 +1,44 @@
+package com.novacloud.constant;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.constant
+ * @Description: TODO
+ * @date Date : 2024/3/1 9:53
+ */
+public class behaviorConstant {
+
+    public enum BehaviorEnum{
+        NEW_CREATE("00","新建"),
+        EDIT("01", "编辑"),
+        DELETE("02", "删除"),
+        DISASSEMBLE("03", "拆分"),
+        ASSIGN_DOCUMENTATION_PERSONNEL("04", "分配单证人员"),
+        ASSIGN_ONLINE_REVIEW_PERSONNEL("05", "分配在线审单人员"),
+        TRANSFER_TO_OFFLINE_REVIEW("06", "转线下审单"),
+        GETEFILE("07", "获取附件"),
+        START_NOTE("08", "开始录单"),
+        CHECK("09", "审单"),
+        FINISH_NOTE("10", "完成录单"),
+        LASET_CHECK("11", "兜底完成"),
+        SYNC("12", "同步");
+
+        private String code;
+        private String msg;
+
+        BehaviorEnum(String code, String msg){
+            this.code = code;
+            this.msg = msg;
+        }
+
+        public String getCode() {
+            return code;
+        }
+
+        public String getMsg() {
+            return msg;
+        }
+    }
+}
Index: webmail-web/src/main/java/com/novacloud/action/mail/MailInboxControl.java
===================================================================
--- webmail-web/src/main/java/com/novacloud/action/mail/MailInboxControl.java	(revision 37007)
+++ webmail-web/src/main/java/com/novacloud/action/mail/MailInboxControl.java	(revision 37008)
@@ -16,6 +16,9 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpSession;
 
+import com.novacloud.domain.model.share.ShareContainer;
+import com.novacloud.service.share.ShareContainerResultService;
+import net.sf.json.JSONObject;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -83,6 +86,9 @@
 	private ReadRecordService readRecordService;
 	@Resource
 	private ManualAllocationService manualAllocationService;
+
+	@Resource
+	private ShareContainerResultService shareContainerResultService;
 	
 	private SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd");
 	
@@ -414,6 +420,8 @@
 			readRecordService.updateBymailIdAndUidAndRole(rr);
 			readStatus = RmdeskConfig.READ;
 		}
+		//获取集装箱数据
+		List<ShareContainer> containerList = shareContainerResultService.queryContainerList(maillistId);
 		// 附件数据回传
 		request.setAttribute("fileList", fileList);
 		request.setAttribute("serviceNo", serviceNo);
@@ -424,6 +432,7 @@
 		request.setAttribute("baMap", baMap);
 		request.setAttribute("readStatus", readStatus);
         request.setAttribute("iframeName", iframeName);
+		request.setAttribute("containerList", containerList);
 		
 //		System.out.println("查询完成:"+System.currentTimeMillis());
 		
@@ -681,12 +690,17 @@
 			String maillistRemarks = request.getParameter("maillistRemarks");
 			// 邮件id
 			String maillistId = request.getParameter("maillistId");
+			// 拆分的集装箱信息
+			String containers = request.getParameter("containers");
+			JSONObject user = JSONObject.fromObject(request.getSession().getAttribute("user"));
+			String userid = user.getString("id");
 			// 设置查询对象
 			MailListView mailListView = new MailListView();
 			mailListView.setMaillistRemarks(maillistRemarks);
 			mailListView.setMaillistId(maillistId);
+			mailListView.setContainers(containers);
 			
-			inBoxService.saveMaillistRemarks(mailListView);
+			inBoxService.saveMaillistRemarks(mailListView, userid);
 		}catch (Exception e) {
 			e.printStackTrace();
 			model.setCode("1");
Index: webmail-web/src/main/java/com/novacloud/action/share/PersonnelAllocationControl.java
===================================================================
--- webmail-web/src/main/java/com/novacloud/action/share/PersonnelAllocationControl.java	(revision 0)
+++ webmail-web/src/main/java/com/novacloud/action/share/PersonnelAllocationControl.java	(revision 37008)
@@ -0,0 +1,29 @@
+package com.novacloud.action.share;
+
+import com.novacloud.action.common.BaseControl;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.action.share
+ * @Description: TODO
+ * @date Date : 2024/2/24 14:13
+ */
+@Controller
+@RequestMapping("/personnelAllocation")
+public class PersonnelAllocationControl extends BaseControl {
+
+    @RequestMapping("/showPersonnelAllocationPage")
+    public String showDealPersonOnlyCheckedPopPage() {
+        // 获取前台传递过来的查询参数
+        String maillistId = request.getParameter("maillistId");
+        String type = request.getParameter("type");
+
+        request.setAttribute("maillistId", maillistId);
+        request.setAttribute("type", type);
+        return "share/showPersonnelAllocationPage";
+    }
+}
Index: webmail-web/src/main/java/com/novacloud/action/share/ShareContainerResultControl.java
===================================================================
--- webmail-web/src/main/java/com/novacloud/action/share/ShareContainerResultControl.java	(revision 0)
+++ webmail-web/src/main/java/com/novacloud/action/share/ShareContainerResultControl.java	(revision 37008)
@@ -0,0 +1,376 @@
+package com.novacloud.action.share;
+
+import com.novacloud.action.common.BaseControl;
+import com.novacloud.domain.model.share.ShareContainerResult;
+import com.novacloud.domain.model.User;
+import com.novacloud.domain.model.mail.JsonModel;
+import com.novacloud.domain.model.share.ShareContainerResultInfo;
+import com.novacloud.domain.model.share.ShareContainerResultLogParam;
+import com.novacloud.domain.model.share.ShareContainerResultLogs;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineParam;
+import com.novacloud.domain.model.share.onlIneVo.ShareContainerWithOnlineReviewVo;
+import com.novacloud.exception.BusinessException;
+import com.novacloud.service.share.ShareContainerResultService;
+import com.novacloud.util.database.Page;
+import net.sf.json.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpSession;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author : weixu
+ * @version V1.0
+ * @Project: webmail
+ * @Package com.novacloud.action.share
+ * @Description: TODO
+ * @date Date : 2024/2/24 18:32
+ */
+@Controller
+@RequestMapping("/containerResult")
+public class ShareContainerResultControl extends BaseControl {
+
+    private SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd");
+
+    @Resource
+    private ShareContainerResultService shareContainerResultService;
+
+    /**
+     * queryShareContainerList(查询拆分的集装箱数据)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 11:03
+     */
+    @RequestMapping("/queryShareContainerList")
+    @ResponseBody
+    public Map<String, Object> queryShareContainerList() {
+        // 获取前台传递过来的查询参数
+        String maillistId = request.getParameter("maillistId");
+
+        //查询拆分的集装箱数据
+        List<ShareContainerResult> containerList = shareContainerResultService.queryContainerResultWithMainId(maillistId);
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("rows", containerList);
+        return map;
+    }
+
+    /**
+     * saveData(保存分配的单证人员或者在线审单人员)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 11:04
+     */
+    @RequestMapping(value="/saveData")
+    @ResponseBody
+    public JsonModel saveData(@RequestBody List<ShareContainerResult> param) {
+        JsonModel model = new JsonModel();
+
+        try {
+
+            //判断是保存单证人员还是审单人员
+            String type = request.getParameter("type");
+
+            JSONObject user = JSONObject.fromObject(request.getSession().getAttribute("user"));
+            String userid = user.getString("id");
+            // 更新集装箱结果表中的分配的单证人员信息
+            shareContainerResultService.saveData(param, type, userid);
+        }catch (Exception e) {
+            e.printStackTrace();
+            model.setCode("1");
+            model.setDes("保存失败:"+e.getMessage());
+            model.setResult("");
+            return model;
+        }
+
+        //返回信息
+        model.setCode("0");
+        model.setDes("保存成功");
+        model.setResult("");
+        return model;
+
+    }
+
+    /**
+     * showMailInboxPage(业务、集装箱日志页面)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 11:04
+     */
+    @RequestMapping("/showContainerLogsPage")
+    public String showMailInboxPage(HttpSession session) {
+        User u = (User) session.getAttribute("user");
+        // 传递用户id
+        request.setAttribute("userid", u.getId());
+
+        return "share/showContainerLogsPage";
+    }
+
+    /**
+     * queryShareContainerLogsList(查询业务、集装箱操作日志信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 11:06
+     */
+    @RequestMapping("/queryShareContainerBusinessList")
+    @ResponseBody
+    public Map<String, Object> queryShareContainerBusinessList() {
+        String pages = request.getParameter("page");
+        String rows = request.getParameter("rows");
+        if(StringUtils.isEmpty(pages)||StringUtils.isEmpty(rows)) {
+            throw new BusinessException("9901", "传入的page或rows参数为空");
+        }
+        pageIndex = Integer.parseInt(pages);
+        pageSize = Integer.parseInt(rows);
+
+        String dateStart = request.getParameter("dateStart");//开始日期
+        String dateEnd = request.getParameter("dateEnd");//结束日期
+        String hddzUser = request.getParameter("hddzUser");//单证人员
+        String onlineUser = request.getParameter("onlineUser");//在线审单
+        String isReceive = request.getParameter("isReceive");//是否回复邮件
+        // 是否完成录单
+        String isLdFinish = request.getParameter("isLdFinish");
+        // 是否完成兜底
+        String isDdFinish = request.getParameter("isDdFinish");
+        // 是否同步
+        String isSync = request.getParameter("isSync");
+        // 兜底错误
+        String ddMistake = request.getParameter("ddMistake");
+        //业务编号
+        String snstateName = request.getParameter("snstateName");
+        // 公司名称
+        String companyName = request.getParameter("companyName");
+        //处理状态
+        String maillistDealstate = request.getParameter("maillistDealstate");
+        //优先级
+        String mailEmergent = request.getParameter("mailEmergent");
+        //客户类型
+        String isvip = request.getParameter("isvip");
+        //集装箱号
+        String containerNo = request.getParameter("containerNo");
+        //收件人
+        String mailId = request.getParameter("mailId");
+
+        //获取用户id
+        String userid = request.getParameter("userid");
+
+        //如果日期为空 初始化日期为1个星期
+        if(StringUtils.isEmpty(dateStart)&&StringUtils.isEmpty(dateEnd)) {
+            Calendar cale = Calendar.getInstance();
+            cale.add(Calendar.DAY_OF_MONTH, -6);
+            dateStart = dateFormate.format(cale.getTime());
+            dateEnd = dateFormate.format(new Date());
+        }
+
+        ShareContainerResultLogParam query = new ShareContainerResultLogParam();
+
+        if(StringUtils.isNotEmpty(dateStart)) {
+            query.setDateStart(dateStart);
+        }
+        if(StringUtils.isNotEmpty(dateEnd)) {
+            query.setDateEnd(dateEnd);
+        }
+        if(StringUtils.isNotEmpty(hddzUser)) {
+            query.setHddzUser(hddzUser);
+        }
+        if(StringUtils.isNotEmpty(onlineUser)) {
+            query.setOnlineUser(onlineUser);
+        }
+        if(StringUtils.isNotEmpty(isReceive)) {
+            query.setIsReceive(isReceive);
+        }
+        if(StringUtils.isNotEmpty(isLdFinish)) {
+            query.setIsLdFinish(isLdFinish);
+        }
+        if(StringUtils.isNotEmpty(isDdFinish)) {
+            query.setIsDdFinish(isDdFinish);
+        }
+        if(StringUtils.isNotEmpty(isSync)) {
+            query.setIsSync(isSync);
+        }
+        if(StringUtils.isNotEmpty(ddMistake)) {
+            query.setDdMistake(ddMistake);
+        }
+        if(StringUtils.isNotEmpty(snstateName)) {
+            query.setSnstateName(snstateName);
+        }
+        if(StringUtils.isNotEmpty(companyName)) {
+            query.setCompanyName(companyName);
+        }
+        if(StringUtils.isNotEmpty(maillistDealstate)) {
+            query.setMaillistDealstate(maillistDealstate);
+        }
+        if(StringUtils.isNotEmpty(mailEmergent)) {
+            query.setMailEmergent(mailEmergent);
+        }
+        if(StringUtils.isNotEmpty(isvip)) {
+            query.setIsvip(isvip);
+        }
+        if(StringUtils.isNotEmpty(containerNo)) {
+            query.setContainerNo(containerNo);
+        }
+        if(StringUtils.isNotEmpty(mailId)) {
+            query.setMailId(mailId);
+        }
+        total = shareContainerResultService.queryShareContainerBusinessListCount(query, userid);//总数量
+        page = new Page(pageIndex, pageSize, total);
+        page.setOrders(dataGridSort(request.getParameter("sort"), request.getParameter("order")));
+        Map<String, Object> map = new HashMap<String, Object>();
+        List<ShareContainerResultLogs> list = shareContainerResultService.queryShareContainerBusinessList(query, page, userid);
+        map.put("rows", list);
+        map.put("total", total);
+        return map;
+    }
+
+    /**
+     * queryShareContainerLogsList(查询业务、集装箱操作日志信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/26 11:06
+     */
+    @RequestMapping("/queryShareContainerLogsList")
+    @ResponseBody
+    public Map<String, Object> queryShareContainerLogsList() {
+        //获取业务主键id
+        String businessId = request.getParameter("maillistId");
+
+        String hddzUser = request.getParameter("hddzUser");//单证人员
+        String onlineUser = request.getParameter("onlineUser");//在线审单
+        // 是否完成录单
+        String isLdFinish = request.getParameter("isLdFinish");
+        // 是否完成兜底
+        String isDdFinish = request.getParameter("isDdFinish");
+        // 是否同步
+        String isSync = request.getParameter("isSync");
+        // 兜底错误
+        String ddMistake = request.getParameter("ddMistake");
+        //集装箱号
+        String containerNo = request.getParameter("containerNo");
+
+        ShareContainerResultLogParam query = new ShareContainerResultLogParam();
+
+        if (StringUtils.isNotEmpty(businessId)) {
+            query.setBusinessId(businessId);
+        }
+        if(StringUtils.isNotEmpty(hddzUser)) {
+            query.setHddzUser(hddzUser);
+        }
+        if(StringUtils.isNotEmpty(onlineUser)) {
+            query.setOnlineUser(onlineUser);
+        }
+        if(StringUtils.isNotEmpty(isLdFinish)) {
+            query.setIsLdFinish(isLdFinish);
+        }
+        if(StringUtils.isNotEmpty(isDdFinish)) {
+            query.setIsDdFinish(isDdFinish);
+        }
+        if(StringUtils.isNotEmpty(isSync)) {
+            query.setIsSync(isSync);
+        }
+        if(StringUtils.isNotEmpty(ddMistake)) {
+            query.setDdMistake(ddMistake);
+        }
+        if(StringUtils.isNotEmpty(containerNo)) {
+            query.setContainerNo(containerNo);
+        }
+
+        //查询拆分的集装箱数据
+        List<ShareContainerResultInfo> containerList = shareContainerResultService.queryShareContainerLogsList(query);
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("rows", containerList);
+        return map;
+    }
+
+    /**
+     * showEditContainerInfoPage(打开集装箱信息编辑页面)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 15:14
+     */
+    @RequestMapping("/showEditContainerInfoPage")
+    public String showEditContainerInfoPage() {
+        //获取传递的参数
+        String containerId = request.getParameter("containerId");
+
+        String behaviorCode = request.getParameter("behaviorCode");
+
+        //根据参数查询集装箱信息
+        ShareContainerResultInfo resultInfo = shareContainerResultService.queryShareContainerResultInfo(containerId);
+
+        request.setAttribute("resultInfo", resultInfo);
+        request.setAttribute("behaviorCode", behaviorCode);
+
+        return "share/showEditContainerInfoPage";
+    }
+
+    /**
+     * saveEditData(保存修改的集装箱审单信息)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/27 18:11
+     */
+    @RequestMapping(value="/saveEditData")
+    @ResponseBody
+    public JsonModel saveEditData(@RequestBody ShareContainerWithOnlineParam param) {
+        JsonModel model = new JsonModel();
+
+        try {
+            // 保存修改的在线审单信息
+            shareContainerResultService.saveEditData(param);
+        }catch (Exception e) {
+            e.printStackTrace();
+            model.setCode("1");
+            model.setDes("保存失败:"+e.getMessage());
+            model.setResult("");
+            return model;
+        }
+
+        //返回信息
+        model.setCode("0");
+        model.setDes("保存成功");
+        model.setResult("");
+        return model;
+
+    }
+
+    /**
+     * queryShareContainerResultInfo(给在线审单提供集装箱查询接口)
+     * @return
+     * @Exception 异常对象
+     * @author weixu
+     * @date 2024/2/28 10:11
+     */
+    @RequestMapping("/queryShareContainerResultInfoList")
+    @ResponseBody
+    public List<ShareContainerWithOnlineReviewVo> queryShareContainerResultInfoList() {
+        try {
+            String containerNo = request.getParameter("containerNo");
+
+            // 在线审单用户
+            String userId = request.getParameter("userId");
+            // 查询 在线审单需要的数据
+           return  shareContainerResultService.queryShareContainerResultInfoList(containerNo, userId);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
Index: webmail-web/src/main/resources/spring-mvc.xml
===================================================================
--- webmail-web/src/main/resources/spring-mvc.xml	(revision 37007)
+++ webmail-web/src/main/resources/spring-mvc.xml	(revision 37008)
@@ -60,8 +60,9 @@
             <mvc:mapping path="/inbox/*"/>
             <mvc:mapping path="/outBox/*"/>
             <mvc:mapping path="/mailException/*"/>
+            <mvc:mapping path="/share/*"/>
+
             
-            
             <bean class="com.novacloud.action.common.SecurityInterceptor">
 				<property name="excludedUrls">
 					<list>
Index: webmail-web/src/main/webapp/WEB-INF/jsp/basePage.jsp
===================================================================
--- webmail-web/src/main/webapp/WEB-INF/jsp/basePage.jsp	(revision 37007)
+++ webmail-web/src/main/webapp/WEB-INF/jsp/basePage.jsp	(revision 37008)
@@ -28,6 +28,7 @@
 <script type="text/javascript" src="${easyui}/js/locale/easyui-lang-zh_CN.js"></script>
 <script type="text/javascript" src="${easyui}/js/dataGridUtil.js"></script>
 <script type="text/javascript" src="${easyui}/js/dateUtil.js"></script>
+<script type="text/javascript" src="${jquery}/datagrid-detailview.js"></script>
 
 
 <!-- 定义js变量 -->
Index: webmail-web/src/main/webapp/WEB-INF/jsp/mailInbox/showMailInfoPage.jsp
===================================================================
--- webmail-web/src/main/webapp/WEB-INF/jsp/mailInbox/showMailInfoPage.jsp	(revision 37007)
+++ webmail-web/src/main/webapp/WEB-INF/jsp/mailInbox/showMailInfoPage.jsp	(revision 37008)
@@ -55,6 +55,10 @@
             <span>备注：</span><input type="text" id="maillistRemarks"  value="${mailList.maillistRemarks}"  style="width: 610px;">
       </div>
       <div>
+          <a class="easyui-linkbutton" style="width: 138px;"  onclick="openDistributionPage('0')">在线审单单证人员分配</a>
+          <a class="easyui-linkbutton" style="width: 126px;"  onclick="openDistributionPage('1')">在线审单录单员分配</a>
+      </div>
+      <div>
             <span>发件人：</span><input type="text" value="${mailList.maillistSendermail }" onmouseover="this.title=this.value"  class="w200">
             <span>时间：</span><input type="text" id="maillistSendertime" name="maillistSendertime" value="<fmt:formatDate value="${mailList.maillistSendertime }" pattern="yyyy-MM-dd HH:mm:ss" />">
             <span>收件人：</span><input type="text" id="toReceiveStr" class="easyui-textbox" data-options="multiline:true"  value="<c:out value='${mailList.toccReceive}'/>" onmouseover="this.title=this.value" style="width: 300px;">
@@ -71,6 +75,17 @@
       <div>
             <span>主题：</span><input type="text" value="${mailList.maillistSubject }"  class="w900">
       </div>
+      <a class="easyui-linkbutton" style="margin:1px;" iconCls="icon-add" onclick="addContainer()">添加集装箱</a>
+      <div id="inputContainer" style="display: flex; flex-wrap: wrap; align-content: flex-start;">
+          <c:forEach  items="${containerList}" var="container">
+              <form id="myForm" style="margin: 0px 0 0 80px">
+                  <input id="containerNo" type="text" name="containerNo" value="${container.containerNo}" placeholder="集装箱号">
+                  <input id="status" type="text" name="status" placeholder="状态" style="display: none">
+                  <input id="containerId" type="text" name="containerId" value="${container.containerId}" placeholder="集装箱id" style="display: none">
+                  <button type="button" class="delBtn">X</button>
+              </form>
+          </c:forEach>
+      </div>
       <div>
             <span>附件：</span>
             <em class="download">
Index: webmail-web/src/main/webapp/WEB-INF/jsp/share/showContainerLogsPage.jsp
===================================================================
--- webmail-web/src/main/webapp/WEB-INF/jsp/share/showContainerLogsPage.jsp	(revision 0)
+++ webmail-web/src/main/webapp/WEB-INF/jsp/share/showContainerLogsPage.jsp	(revision 37008)
@@ -0,0 +1,86 @@
+<%@ include file="/WEB-INF/jsp/basePage.jsp" %>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<html>
+<head>
+
+    <script type="text/javascript" src="${basejs}/share/showContainerLogs.js"></script>
+</head>
+<body>
+<div id="pageloading"
+        style="position:absolute; top:50%; left:50%; margin:-120px 0px 0px -120px; text-align:center;  border:2px solid #8DB2E3; width:200px; height:40px;  font-size:14px;padding:10px; font-weight:bold; background:#fff; color:#15428B;"
+>
+    <img src="${easyui}/images/loading.gif" align="absmiddle" />
+    正在加载中,请稍候...
+</div>
+<div id="cc"  class="easyui-layout index" style="overflow-y: hidden" fit="true" scroll="no">
+    <div
+            region="north"
+            split="true"
+            border="false"
+            style="overflow: hidden; height: 120px;background: #D2E0F2;">
+        <div id="tb" style="padding:3px">
+            <table border="0" >
+                <tr>
+                    <td> <span>收件时间:</span></td>
+                    <td><input id="dateStart" type="text" class="easyui-datebox" editable="false"></td>
+                    <td><span>至:</span></td>
+                    <td><input id="dateEnd" type="text" class="easyui-datebox" editable="false"></td>
+                    <td><span>单证人员:</span></td>
+                    <td><input id="hddzUser" ></td>
+                    <td><span>在线审单人员:</span></td>
+                    <td><input id="onlineUser" type="text">
+                </tr>
+                <tr>
+                    <td><span>邮件处理状态:</span></td>
+                    <td><input id="maillistDealstate" ></td>
+                    <td><span>是否完成录单:</span></td>
+                    <td><input id="isLdFinish"></td>
+                    <td><span>是否完成兜底:</span></td>
+                    <td><input id="isDdFinish" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td><span>是否同步:</span></td>
+                    <td><input id="isSync" style="line-height:20px;border:1px solid #ccc" ></td>
+                </tr>
+                <tr>
+                    <td><span>兜底错误:</span></td>
+                    <td><input id="ddMistake" style="line-height:20px;border:1px solid #ccc"></td>
+                    <td><span>收件人:</span></td>
+                    <td><input id="mailId" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td><span>优先级:</span></td>
+                    <td><input id="mailEmergent" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td><span>客户类型:</span></td>
+                    <td><input id="isvip" style="line-height:20px;border:1px solid #ccc" ></td>
+                </tr>
+                <tr>
+                    <td><span>公司名称:</span></td>
+                    <td><input id="companyName" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td><span>业务编号:</span></td>
+                    <td><input id="snstateName" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td><span>集装箱号:</span></td>
+                    <td><input id="containerNo" style="line-height:20px;border:1px solid #ccc" ></td>
+                    <td>
+                        <a class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="logsSearch()">查询</a>
+                        <a class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="doClear()">清空</a></td>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </div>
+    <div region="south" split="true" style="height: 30px; background: #D2E0F2; ">
+        <div class="footer"></div>
+    </div>
+
+    <div
+            region="center"
+            split="true"
+            title="日志列表"
+            id="center"
+    >
+        <table id="containerLogsTable"></table>
+    </div>
+    <input id="loginUserId" name="loginUserId"  value="${userid}" type="hidden" >
+</div>
+<div id="editDiv"></div>
+</div>
+
+</body>
+</html>
Index: webmail-web/src/main/webapp/WEB-INF/jsp/share/showEditContainerInfoPage.jsp
===================================================================
--- webmail-web/src/main/webapp/WEB-INF/jsp/share/showEditContainerInfoPage.jsp	(revision 0)
+++ webmail-web/src/main/webapp/WEB-INF/jsp/share/showEditContainerInfoPage.jsp	(revision 37008)
@@ -0,0 +1,187 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2024/2/27
+  Time: 16:31
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<style>
+  td{
+    white-space: nowrap;
+  }
+</style>
+<form id="resultInfoForm">
+  <div style="margin-top: 10px;margin-bottom: 10px;">
+    <table>
+      <tr style="display: block">
+        <td class="label">
+          <span>集装箱号:</span>
+        </td>
+        <td>
+          <input type="text" id="containerNo" name="containerNo" value="${resultInfo.containerNo}" disabled/>
+        </td>
+      </tr>
+      <!--开始录单 -->
+      <tr style="display: ${behaviorCode == '08' ? 'block' : 'none'}">
+        <td class="label">
+          <span>开始录单时间:</span>
+        </td>
+        <td>
+          <input type="text" id="startTime" class="easyui-datetimebox" name="startTime" value="<fmt:formatDate value='${resultInfo.startTime}' pattern='yyyy-MM-dd HH:mm:ss' />" />
+        </td>
+      </tr>
+      <!--完成录单 -->
+      <tr style="display: ${behaviorCode == '10' ? 'block' : 'none'}">
+        <td class="label">
+          <span>完成录单时间:</span>
+        </td>
+        <td>
+          <input type="text" id="finishTime" class="easyui-datetimebox" name="finishTime" value="<fmt:formatDate value='${resultInfo.finishTime}' pattern='yyyy-MM-dd HH:mm:ss' />" />
+        </td>
+        <td class="label">
+          <span> 在线审单最新更新文件:</span>
+        </td>
+        <td>
+          <input type="text" id="fileUpdateRemark" name="fileUpdateRemark" value="${resultInfo.fileUpdateRemark}" />
+        </td>
+      </tr>
+      <!--审单完成 -->
+      <tr style="display: ${behaviorCode == '09' ? 'block' : 'none'}">
+        <td class="label">
+          <span>审单完成时间:</span>
+        </td>
+        <td>
+          <input type="text" id="reviewFinishTime" class="easyui-datetimebox" name="reviewFinishTime" value="<fmt:formatDate value='${resultInfo.reviewFinishTime}' pattern='yyyy-MM-dd HH:mm:ss' />" />
+        </td>
+      </tr>
+      <!--兜底完成 -->
+      <tr style="display: ${behaviorCode == '11' ? 'block' : 'none'}">
+        <td class="label">
+          <span> 兜底完成时间:</span>
+        </td>
+        <td>
+          <input type="text" id="lastFinishTime" class="easyui-datetimebox" name="lastFinishTime" value="<fmt:formatDate value='${resultInfo.lastFinishTime}' pattern='yyyy-MM-dd HH:mm:ss' />" />
+        </td>
+        <td class="label">
+          <span>兜底人员:</span>
+        </td>
+        <td>
+          <input type="text" id="lastFinishUser" name="lastFinishUser" value="${resultInfo.lastFinishUser}" />
+      </tr>
+      <tr style="display: ${behaviorCode == '11' ? 'block' : 'none'}">
+        <td class="label">
+          <span> 兜底错误说明:</span>
+        </td>
+        <td>
+          <input type="text" id="lastFinishRemark" name="lastFinishRemark" value="${resultInfo.lastFinishRemark}" />
+        </td>
+      </tr>
+      <!--同步 -->
+      <tr style="display: ${behaviorCode == '12' ? 'block' : 'none'}">
+        <td class="label">
+          <span>同步水果通时间:</span>
+        </td>
+        <td>
+          <input type="text" id="lastSyncTime" class="easyui-datetimebox" name="lastSyncTime" value="<fmt:formatDate value='${resultInfo.lastSyncTime}' pattern='yyyy-MM-dd HH:mm:ss' />" />
+        </td>
+        <td class="label">
+          <span>单证人员发现错误:</span>
+        </td>
+        <td>
+          <input type="text" id="hddzRemark" name="hddzRemark" value="${resultInfo.hddzRemark}" />
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <a class="easyui-linkbutton" id="doSave">保存</a>
+          <a class="easyui-linkbutton" id="doClose">关闭</a>
+        </td>
+      </tr>
+    </table>
+  </div>
+    <input type="text" id="containerId" name="containerId" value="${resultInfo.containerId}" style="display: none"/>
+    <input type="text" id="onlineReviewId" name="onlineReviewId" value="${resultInfo.onlineReviewId}" style="display: none"/>
+    <input type="text" id="behaviorCode" name="behaviorCode" value="${behaviorCode}" style="display: none"/>
+</form>
+<script type="text/javascript">
+  jQuery(function($) {
+    $('#resultInfoForm').on('click', '#doSave', function () {
+      debugger
+      var formData =  $('#resultInfoForm').serializeObject();
+      // 设置传递参数
+      var startTime = "";
+      var remark = "";
+      if (${behaviorCode == "08"}) {
+        startTime = formData.startTime;
+      } else if (${behaviorCode == '09'}) {
+        startTime = formData.reviewFinishTime;
+      } else if (${behaviorCode == '10'}) {
+        startTime = formData.finishTime;
+        remark = formData.fileUpdateRemark;
+      } else if (${behaviorCode == '11'}) {
+        startTime = formData.lastFinishTime;
+        remark = formData.lastFinishRemark;
+      } else if (${behaviorCode == '12'}) {
+        startTime = formData.lastSyncTime;
+        remark = formData.hddzRemark;
+      }
+      // 将数据数组转换为JSON字符串
+      var jsonData =  {
+        startTime : startTime,
+        containerId: $('#containerId').val(),
+        containerNo: $('#containerNo').val(),
+        onlineReviewId: $('#onlineReviewId').val(),
+        behaviorCode: $('#behaviorCode').val(),
+        behaviorData: JSON.stringify(formData),
+        remark: remark,
+        crtUser: $('#lastFinishUser').val()
+
+      };
+      // 发送POST请求
+      $.ajax({
+        type : 'POST',
+        dataType : 'json',
+        contentType : 'application/json;charset=UTF-8',
+        async : false,
+        url: base + '/containerResult/saveEditData.do',
+        data: JSON.stringify(jsonData),
+        success: function (response) {
+          var flag = confirm(response.des);
+          if (flag) {
+            $('.panel-tool-close').click();
+            $('#resultInfoForm').form('clear');
+            jsonData = {};
+          }
+        },
+        error : function() {
+          $.messager.alert('提示', '您已长时间未操作，请重新登录', 'error');
+        }
+      });
+    });
+    $('#resultInfoForm').on('click', '#doClose', function () {
+      $('.panel-tool-close').click();
+      $('#resultInfoForm').form('clear');
+    });
+  });
+  /**
+   * 自动将form表单封装成json对象
+   */
+  $.fn.serializeObject = function(){
+    var o = {};
+    var a = this.serializeArray();
+    $.each(a, function(){
+      if (o[this.name]) {
+        if (!o[this.name].push) {
+          o[this.name] = [o[this.name]];
+        }
+        o[this.name].push(this.value || '');
+      }
+      else {
+        o[this.name] = this.value || '';
+      }
+    });
+    return o;
+  };
+</script>
Index: webmail-web/src/main/webapp/WEB-INF/jsp/share/showPersonnelAllocationPage.jsp
===================================================================
--- webmail-web/src/main/webapp/WEB-INF/jsp/share/showPersonnelAllocationPage.jsp	(revision 0)
+++ webmail-web/src/main/webapp/WEB-INF/jsp/share/showPersonnelAllocationPage.jsp	(revision 37008)
@@ -0,0 +1,433 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2024/2/24
+  Time: 14:47
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<div style="display: flex">
+  <input id="maillistId" value="${maillistId}" style="display: none">
+  <input id="type" value="${type}" style="display: none">
+  <div id="containerDiv" style="width:60%; height:500px">
+    <span>集装箱列表</span>
+    <div style="margin-bottom: 10px; margin-top: 10px; display: block">
+      <a class="easyui-linkbutton" id="saveData" onclick="saveData()">保存</a>
+    </div>
+    <div>
+      <table id="containerTable"></table>
+    </div>
+  </div>
+  <div id="userDiv" style="width:40%;">
+    <span>处理人员列表</span>
+    <div id="tb" style="padding:3px">
+      <span>姓名:</span>
+      <input id="userName" style="line-height:21px;border:1px solid #ccc">
+      <span>部门:</span>
+      <input class="easyui-combobox" id="deptName" name="deptName"  >
+      <br/>
+      <a class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="doSearch()">查询</a>
+      <a class="easyui-linkbutton" data-options="iconCls:'icon-clear'" onclick="doClear()">清空</a>
+      </div>
+      <div>
+        <table id="userTable"></table>
+      </div>
+    </div>
+</div>
+<script type="text/javascript">
+  var userid = "";
+  var maillistid = $("#maillistId").val();
+  var editRow = null;
+  jQuery(function ($) {
+    $('#userTable').datagrid({
+      method: 'post',
+      singleSelect: true, //单选
+      fit: true,
+      fitColumns: true, //自动调整各列，用了这个属性，下面各列的宽度值就只是一个比例。
+      striped: true, //奇偶行颜色不同
+      collapsible: false,//可折叠
+      url: base + "/dealPerson/queryDealPersonStatisticsPOPList.do", //数据来源
+      idField: 'id', //主键字段
+      rownumbers: true, //显示行号
+      queryParams: {},
+      columns: [[
+        // {field: 'ck', checkbox: true, width: 2}, //显示复选框
+        {
+          field: 'username', title: '用户名', width: 50, sortable: true,
+          formatter: function (value, row, index) {
+            return row.username;
+          } //需要formatter一下才能显示正确的数据
+        },
+        {
+          field: 'realname', title: '姓名', width: 50, sortable: true,
+          formatter: function (value, row, index) {
+            return row.realname;  //该列的值是deptId，显示的是deptName
+          }
+        },
+        {
+          field: 'deptname', title: '部门', width: 50, sortable: false,
+          formatter: function (value, row, index) {
+            return row.deptname;
+          }
+        },
+        {
+          field: 'account', title: '水果通账号', width: 30, sortable: false,
+          formatter: function (value, row, index) {
+            return row.account;
+          }
+        }
+      ]],
+      toolbar: [{
+        text: '添加',
+        iconCls: 'icon-add',
+        handler: function () {
+          setDealer();
+        }
+      }, '-' ,{
+        text: '批量添加',
+        iconCls: 'icon-add',
+        handler: function () {
+          setBatchDealer();
+        }
+      }],
+    });
+
+    $('#containerTable').datagrid({
+      method: 'post',
+      singleSelect: true, //单选
+      fit: true,
+      fitColumns: true, //自动调整各列，用了这个属性，下面各列的宽度值就只是一个比例。
+      striped: false, //奇偶行颜色不同
+      collapsible: false,//可折叠
+      url: base + "/containerResult/queryShareContainerList.do?maillistId=" + maillistid, //数据来源
+      idField: 'containerId', //主键字段
+      rownumbers: true, //显示行号
+      queryParams: {},
+      columns: [[
+        {field: 'containerId', title: '集装箱id', width: 2, hidden: true},
+        {
+          field: 'containerNo', title: '集装箱号', width: 50, sortable: true},
+        {
+          field: 'ywbh', title: '业务编号', width: 30, sortable: true},
+        {
+          field: 'divideHddz', title: '单证人员', width: 30, sortable: false},
+        {
+          field: 'divideHddzNo', title: '单证人员账号', width: 30, hidden: true
+        },
+        {
+          field: 'divideHddzUserid', title: '单证人员id', width: 30, hidden: true
+        },
+        {
+          field: 'onlineReview', title: '在线审单人员', width: 30, sortable: false
+        },
+        {
+          field: 'onlineReviewNo', title: '在线审单人员账号', width: 30, hidden: true
+        },
+        {
+          field: 'onlineReviewUserid', title: '在线审单人员id', width: 30, hidden: true
+        },
+        {
+          field: 'predictFinishTime', title: '预计完成时间', width: 60, sortable: false,
+          editor: 'datetimebox'
+        },
+        {
+          field: 'pageNumber', title: '页数', width: 20, sortable: false,
+          editor:{
+            type:'text'
+          }
+        },
+        {
+          field: 'remark', title: '备注', width: 50, sortable: false,
+          editor:{
+            type:'text'
+          }
+        }
+      ]],
+      onClickCell: function (rowIndex, field, value) {
+        beginEditing(rowIndex, field, value)
+      }
+    });
+
+    //初始化部门下拉
+    $('#deptName').combobox({
+      url: base + '/dealPerson/getdeptList.do',
+      valueField: 'deptId',
+      textField: 'deptName',
+      editable: false
+    });
+
+
+  });
+
+  //开始编辑行数据
+  var editIndex = undefined;
+  var beginEditing = function (rowIndex, field, value) {
+    var fieldArr = ['pageNumber','predictFinishTime','remark'];
+    if (!fieldArr.includes(field)) {
+      return;
+    }
+
+    if (rowIndex != editIndex) {
+      if (endEditing(field)) {
+        $('#containerTable').datagrid('beginEdit', rowIndex);
+        editIndex = rowIndex;
+
+        var ed = $('#containerTable').datagrid('getEditor', { index: rowIndex, field: field });
+        $(ed.target).focus().bind('blur', function () {
+          endEditing(field);
+        });
+      } else {
+        $('#containerTable').datagrid('selectRow', editIndex);
+      }
+    }
+  }
+  var endEditing = function (field) {
+    if (editIndex == undefined) { return true }
+    if ($('#containerTable').datagrid('validateRow', editIndex)) {
+      var ed = $('#containerTable').datagrid('getEditor', { index: editIndex, field: field });
+      var value = null;
+      if (field == "pageNumber") {
+        value = $(ed.target).text('getValue');
+      } else if (field == "predictFinishTime") {
+        value =  $(ed.target).datebox('getValue');
+      } else {
+        value = $(ed.target).text('getValue');
+      }
+      $('#containerTable').datagrid('getRows')[editIndex][field] = value;
+      $('#containerTable').datagrid('endEdit', editIndex);
+      $('#containerTable').datagrid('selectRow', editIndex);
+      editIndex = undefined;
+      value = null;
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  //设置处理人员
+  function setDealer() {
+    //保存类型
+    var type = $("#type").val();
+
+    var rows = $('#userTable').datagrid('getSelected');
+    if (rows == null || rows === undefined) {
+      $.messager.alert('提示', "请选择一位你要设置的人员", 'info');
+      return;
+    }
+
+    // 集装箱是否选中
+    var containerSelect = $('#containerTable').datagrid('getSelected');
+    if (containerSelect == null || containerSelect ==undefined) {
+      $.messager.alert('提示', "请选择集装箱数据", 'info');
+      return;
+    }
+    if (rows['account'] == '' || rows['account'] == null) {
+      $.messager.alert('提示', "请先维护用户的水果通账号", 'info');
+      return;
+    }
+    var index = $('#containerTable').datagrid('getRowIndex', containerSelect);
+    if ('0' == type) {
+      containerSelect['divideHddzNo'] = rows['account'];
+      containerSelect['divideHddz'] = rows['realname'];
+      containerSelect['divideHddzUserid'] = rows['id'];
+    } else {
+      containerSelect['onlineReviewNo'] = rows['account'];
+      containerSelect['onlineReview'] = rows['realname'];
+      containerSelect['onlineReviewUserid'] = rows['id'];
+    }
+
+    $('#containerTable').datagrid('refreshRow', index);
+  }
+
+  //批量设置人员
+  function setBatchDealer() {
+    //保存类型
+    var type = $("#type").val();
+
+    var rows = $('#userTable').datagrid('getSelected');
+    if (rows == null || rows === undefined) {
+      $.messager.alert('提示', "请选择一位你要设置的人员", 'info');
+      return;
+    }
+    if (rows['account'] == '' || rows['account'] == null) {
+      $.messager.alert('提示', "请先维护用户的水果通账号", 'info');
+      return;
+    }
+    //获取所有列表数据
+    var data = $('#containerTable').datagrid('getRows');
+    console.table(data)
+    if ('0' == type) {
+      $.each(data,function(i,value){
+        debugger
+        value.divideHddzNo = rows['account'];
+        value.divideHddz = rows['realname'];
+        value.divideHddzUserid = rows['id'];
+        $('#containerTable').datagrid('refreshRow', i);
+      });
+    } else {
+      $.each(data,function(i,value){
+        value.onlineReviewNo = rows['account'];
+        value.onlineReview = rows['realname'];
+        value.onlineReviewUserid = rows['id'];
+        $('#containerTable').datagrid('refreshRow', i);
+      });
+    }
+  }
+
+  // 查询方法
+  function doSearch() {
+    var sdate = $("#startDate").datebox("getValue");
+    var edate = $("#endDate").datebox("getValue");
+    if (sdate != '' && edate != '') {
+      if (sdate > edate) {
+        $.messager.alert('提示', '开始日期不能大于结束日期！', 'error');
+        return;
+      }
+    }
+    // 获取用户名
+    var uname = $("#userName").val();
+    // 获取部门
+    var dname = $("#deptName").combobox('getValue');
+
+    $('#userTable').datagrid('load', {
+      userName: uname,
+      deptName: dname,
+      startDate: sdate,
+      endDate: edate
+    });
+
+  }
+
+  // 清空
+  function doClear() {
+    $("#userName").val("");
+    $("#deptName").combobox('setValue', '');
+    $('#startDate').datebox("setValue", "${startDate}");
+    $('#endDate').datebox("setValue", "${endDate}");
+  }
+
+  //保存数据
+  function saveData() {
+    //清空选择的行号
+    editIndex = undefined;
+    //当前选中的数据
+    var rows = $('#containerTable').datagrid('getSelected');
+    var index = $('#containerTable').datagrid('getRowIndex', rows);
+    $('#containerTable').datagrid('endEdit', index);
+    //保存类型
+    var type = $("#type").val();
+    //获取所有列表数据
+    var data = $('#containerTable').datagrid('getRows');
+
+    //保存分配人员信息
+    $.ajax({
+      url: base+'/containerResult/saveData.do?type=' + type, // POST请求的URL地址
+      type: "POST",    // 指定请求类型为POST
+      contentType: 'application/json',
+      dataType: "json",// 设置返回数据的格式为JSON
+      data: JSON.stringify(data),
+      success: function(msg) { // 成功时的处理函数
+        if(msg){
+          if(msg.code == '0'){
+            // 更新邮件分配人员
+            var obj = new Object();
+            obj["maillistId"] = maillistid;
+            var idsSet = new Set();
+            $.each(data,function(i,n){
+              if (data[i].divideHddzUserid != null && data[i].divideHddzUserid != '') {
+                idsSet.add(data[i].divideHddzUserid);
+              }
+            });
+            $.each(data,function(i,n){
+              if (data[i].onlineReviewUserid != null && data[i].onlineReviewUserid != '') {
+                idsSet.add(data[i].onlineReviewUserid);
+              }
+            });
+            obj["maillistDealer"] = Array.from(idsSet).join(',');
+            var result = DataGridUtil.submitDateAjax("/inbox/updateMailInboxDealer.do",obj);
+            if(result.code=='0') {
+              //记录手动分配
+              result = DataGridUtil.submitDateAjax("/inbox/updateManualAllocation.do",obj);
+              if (result.code=='0') {
+                $.messager.alert('提示',msg.des,'info');
+                realoadTable();
+              } else {
+                $.messager.alert('提示',msg.des,'error');
+              }
+            } else {
+              $.messager.alert('提示',msg.des,'error');
+            }
+          }else{
+            $.messager.alert('提示',msg.des,'error');
+          }
+        }
+      },
+      error: function() {         // 失败时的处理函数
+        $.messager.alert('提示','您已长时间未操作，请重新登录','error');
+      }
+    });
+  }
+  //刷新页面
+  function realoadTable() {
+    $('#containerTable').datagrid('reload');
+    $('#containerTable').datagrid('clearSelections');
+  }
+
+  $.extend($.fn.datagrid.defaults.editors, {
+    datetimebox: {// datetimebox就是你要自定义editor的名称
+      init: function (container, options) {
+        var input = $('<input class="easyuidatetimebox" editable="false">').appendTo(container);
+        return input.datetimebox({
+          formatter: function (date) {
+            return new Date(date).format("yyyy-MM-dd hh:mm:ss");
+          }
+        });
+      },
+      getValue: function (target) {
+        return $(target).parent().find('input.combo-value').val();
+      },
+      setValue: function (target, value) {
+        $(target).datetimebox("setValue", value);
+      },
+      resize: function (target, width) {
+        var input = $(target);
+        if ($.boxModel == true) {
+          input.width(width - (input.outerWidth() - input.width()));
+        } else {
+          input.width(width);
+        }
+      }
+    }
+  });
+  // 时间格式化
+  Date.prototype.format = function (format) {
+    /*
+    * eg:format="yyyy-MM-dd hh:mm:ss";
+    */
+    if (!format) {
+      format = "yyyy-MM-dd hh:mm:ss";
+    }
+
+    var o = {
+      "M+": this.getMonth() + 1, // month
+      "d+": this.getDate(), // day
+      "h+": this.getHours(), // hour
+      "m+": this.getMinutes(), // minute
+      "s+": this.getSeconds(), // second
+      "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
+      "S": this.getMilliseconds()
+      // millisecond
+    };
+
+    if (/(y+)/.test(format)) {
+      format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
+    }
+
+    for (var k in o) {
+      if (new RegExp("(" + k + ")").test(format)) {
+        format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
+      }
+    }
+    return format;
+  };
+</script>
Index: webmail-web/src/main/webapp/js/jquery/datagrid-detailview.js
===================================================================
--- webmail-web/src/main/webapp/js/jquery/datagrid-detailview.js	(revision 0)
+++ webmail-web/src/main/webapp/js/jquery/datagrid-detailview.js	(revision 37008)
@@ -0,0 +1,388 @@
+var detailview = $.extend({}, $.fn.datagrid.defaults.view, {
+	render: function(target, container, frozen){
+		var state = $.data(target, 'datagrid');
+		//增加以下这行代码，解决如点击查询按钮重新查询数据后，展开按钮失效的问题。by 夏德成   2017.10.12 15:27
+		state.bindDetailEvents = false;
+		var opts = state.options;
+		if (frozen){
+			if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))){
+				return;
+			}
+		}
+		
+		var rows = state.data.rows;
+		var fields = $(target).datagrid('getColumnFields', frozen);
+		var table = [];
+		table.push('<table class="datagrid-btable" cellspacing="0" cellpadding="0" border="0"><tbody>');
+		for(var i=0; i<rows.length; i++) {
+			// get the class and style attributes for this row
+			var css = opts.rowStyler ? opts.rowStyler.call(target, i, rows[i]) : '';
+			var classValue = '';
+			var styleValue = '';
+			if (typeof css == 'string'){
+				styleValue = css;
+			} else if (css){
+				classValue = css['class'] || '';
+				styleValue = css['style'] || '';
+			}
+			
+			var cls = 'class="datagrid-row ' + (i % 2 && opts.striped ? 'datagrid-row-alt ' : ' ') + classValue + '"';
+			var style = styleValue ? 'style="' + styleValue + '"' : '';
+			var rowId = state.rowIdPrefix + '-' + (frozen?1:2) + '-' + i;
+			table.push('<tr id="' + rowId + '" datagrid-row-index="' + i + '" ' + cls + ' ' + style + '>');
+			table.push(this.renderRow.call(this, target, fields, frozen, i, rows[i]));
+			table.push('</tr>');
+			
+			table.push('<tr style="display:none;">');
+			if (frozen){
+				table.push('<td colspan=' + (fields.length+2) + ' style="border-right:0">');
+			} else {
+				table.push('<td colspan=' + (fields.length) + '>');
+			}
+			table.push('<div class="datagrid-row-detail">');
+			if (frozen){
+				table.push('&nbsp;');
+			} else {
+				table.push(opts.detailFormatter.call(target, i, rows[i]));
+			}
+			table.push('</div>');
+			table.push('</td>');
+			table.push('</tr>');
+			
+		}
+		table.push('</tbody></table>');
+		
+		$(container).html(table.join(''));
+	},
+	
+	renderRow: function(target, fields, frozen, rowIndex, rowData){
+		var opts = $.data(target, 'datagrid').options;
+		
+		var cc = [];
+		if (frozen && opts.rownumbers){
+			var rownumber = rowIndex + 1;
+			if (opts.pagination){
+				rownumber += (opts.pageNumber-1)*opts.pageSize;
+			}
+			cc.push('<td class="datagrid-td-rownumber"><div class="datagrid-cell-rownumber">'+rownumber+'</div></td>');
+		}
+		for(var i=0; i<fields.length; i++){
+			var field = fields[i];
+			var col = $(target).datagrid('getColumnOption', field);
+			if (col){
+				var value = rowData[field];	// the field value
+				var css = col.styler ? (col.styler(value, rowData, rowIndex)||'') : '';
+				var classValue = '';
+				var styleValue = '';
+				if (typeof css == 'string'){
+					styleValue = css;
+				} else if (cc){
+					classValue = css['class'] || '';
+					styleValue = css['style'] || '';
+				}
+				var cls = classValue ? 'class="' + classValue + '"' : '';
+				var style = col.hidden ? 'style="display:none;' + styleValue + '"' : (styleValue ? 'style="' + styleValue + '"' : '');
+				
+				cc.push('<td field="' + field + '" ' + cls + ' ' + style + '>');
+				
+				if (col.checkbox){
+					style = '';
+				} else if (col.expander){
+					style = "text-align:center;height:16px;";
+				} else {
+					style = styleValue;
+					if (col.align){style += ';text-align:' + col.align + ';'}
+					if (!opts.nowrap){
+						style += ';white-space:normal;height:auto;';
+					} else if (opts.autoRowHeight){
+						style += ';height:auto;';
+					}
+				}
+				
+				cc.push('<div style="' + style + '" ');
+				if (col.checkbox){
+					cc.push('class="datagrid-cell-check ');
+				} else {
+					cc.push('class="datagrid-cell ' + col.cellClass);
+				}
+				cc.push('">');
+				
+				if (col.checkbox){
+					cc.push('<input type="checkbox" name="' + field + '" value="' + (value!=undefined ? value : '') + '">');
+				} else if (col.expander) {
+					//cc.push('<div style="text-align:center;width:16px;height:16px;">');
+					cc.push('<span class="datagrid-row-expander datagrid-row-expand" style="display:inline-block;width:16px;height:16px;cursor:pointer;" />');
+					//cc.push('</div>');
+				} else if (col.formatter){
+					cc.push(col.formatter(value, rowData, rowIndex));
+				} else {
+					cc.push(value);
+				}
+				
+				cc.push('</div>');
+				cc.push('</td>');
+			}
+		}
+		return cc.join('');
+	},
+	
+	insertRow: function(target, index, row){
+		var opts = $.data(target, 'datagrid').options;
+		var dc = $.data(target, 'datagrid').dc;
+		var panel = $(target).datagrid('getPanel');
+		var view1 = dc.view1;
+		var view2 = dc.view2;
+		
+		var isAppend = false;
+		var rowLength = $(target).datagrid('getRows').length;
+		if (rowLength == 0){
+			$(target).datagrid('loadData',{total:1,rows:[row]});
+			return;
+		}
+		
+		if (index == undefined || index == null || index >= rowLength) {
+			index = rowLength;
+			isAppend = true;
+			this.canUpdateDetail = false;
+		}
+		
+		$.fn.datagrid.defaults.view.insertRow.call(this, target, index, row);
+		
+		_insert(true);
+		_insert(false);
+		
+		this.canUpdateDetail = true;
+		
+		function _insert(frozen){
+			var v = frozen ? view1 : view2;
+			var tr = v.find('tr[datagrid-row-index='+index+']');
+			
+			if (isAppend){
+				var newDetail = tr.next().clone();
+				tr.insertAfter(tr.next());
+			} else {
+				var newDetail = tr.next().next().clone();
+			}
+			newDetail.insertAfter(tr);
+			newDetail.hide();
+			if (!frozen){
+				newDetail.find('div.datagrid-row-detail').html(opts.detailFormatter.call(target, index, row));
+			}
+		}
+	},
+	
+	deleteRow: function(target, index){
+		var opts = $.data(target, 'datagrid').options;
+		var dc = $.data(target, 'datagrid').dc;
+		var tr = opts.finder.getTr(target, index);
+		tr.next().remove();
+		$.fn.datagrid.defaults.view.deleteRow.call(this, target, index);
+		dc.body2.triggerHandler('scroll');
+	},
+	
+	updateRow: function(target, rowIndex, row){
+		var dc = $.data(target, 'datagrid').dc;
+		var opts = $.data(target, 'datagrid').options;
+		var cls = $(target).datagrid('getExpander', rowIndex).attr('class');
+		$.fn.datagrid.defaults.view.updateRow.call(this, target, rowIndex, row);
+		$(target).datagrid('getExpander', rowIndex).attr('class',cls);
+		
+		// update the detail content
+		if (this.canUpdateDetail){
+			var row = $(target).datagrid('getRows')[rowIndex];
+			var detail = $(target).datagrid('getRowDetail', rowIndex);
+			detail.html(opts.detailFormatter.call(target, rowIndex, row));
+		}
+	},
+	
+	bindEvents: function(target){
+		var state = $.data(target, 'datagrid');
+		var dc = state.dc;
+		var opts = state.options;
+		var body = dc.body1.add(dc.body2);
+		// var clickHandler = ($.data(body[0],'events')||$._data(body[0],'events')).click[0].handler;
+		body.unbind('click').bind('click', function(e){
+			var tt = $(e.target);
+			var tr = tt.closest('tr.datagrid-row');
+			if (!tr.length){return}
+			if (tt.hasClass('datagrid-row-expander')){
+				var rowIndex = parseInt(tr.attr('datagrid-row-index'));
+				if (tt.hasClass('datagrid-row-expand')){
+					$(target).datagrid('expandRow', rowIndex);
+				} else {
+					$(target).datagrid('collapseRow', rowIndex);
+				}
+				$(target).datagrid('fixRowHeight');
+
+			} else {
+				// clickHandler(e);
+			}
+			e.stopPropagation();
+		});
+	},
+
+	onBeforeRender: function(target){
+		var state = $.data(target, 'datagrid');
+		var opts = state.options;
+		var dc = state.dc;
+		var t = $(target);
+		var hasExpander = false;
+		var fields = t.datagrid('getColumnFields',true).concat(t.datagrid('getColumnFields'));
+		for(var i=0; i<fields.length; i++){
+			var col = t.datagrid('getColumnOption', fields[i]);
+			if (col.expander){
+				hasExpander = true;
+				break;
+			}
+		}
+		if (!hasExpander){
+			if (opts.frozenColumns && opts.frozenColumns.length){
+				opts.frozenColumns[0].splice(0,0,{field:'_expander',expander:true,width:24,resizable:false,fixed:true});
+			} else {
+				opts.frozenColumns = [[{field:'_expander',expander:true,width:24,resizable:false,fixed:true}]];
+			}
+			
+			var t = dc.view1.children('div.datagrid-header').find('table');
+			var td = $('<td rowspan="'+opts.frozenColumns.length+'"><div class="datagrid-header-expander" style="width:24px;"></div></td>');
+			if ($('tr',t).length == 0){
+				td.wrap('<tr></tr>').parent().appendTo($('tbody',t));
+			} else if (opts.rownumbers){
+				td.insertAfter(t.find('td:has(div.datagrid-header-rownumber)'));
+			} else {
+				td.prependTo(t.find('tr:first'));
+			}
+		}
+
+		if (!state.bindDetailEvents){
+			state.bindDetailEvents = true;
+			var that = this;
+			setTimeout(function(){
+				that.bindEvents(target);
+			},0);
+		}
+	},
+	
+	onAfterRender: function(target){
+		var that = this;
+		var state = $.data(target, 'datagrid');
+		var dc = state.dc;
+		var opts = state.options;
+		var panel = $(target).datagrid('getPanel');
+		
+		$.fn.datagrid.defaults.view.onAfterRender.call(this, target);
+		
+		if (!state.onResizeColumn){
+			state.onResizeColumn = opts.onResizeColumn;
+		}
+		if (!state.onResize){
+			state.onResize = opts.onResize;
+		}
+		function resizeDetails(){
+			if (dc.header2) {
+				var ht = dc.header2.find('table');
+				var fr = ht.find('tr.datagrid-filter-row').hide();
+				var ww = ht.width()-1;
+				var details = dc.body2.find('div.datagrid-row-detail:visible')._outerWidth(ww);
+				details.find('.easyui-fluid').trigger('_resize');
+				fr.show();
+			}
+		}
+		
+		opts.onResizeColumn = function(field, width){
+			if (!opts.fitColumns){
+				resizeDetails();				
+			}
+			var rowCount = $(target).datagrid('getRows').length;
+			for(var i=0; i<rowCount; i++){
+				$(target).datagrid('fixDetailRowHeight', i);
+			}
+			
+			// call the old event code
+			state.onResizeColumn.call(target, field, width);
+		};
+		opts.onResize = function(width, height){
+			if (opts.fitColumns){
+				resizeDetails();				
+			}
+			state.onResize.call(panel, width, height);
+		};
+		
+		this.canUpdateDetail = true;	// define if to update the detail content when 'updateRow' method is called;
+		
+		var footer = dc.footer1.add(dc.footer2);
+		footer.find('span.datagrid-row-expander').css('visibility', 'hidden');
+		$(target).datagrid('resize');
+	}
+});
+
+$.extend($.fn.datagrid.methods, {
+	fixDetailRowHeight: function(jq, index){
+		return jq.each(function(){
+			var opts = $.data(this, 'datagrid').options;
+			if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))){
+				return;
+			}
+			var dc = $.data(this, 'datagrid').dc;
+			var tr1 = opts.finder.getTr(this, index, 'body', 1).next();
+			var tr2 = opts.finder.getTr(this, index, 'body', 2).next();
+			// fix the detail row height
+			if (tr2.is(':visible')){
+				tr1.css('height', '');
+				tr2.css('height', '');
+				var height = Math.max(tr1.height(), tr2.height());
+				tr1.css('height', height);
+				tr2.css('height', height);
+			}
+			dc.body2.triggerHandler('scroll');
+		});
+	},
+	getExpander: function(jq, index){	// get row expander object
+		var opts = $.data(jq[0], 'datagrid').options;
+		return opts.finder.getTr(jq[0], index).find('span.datagrid-row-expander');
+	},
+	// get row detail container
+	getRowDetail: function(jq, index){
+		var opts = $.data(jq[0], 'datagrid').options;
+		var tr = opts.finder.getTr(jq[0], index, 'body', 2);
+		return tr.next().find('div.datagrid-row-detail');
+	},
+	expandRow: function(jq, index){
+		return jq.each(function(){
+			var opts = $(this).datagrid('options');
+			var dc = $.data(this, 'datagrid').dc;
+			var expander = $(this).datagrid('getExpander', index);
+			if (expander.hasClass('datagrid-row-expand')){
+				expander.removeClass('datagrid-row-expand').addClass('datagrid-row-collapse');
+				var tr1 = opts.finder.getTr(this, index, 'body', 1).next();
+				var tr2 = opts.finder.getTr(this, index, 'body', 2).next();
+				tr1.show();
+				tr2.show();
+				$(this).datagrid('fixDetailRowHeight', index);
+				if (opts.onExpandRow){
+					var row = $(this).datagrid('getRows')[index];
+					opts.onExpandRow.call(this, index, row);
+				}
+			}
+		});
+	},
+	collapseRow: function(jq, index){
+		return jq.each(function(){
+			var opts = $(this).datagrid('options');
+			var dc = $.data(this, 'datagrid').dc;
+			var expander = $(this).datagrid('getExpander', index);
+			if (expander.hasClass('datagrid-row-collapse')){
+				expander.removeClass('datagrid-row-collapse').addClass('datagrid-row-expand');
+				var tr1 = opts.finder.getTr(this, index, 'body', 1).next();
+				var tr2 = opts.finder.getTr(this, index, 'body', 2).next();
+				tr1.hide();
+				tr2.hide();
+				dc.body2.triggerHandler('scroll');
+				if (opts.onCollapseRow){
+					var row = $(this).datagrid('getRows')[index];
+					opts.onCollapseRow.call(this, index, row);
+				}
+			}
+		});
+	}
+});
+
Index: webmail-web/src/main/webapp/js/mailInbox/mailInboxDetail.js
===================================================================
--- webmail-web/src/main/webapp/js/mailInbox/mailInboxDetail.js	(revision 37007)
+++ webmail-web/src/main/webapp/js/mailInbox/mailInboxDetail.js	(revision 37008)
@@ -16,6 +16,19 @@
 		$("#aftButton").linkbutton('disable');
 	}
 
+	//删除集装箱信息
+	$("#inputContainer").on('click', '.delBtn', function () {
+		// $(this).parent().remove();
+		$(this).parent().css("display", "none")
+		$(this).siblings('#status').val("2");
+	})
+
+	$('#inputContainer').on('change', '#containerNo',function() {
+		var id = $(this).siblings('#containerId').val();
+		if (id !== "" && id !== null && id !== undefined) {
+			$(this).siblings('#status').val("1");
+		}
+	});
 });
 /**
  * 打开分配人员页面
@@ -33,6 +46,25 @@
 }
 
 /**
+ * 打开人员分配页面
+ */
+function openDistributionPage(param) {
+	var maillistId = $("#mailListId").val();
+	var title = '';
+	if (param == '0') {
+		title = '在线审单单证人员分配';
+	} else {
+		title = '在线审单录单员分配';
+	}
+	parent.showWindow({
+		title : title,
+		href : base + '/personnelAllocation/showPersonnelAllocationPage.do?maillistId=' + maillistId + '&type=' + param,
+		width : 1200,
+		height : 500
+	});
+}
+
+/**
  * 弹出窗口回调方法，回显新的处理人员
  */
 function closeDealerPage(dealerName, maillistDealer) {
@@ -70,13 +102,14 @@
 function saveRemarks() {
 	var maillistId = $("#mailListId").val();
 	var remarks = $("#maillistRemarks").val();
+	var containers = getAllInputValues();
 	// 后台通讯，保存备注信息
 	$.ajax({
 		type : 'POST',
 		dataType : 'json',
 		contentType : 'application/json;charset=UTF-8',
 		async : false,
-		url : base + '/inbox/saveMaillistRemarks.do?maillistRemarks=' + encodeURIComponent(remarks) + "&maillistId=" + maillistId,
+		url : base + '/inbox/saveMaillistRemarks.do?maillistRemarks=' + encodeURIComponent(remarks) + "&maillistId=" + maillistId + "&containers=" + encodeURIComponent(containers),
 		success : function(msg) {
 			if (msg) {
 				if (msg.code == '0') {
@@ -221,4 +254,43 @@
 		}
 	});*/
 
-}
\ No newline at end of file
+}
+
+//添加集装箱信息
+function addContainer() {
+	// 创建新的输入框元素
+	// var newInput = $("<div><input type='text' style='margin: 10px 0 0 80px' /><button type='button' class='delBtn'>X</button></div>");
+	//生成一个表单数据
+	var myForm =  '<form id="myForm" style="">' +
+		'    <input id="containerNo" type="text" name="containerNo" placeholder="集装箱号">' +
+		'    <input id="status" type="text" name="status" placeholder="状态" value="0" style="display: none">' +
+		'    <input id="containerId" type="text" name="containerId" placeholder="集装箱id" style="display: none">' +
+		'    <button type="button" class="delBtn">X</button>' +
+		'</form>';
+	// 将新的输入框追加到容器内部
+	$("#inputContainer").append(myForm);
+}
+
+// 当提交表单或者其他操作需要获取所有输入框的值时触发函数
+function getAllInputValues() {
+	var values = [];
+
+	// 遍历每个输入框，并将其值保存到values数组中
+	// $('#inputContainer input[type=text]').each(function(){
+	// 	var containerObj = {};
+	// 	containerObj.containerNo = $(this).val();
+	//
+	// 	containerObj.status = '0';
+	// 	values.push(containerObj);
+	// });
+	$('#inputContainer #myForm').each(function(){
+		var arr = $(this).serializeArray(); //获取到每个from
+		var dataObj = {};
+		$.each(arr, function (i, obj) {
+			dataObj[obj.name] = obj.value;
+		})
+		values.push(dataObj);
+	});
+
+	return JSON.stringify(values);
+}
Index: webmail-web/src/main/webapp/js/share/showContainerLogs.js
===================================================================
--- webmail-web/src/main/webapp/js/share/showContainerLogs.js	(revision 0)
+++ webmail-web/src/main/webapp/js/share/showContainerLogs.js	(revision 37008)
@@ -0,0 +1,371 @@
+// 是否
+var whetherOrNot = [
+    {'id': '', 'text': '全部'},
+    {'id': '0', 'text': '否'},
+    {'id': '1', 'text': '是'}
+];
+// 客户类型
+var isvipSource = [
+    {'id': '', 'text': '全部'},
+    {'id': '0', 'text': 'VIP客户'},
+    {'id': '1', 'text': '黑名单'},
+    {'id': '2', 'text': '普通客户'},
+    {'id': '3', 'text': '重要客户'}
+];
+$(function () {
+    var randomNu = (new Date().getTime()) ^ Math.random();
+    var userid = $('#loginUserId').val();
+    $('#containerLogsTable').datagrid({
+        title: ' ', //标题
+        method: 'post',
+        iconCls: 'icon-edit', //图标
+        singleSelect: true,
+        collapsible: false,
+        fit: true,//自动大小
+        fitColumns: true,
+        resizable: false,
+        fixed: true,
+        nowrap: true,
+        striped: true,
+        width: 'auto',
+        height: 'auto',
+        url: base + "/containerResult/queryShareContainerBusinessList.do?random=" + randomNu, //数据来源
+        idField: 'maillistMailid', //主键字段
+        queryParams: {userid: userid}, //查询条件
+        pagination: true, //显示分页
+        rownumbers: true, //显示行号
+        pageSize: 30,// 默认的查询行数
+        pageList: [10, 20, 30, 40, 50], // 分页查询数量
+        columns: [[
+            {field: 'maillistMailid', title: '主键id', width: 10, hidden: true},
+            {field: 'maillistSubject', title: '主题', width: 200, sortable: false},
+            {field: 'maillistSendertime', title: '时间', width: 150, sortable: false},
+            {field: 'toccReceive', title: '收件人', width: 200, sortable: false},
+            {
+                field: 'mailEmergent', title: '优先级', width: 53, align: "center",
+                formatter: function (value, row, index) {
+                    if (row.mailEmergent == 0) {
+                        return "";
+                    } else if (row.mailEmergent == 9) {
+                        return "<img src='" + base + "/js/jquery-easyui/images/imp_mail2.png' >";
+                    } else if (row.mailEmergent == 2) {
+                        return "<img src='" + base + "/js/jquery-easyui/images/imp_mail3.png' >";
+                    }
+                }
+            },
+            {field: 'serviceNo', title: '业务编号', width: 100, sortable: false},
+            {field: 'companyName', title: '公司名称', width: 200, sortable: false},
+            {field: 'processingType', title: '处理类型', width: 100, sortable: false},
+            {field: 'processingTime', title: '处理时间', width: 150, sortable: false},
+            {field: 'maillistDividestate', title: '分配状态', width: 100, sortable: false},
+            {field: 'dealstateName', title: '邮件处理状态', width: 100, sortable: false},
+            {field: 'maillistDividetime', title: '回复时间', width: 150, sortable: false}
+        ]],
+        onBeforeLoad:function(param) {
+            var sdate = $("#dateStart").datebox("getValue");
+            var edate = $("#dateEnd").datebox("getValue");
+            if(sdate==''&&edate=='') {
+                sdate = getFormatDateByLong(new Date().getTime() - 86400000*6,"yyyy-MM-dd");
+                edate = getSmpFormatNowDate(false);
+                $("#dateStart").datebox("setValue",sdate);
+                $("#dateEnd").datebox("setValue",edate);
+                param["dateStart"] = sdate;
+                param["dateEnd"] = edate;
+            }
+            return true;
+        },
+        view: detailview,
+        detailFormatter: function (value, rows) {
+            return '<div style="padding:0px"><table class="ddv"></table></div>';
+        },
+        onExpandRow: function (index, row) {
+            var maillistid = row.maillistMailid;
+            if ($(this).datagrid('getRowDetail', index) == undefined) {
+                return;
+            }
+            var ddv = $(this).datagrid('getRowDetail', index).find('table.ddv');
+            ddv.datagrid({
+                url: base + "/containerResult/queryShareContainerLogsList.do?maillistId=" + maillistid,
+                fitColumns: false,
+                collapsible: false,
+                singleSelect: true,
+                rownumbers: true,
+                queryParams: {
+                    //单证人员
+                    hddzUser: $("#hddzUser").combobox("getValue"),
+                    //在线审单
+                    onlineUser: $("#onlineUser").combobox("getValue"),
+                    //是否完成录单
+                    isLdFinish: $("#isLdFinish").combobox("getValue"),
+                    //是否完成兜底
+                    isDdFinish: $("#isDdFinish").combobox("getValue"),
+                    //是否同步
+                    isSync: $("#isSync").combobox("getValue"),
+                    // 兜底错误
+                    ddMistake: $("#ddMistake").val(),
+                    //集装箱号
+                    containerNo: $("#containerNo").val()
+                }, //查询条件
+                height: 'auto',
+                width: 'auto',
+                columns: [[
+                    {field: 'containerId', title: '集装箱号id', hidden: true},
+                    {field: 'containerNo', title: '集装箱号', width: 150, sortable: false},
+                    {field: 'enterTime', title: '集装箱号录入时间', width: 150, sortable: false},
+                    {field: 'divideHddz', title: '分配单证人员', width: 80, sortable: false},
+                    {field: 'divideHddzTime', title: '单证人员分配时间', width: 150, sortable: false},
+                    {field: 'onlineReview', title: '分配在线审单人员', width: 80, sortable: false},
+                    {field: 'onlineReviewTime', title: '分配在线审单时间', width: 150, sortable: false},
+                    {field: 'predictFinishTime', title: '预计完成时间', width: 150, sortable: false},
+                    {field: 'ywbh', title: '业务编号', width: 100, sortable: false},
+                    {field: 'startTime', title: '开始录单时间', width: 150, sortable: false},
+                    {field: 'finishTime', title: '完成录单时间', width: 150, sortable: false},
+                    {field: 'lastFinishTime', title: '兜底完成时间', width: 150, sortable: false},
+                    {field: 'lastFinishUser', title: '兜底人员', width: 80, sortable: false},
+                    {field: 'lastFinishRemark', title: '兜底错误说明', width: 150, sortable: false},
+                    {field: 'lastSyncTime', title: '同步水果通时间', width: 100, sortable: false},
+                    {field: 'fileUpdateRemark', title: '在线审单最新更新文件', width: 150, sortable: false},
+                    {field: 'hddzRemark', title: '单证人员发现错误', width: 150, sortable: false}
+                ]],
+                onLoad: function () {
+                    $('#containerLogsTable').datagrid('fixDetailRowHeight', index);
+                    $('#containerLogsTable').datagrid('selectRow', index);
+                    $('#containerLogsTable').datagrid('getRowDetail', index).find('form').form('load', row);
+                    $('#containerLogsTable').datagrid('fixDetailRowHeight', index);
+                    $('#containerLogsTable').datagrid('fixRowHeight', index);
+                },
+                onResize: function () {
+                    $('#containerLogsTable').datagrid('fixDetailRowHeight', index);
+                },
+                onLoadSuccess: function () {
+                    setTimeout(function () {
+                        $('#containerLogsTable').datagrid('fixDetailRowHeight', index);
+                        $('#containerLogsTable').datagrid('fixRowHeight', index);//防止出现滑动条
+                    }, 0);
+                }
+            });
+        },
+        toolbar: [{
+            text: '编辑',
+            iconCls: 'icon-edit',
+            handler: function () {
+                openEditContainerInfoPage();
+            }
+        }, '-', {
+            text: '开始录单',
+            iconCls: 'icon-edit',
+            handler: function () {
+                editOnLineReviewData("08");
+            }
+        }, '-', {
+            text: '审单完成',
+            iconCls: 'icon-edit',
+            handler: function () {
+                editOnLineReviewData("09");
+            }
+        }, '-', {
+            text: '完成录单',
+            iconCls: 'icon-edit',
+            handler: function () {
+                editOnLineReviewData("10");
+            }
+        }, '-', {
+            text: '兜底完成',
+            iconCls: 'icon-edit',
+            handler: function () {
+                editOnLineReviewData("11");
+            }
+        }, '-', {
+            text: '同步',
+            iconCls: 'icon-edit',
+            handler: function () {
+                editOnLineReviewData("12");
+            }
+        }],
+    });
+    $('#containerLogsTable').datagrid("getPager").pagination({
+        pageSize: 30,
+        displayMsg: '当前数据范围 {from} 到 {to} ，共 {total} 条记录',
+        beforePageText: '当前',
+        afterPageText: '  ,共 {pages}页'
+    });
+    // 初始化查询框邮件处理状态
+    $('#maillistDealstate').combobox({
+        url: base + '/dict/queryMaillistDealstate.do',
+        valueField: 'value',
+        textField: 'description'
+    });
+
+    //处理人员列表
+    $('#hddzUser').combobox({
+        url: base + '/dealPerson/queryDealPersonByManager.do',
+        valueField: 'dealpersonDealer',
+        textField: 'realName'
+    });
+
+    //处理人员列表
+    $('#onlineUser').combobox({
+        url: base + '/dealPerson/queryDealPersonByManager.do',
+        valueField: 'dealpersonDealer',
+        textField: 'realName'
+    });
+
+    //收件人
+    $('#mailId').combobox({
+        url: base + '/mailManager/queryMailManagerEmailByUserId.do',
+        valueField: 'mailmanagerMailid',
+        textField: 'rmailboxAccounts'
+    });
+
+    // 初始化查询紧急邮件状态
+    $('#mailEmergent').combobox({
+        url: base + '/dict/queryMailEmergent.do',
+        valueField: 'value',
+        textField: 'description'
+    });
+
+    //是否完成录单
+    $('#isLdFinish').combobox({
+        data: whetherOrNot,
+        valueField: 'id',
+        textField: 'text'
+    });
+    //是否完成兜底
+    $('#isDdFinish').combobox({
+        data: whetherOrNot,
+        valueField: 'id',
+        textField: 'text'
+    });
+    //是否同步
+    $('#isSync').combobox({
+        data: whetherOrNot,
+        valueField: 'id',
+        textField: 'text'
+    });
+    //客户类型
+    $('#isvip').combobox({
+        data: isvipSource,
+        valueField: 'id',
+        textField: 'text'
+    });
+
+});
+
+function editOnLineReviewData(type) {
+    var rows = $('#containerLogsTable').datagrid('getSelected');
+    var index = $('#containerLogsTable').datagrid('getRowIndex', rows);
+    var ddv = $('#containerLogsTable').datagrid('getRowDetail', index).find('table.ddv');
+    var row = ddv.datagrid('getSelected');
+    if (row == null || row === undefined) {
+        $.messager.alert('提示', "请选择一条集装箱数据编辑", 'info');
+        return;
+    }
+    var containerId = row['containerId'];
+    $('#editDiv').dialog({
+        title: '编辑在线审单信息',
+        width: 600,
+        height: 200,
+        closed: false,
+        cache: false,
+        href: base + '/containerResult/showEditContainerInfoPage.do?containerId=' + containerId + '&behaviorCode=' + type,
+        modal: true
+    });
+    $('#editDiv').dialog('refresh', base + '/containerResult/showEditContainerInfoPage.do?containerId=' + containerId + '&behaviorCode=' + type);
+
+}
+
+function openEditContainerInfoPage() {
+    var rows = $('#containerLogsTable').datagrid('getSelected');
+    var index = $('#containerLogsTable').datagrid('getRowIndex', rows);
+    var ddv = $('#containerLogsTable').datagrid('getRowDetail', index).find('table.ddv');
+    var row = ddv.datagrid('getSelected');
+    if (row == null || row === undefined) {
+        $.messager.alert('提示', "请选择一条集装箱数据编辑", 'info');
+        return;
+    }
+    var containerId = row['containerId'];
+    $('#editDiv').dialog({
+        title: '编辑在线审单信息',
+        width: 600,
+        height: 200,
+        closed: false,
+        cache: false,
+        href: base + '/containerResult/showEditContainerInfoPage.do?containerId=' + containerId,
+        modal: true
+    });
+    $('#editDiv').dialog('refresh', base + '/containerResult/showEditContainerInfoPage.do?containerId=' + containerId);
+}
+
+function logsSearch() {
+    var sdate = $("#dateStart").datebox("getValue");
+    var edate = $("#dateEnd").datebox("getValue");
+    if (sdate != '' && edate != '') {
+        if (sdate > edate) {
+            $.messager.alert('提示', '开始日期不能大于结束日期！', 'error');
+            return;
+        }
+    }
+    $('#containerLogsTable').datagrid('load', {
+
+        dateStart: $("#dateStart").datebox("getValue"),
+        dateEnd: $("#dateEnd").datebox("getValue"),
+        //单证人员
+        hddzUser: $("#hddzUser").combobox("getValue"),
+        //在线审单
+        onlineUser: $("#onlineUser").combobox("getValue"),
+        //是否完成录单
+        isLdFinish: $("#isLdFinish").combobox("getValue"),
+        //是否完成兜底
+        isDdFinish: $("#isDdFinish").combobox("getValue"),
+        //是否同步
+        isSync: $("#isSync").combobox("getValue"),
+        // 兜底错误
+        ddMistake: $("#ddMistake").val(),
+
+        // 业务编号
+        snstateName: $("#snstateName").val(),
+        // 公司名称
+        companyName: $("#companyName").val(),
+        //处理状态
+        maillistDealstate: $("#maillistDealstate").combobox("getValue"),
+        //优先级
+        mailEmergent: $("#mailEmergent").combobox('getValue'),
+        //客户类型
+        isvip: $("#isvip").combobox('getValue'),
+        //收件人
+        mailId : $("#mailId").combobox('getValue'),
+        //集装箱号
+        containerNo: $("#containerNo").val()
+
+    });
+}
+//清空
+function doClear() {
+    //单证人员
+    $("#hddzUser").combobox("setValue","");
+    //在线审单
+    $("#onlineUser").combobox("setValue","");
+    //是否完成录单
+    $("#isLdFinish").combobox("setValue","");
+    //是否完成兜底
+    $("#isDdFinish").combobox("setValue","");
+    //是否同步
+    $("#isSync").combobox("setValue","");
+    // 兜底错误
+    $("#ddMistake").val(""),
+
+    // 业务编号
+    $("#snstateName").val(""),
+    // 公司名称
+    $("#companyName").combobox("setValue","");
+    // 编码匹配
+    $("#serviceNo").combobox(""),
+    //处理状态
+    $("#maillistDealstate").combobox("setValue","");
+    //优先级
+    $("#mailEmergent").combobox("setValue","");
+    //客户类型
+    $("#isvip").combobox("setValue","");
+    //集装箱号
+    $("#containerNo").val("")
+}
\ No newline at end of file


