dengyj před 4 roky
rodič
revize
590d6c2ca4

+ 88 - 8
src/main/java/com/steerinfo/meterwork/meterworkcaractual/mapper/MeterWorkCarActualMapper.xml

@@ -114,6 +114,9 @@
     <result column="IS_PRE_SCALE" jdbcType="VARCHAR" property="isPreScale" />
     <result column="BOUND_LIST_URL" jdbcType="VARCHAR" property="boundListUrl" />
     <result column="IS_BOUND_LIST" jdbcType="VARCHAR" property="isBoundList" />
+    <result column="CONTRACT_ID" jdbcType="VARCHAR" property="contractId" />
+    <result column="IS_BOUND_LIST_DOWNLOADED" jdbcType="VARCHAR" property="isBoundListDownloaded" />
+    <result column="DOCUMENT_ID" jdbcType="VARCHAR" property="documentId" />
   </resultMap>
   <sql id="columns">
     ACTUAL_NO, PREDICTION_NO, NOTICE_NO, CAR_NO, TRAILER_NO, MATTER_NO, MATTER_NAME, 
@@ -134,7 +137,8 @@
     RESOURCE_SYSTEM, GROUP_PACKAGE_AMOUNT, GROUP_PACKAGE_UNIT, PACKAGE_AMOUNT, PACKAGE_UNIT, 
     THEORY_AMOUNT, MEASURE_BATCH, MEASURE_BATCH_COUNT, SENDER_TYPE, SENDER_REMARK, RECEIVER_TYPE, 
     RECEIVER_REMARK, AMOUNT_UNIT, MEASURE_OBJECT_TYPE, MEASURE_TASK_NUM, BILL_TYPE, CREATE_MAN_NAME, 
-    CREATE_TIME, DATA_SOURCE, IS_PRE_SCALE, BOUND_LIST_URL, IS_BOUND_LIST
+    CREATE_TIME, DATA_SOURCE, IS_PRE_SCALE, BOUND_LIST_URL, IS_BOUND_LIST, CONTRACT_ID, 
+    IS_BOUND_LIST_DOWNLOADED, DOCUMENT_ID
   </sql>
   <sql id="columns_alias">
     t.ACTUAL_NO, t.PREDICTION_NO, t.NOTICE_NO, t.CAR_NO, t.TRAILER_NO, t.MATTER_NO, t.MATTER_NAME, 
@@ -157,7 +161,8 @@
     t.GROUP_PACKAGE_UNIT, t.PACKAGE_AMOUNT, t.PACKAGE_UNIT, t.THEORY_AMOUNT, t.MEASURE_BATCH, 
     t.MEASURE_BATCH_COUNT, t.SENDER_TYPE, t.SENDER_REMARK, t.RECEIVER_TYPE, t.RECEIVER_REMARK, 
     t.AMOUNT_UNIT, t.MEASURE_OBJECT_TYPE, t.MEASURE_TASK_NUM, t.BILL_TYPE, t.CREATE_MAN_NAME, 
-    t.CREATE_TIME, t.DATA_SOURCE, t.IS_PRE_SCALE, t.BOUND_LIST_URL, t.IS_BOUND_LIST
+    t.CREATE_TIME, t.DATA_SOURCE, t.IS_PRE_SCALE, t.BOUND_LIST_URL, t.IS_BOUND_LIST, 
+    t.CONTRACT_ID, t.IS_BOUND_LIST_DOWNLOADED, t.DOCUMENT_ID
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM METER_WORK_CAR_ACTUAL
@@ -503,6 +508,15 @@
       <if test="isBoundList != null and isBoundList != ''">
         and IS_BOUND_LIST = #{isBoundList}
       </if>
+      <if test="contractId != null and contractId != ''">
+        and CONTRACT_ID = #{contractId}
+      </if>
+      <if test="isBoundListDownloaded != null and isBoundListDownloaded != ''">
+        and IS_BOUND_LIST_DOWNLOADED = #{isBoundListDownloaded}
+      </if>
+      <if test="documentId != null and documentId != ''">
+        and DOCUMENT_ID = #{documentId}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -843,6 +857,15 @@
       <if test="isBoundList != null and isBoundList != ''">
         and IS_BOUND_LIST LIKE '%${isBoundList}%'
       </if>
+      <if test="contractId != null and contractId != ''">
+        and CONTRACT_ID LIKE '%${contractId}%'
+      </if>
+      <if test="isBoundListDownloaded != null and isBoundListDownloaded != ''">
+        and IS_BOUND_LIST_DOWNLOADED LIKE '%${isBoundListDownloaded}%'
+      </if>
+      <if test="documentId != null and documentId != ''">
+        and DOCUMENT_ID LIKE '%${documentId}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -1185,6 +1208,15 @@
       <if test="isBoundList != null and isBoundList != ''">
         or IS_BOUND_LIST = #{isBoundList}
       </if>
+      <if test="contractId != null and contractId != ''">
+        or CONTRACT_ID = #{contractId}
+      </if>
+      <if test="isBoundListDownloaded != null and isBoundListDownloaded != ''">
+        or IS_BOUND_LIST_DOWNLOADED = #{isBoundListDownloaded}
+      </if>
+      <if test="documentId != null and documentId != ''">
+        or DOCUMENT_ID = #{documentId}
+      </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual">
     insert into METER_WORK_CAR_ACTUAL (ACTUAL_NO, PREDICTION_NO, NOTICE_NO, 
@@ -1224,7 +1256,8 @@
       RECEIVER_REMARK, AMOUNT_UNIT, MEASURE_OBJECT_TYPE, 
       MEASURE_TASK_NUM, BILL_TYPE, CREATE_MAN_NAME, 
       CREATE_TIME, DATA_SOURCE, IS_PRE_SCALE, 
-      BOUND_LIST_URL, IS_BOUND_LIST)
+      BOUND_LIST_URL, IS_BOUND_LIST, CONTRACT_ID, 
+      IS_BOUND_LIST_DOWNLOADED, DOCUMENT_ID)
     values (#{actualNo,jdbcType=VARCHAR}, #{predictionNo,jdbcType=VARCHAR}, #{noticeNo,jdbcType=VARCHAR}, 
       #{carNo,jdbcType=VARCHAR}, #{trailerNo,jdbcType=VARCHAR}, #{matterNo,jdbcType=VARCHAR}, 
       #{matterName,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, #{batchNo,jdbcType=VARCHAR}, 
@@ -1262,7 +1295,8 @@
       #{receiverRemark,jdbcType=VARCHAR}, #{amountUnit,jdbcType=VARCHAR}, #{measureObjectType,jdbcType=VARCHAR}, 
       #{measureTaskNum,jdbcType=VARCHAR}, #{billType,jdbcType=VARCHAR}, #{createManName,jdbcType=VARCHAR}, 
       #{createTime,jdbcType=TIMESTAMP}, #{dataSource,jdbcType=VARCHAR}, #{isPreScale,jdbcType=VARCHAR}, 
-      #{boundListUrl,jdbcType=VARCHAR}, #{isBoundList,jdbcType=VARCHAR})
+      #{boundListUrl,jdbcType=VARCHAR}, #{isBoundList,jdbcType=VARCHAR}, #{contractId,jdbcType=VARCHAR}, 
+      #{isBoundListDownloaded,jdbcType=VARCHAR}, #{documentId,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual">
     insert into METER_WORK_CAR_ACTUAL
@@ -1603,6 +1637,15 @@
       <if test="isBoundList != null">
         IS_BOUND_LIST,
       </if>
+      <if test="contractId != null">
+        CONTRACT_ID,
+      </if>
+      <if test="isBoundListDownloaded != null">
+        IS_BOUND_LIST_DOWNLOADED,
+      </if>
+      <if test="documentId != null">
+        DOCUMENT_ID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="actualNo != null">
@@ -1941,6 +1984,15 @@
       <if test="isBoundList != null">
         #{isBoundList,jdbcType=VARCHAR},
       </if>
+      <if test="contractId != null">
+        #{contractId,jdbcType=VARCHAR},
+      </if>
+      <if test="isBoundListDownloaded != null">
+        #{isBoundListDownloaded,jdbcType=VARCHAR},
+      </if>
+      <if test="documentId != null">
+        #{documentId,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual">
@@ -2055,7 +2107,10 @@
       DATA_SOURCE = #{dataSource,jdbcType=VARCHAR},
       IS_PRE_SCALE = #{isPreScale,jdbcType=VARCHAR},
       BOUND_LIST_URL = #{boundListUrl,jdbcType=VARCHAR},
-      IS_BOUND_LIST = #{isBoundList,jdbcType=VARCHAR}
+      IS_BOUND_LIST = #{isBoundList,jdbcType=VARCHAR},
+      CONTRACT_ID = #{contractId,jdbcType=VARCHAR},
+      IS_BOUND_LIST_DOWNLOADED = #{isBoundListDownloaded,jdbcType=VARCHAR},
+      DOCUMENT_ID = #{documentId,jdbcType=VARCHAR}
     where ACTUAL_NO = #{actualNo,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual">
@@ -2394,6 +2449,15 @@
       <if test="isBoundList != null">
         IS_BOUND_LIST = #{isBoundList,jdbcType=VARCHAR},
       </if>
+      <if test="contractId != null">
+        CONTRACT_ID = #{contractId,jdbcType=VARCHAR},
+      </if>
+      <if test="isBoundListDownloaded != null">
+        IS_BOUND_LIST_DOWNLOADED = #{isBoundListDownloaded,jdbcType=VARCHAR},
+      </if>
+      <if test="documentId != null">
+        DOCUMENT_ID = #{documentId,jdbcType=VARCHAR},
+      </if>
     </set>
     where ACTUAL_NO = #{actualNo,jdbcType=VARCHAR}
   </update>
@@ -2453,7 +2517,9 @@
       RECEIVER_REMARK, AMOUNT_UNIT, MEASURE_OBJECT_TYPE, 
       MEASURE_TASK_NUM, BILL_TYPE, CREATE_MAN_NAME, 
       CREATE_TIME, DATA_SOURCE, IS_PRE_SCALE, 
-      BOUND_LIST_URL, IS_BOUND_LIST)
+      BOUND_LIST_URL, IS_BOUND_LIST, CONTRACT_ID, 
+      IS_BOUND_LIST_DOWNLOADED, DOCUMENT_ID
+      )
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
       #{item.actualNo,jdbcType=VARCHAR}, 
@@ -2498,7 +2564,9 @@
       #{item.receiverRemark,jdbcType=VARCHAR}, #{item.amountUnit,jdbcType=VARCHAR}, #{item.measureObjectType,jdbcType=VARCHAR}, 
       #{item.measureTaskNum,jdbcType=VARCHAR}, #{item.billType,jdbcType=VARCHAR}, #{item.createManName,jdbcType=VARCHAR}, 
       #{item.createTime,jdbcType=TIMESTAMP}, #{item.dataSource,jdbcType=VARCHAR}, #{item.isPreScale,jdbcType=VARCHAR}, 
-      #{item.boundListUrl,jdbcType=VARCHAR}, #{item.isBoundList,jdbcType=VARCHAR} from dual  
+      #{item.boundListUrl,jdbcType=VARCHAR}, #{item.isBoundList,jdbcType=VARCHAR}, #{item.contractId,jdbcType=VARCHAR}, 
+      #{item.isBoundListDownloaded,jdbcType=VARCHAR}, #{item.documentId,jdbcType=VARCHAR}
+       from dual  
    </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -2952,6 +3020,18 @@
        <foreach close="end" collection="list" index="index" item="item" open="case ACTUAL_NO" separator=" ">
           when #{item.actualNo,jdbcType=VARCHAR} then #{item.isBoundList,jdbcType=VARCHAR}
        </foreach>
+       ,CONTRACT_ID=
+       <foreach close="end" collection="list" index="index" item="item" open="case ACTUAL_NO" separator=" ">
+          when #{item.actualNo,jdbcType=VARCHAR} then #{item.contractId,jdbcType=VARCHAR}
+       </foreach>
+       ,IS_BOUND_LIST_DOWNLOADED=
+       <foreach close="end" collection="list" index="index" item="item" open="case ACTUAL_NO" separator=" ">
+          when #{item.actualNo,jdbcType=VARCHAR} then #{item.isBoundListDownloaded,jdbcType=VARCHAR}
+       </foreach>
+       ,DOCUMENT_ID=
+       <foreach close="end" collection="list" index="index" item="item" open="case ACTUAL_NO" separator=" ">
+          when #{item.actualNo,jdbcType=VARCHAR} then #{item.documentId,jdbcType=VARCHAR}
+       </foreach>
      where ACTUAL_NO in 
      <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
     #{item.actualNo,jdbcType=VARCHAR}
@@ -2966,7 +3046,6 @@
   </delete>
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-
   <sql id="whereTime">
     <where>
       <if test="startTime != null and endTime != null and startTime != '' and endTime != ''">
@@ -3484,4 +3563,5 @@
     and value_flag != '0'
     order by ACTUAL_NO desc
   </select>
+  
 </mapper>

+ 52 - 7
src/main/java/com/steerinfo/meterwork/meterworkcaractual/model/MeterWorkCarActual.java

@@ -64,7 +64,7 @@ public class MeterWorkCarActual implements IBasePO<String> {
     private String batchNo;
 
     /**
-     * 供应商编号(CUSTOMER_SUPPLIER_NO,VARCHAR,20)
+     * 供应商编号(CUSTOMER_SUPPLIER_NO,VARCHAR,30)
      */
     @ApiModelProperty(value="供应商编号",required=false)
     private String customerSupplierNo;
@@ -76,7 +76,7 @@ public class MeterWorkCarActual implements IBasePO<String> {
     private String customerSupplierName;
 
     /**
-     * 发货单位编号(FORWARDING_UNIT_NO,VARCHAR,20)
+     * 发货单位编号(FORWARDING_UNIT_NO,VARCHAR,30)
      */
     @ApiModelProperty(value="发货单位编号",required=false)
     private String forwardingUnitNo;
@@ -88,7 +88,7 @@ public class MeterWorkCarActual implements IBasePO<String> {
     private String forwardingUnitName;
 
     /**
-     * 收货单位编号(RECEIVING_UINT_NO,VARCHAR,20)
+     * 收货单位编号(RECEIVING_UINT_NO,VARCHAR,30)
      */
     @ApiModelProperty(value="收货单位编号",required=false)
     private String receivingUintNo;
@@ -352,15 +352,15 @@ public class MeterWorkCarActual implements IBasePO<String> {
     private String netGroup;
 
     /**
-     * 结净方式(1:正常结净;2:匹配结净)(NET_MODE,VARCHAR,1)
+     * 结净方式(1:正常结净;2:匹配结净;3:双委托洁净;4:混装洁净;5:混卸洁净)(NET_MODE,VARCHAR,1)
      */
-    @ApiModelProperty(value="结净方式(1:正常结净;2:匹配结净)",required=false)
+    @ApiModelProperty(value="结净方式(1:正常结净;2:匹配结净;3:双委托洁净;4:混装洁净;5:混卸洁净)",required=false)
     private String netMode;
 
     /**
-     * 状态(0=作废,1=有效-未发布,2=有效-已发布,3=未匹配委托 )(VALUE_FLAG,VARCHAR,1)
+     * 状态(0=作废,1=有效-未发布,2=有效-已发布)(VALUE_FLAG,VARCHAR,1)
      */
-    @ApiModelProperty(value="状态(0=作废,1=有效-未发布,2=有效-已发布,3=未匹配委托 )",required=false)
+    @ApiModelProperty(value="状态(0=作废,1=有效-未发布,2=有效-已发布)",required=false)
     private String valueFlag;
 
     /**
@@ -681,6 +681,24 @@ public class MeterWorkCarActual implements IBasePO<String> {
     @ApiModelProperty(value="是否生成电子磅单标识(0:未生成, 1:已生成)",required=false)
     private String isBoundList;
 
+    /**
+     * 电子签章系统合同ID(CONTRACT_ID,VARCHAR,50)
+     */
+    @ApiModelProperty(value="电子签章系统合同ID",required=false)
+    private String contractId;
+
+    /**
+     * 是否已从电子签章系统下载电子磅单(IS_BOUND_LIST_DOWNLOADED,VARCHAR,1)
+     */
+    @ApiModelProperty(value="是否已从电子签章系统下载电子磅单",required=false)
+    private String isBoundListDownloaded;
+
+    /**
+     * 电子签章系统合同文档ID(DOCUMENT_ID,VARCHAR,50)
+     */
+    @ApiModelProperty(value="电子签章系统合同文档ID",required=false)
+    private String documentId;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -1589,6 +1607,30 @@ public class MeterWorkCarActual implements IBasePO<String> {
         this.isBoundList = isBoundList == null ? null : isBoundList.trim();
     }
 
+    public String getContractId() {
+        return contractId;
+    }
+
+    public void setContractId(String contractId) {
+        this.contractId = contractId == null ? null : contractId.trim();
+    }
+
+    public String getIsBoundListDownloaded() {
+        return isBoundListDownloaded;
+    }
+
+    public void setIsBoundListDownloaded(String isBoundListDownloaded) {
+        this.isBoundListDownloaded = isBoundListDownloaded == null ? null : isBoundListDownloaded.trim();
+    }
+
+    public String getDocumentId() {
+        return documentId;
+    }
+
+    public void setDocumentId(String documentId) {
+        this.documentId = documentId == null ? null : documentId.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -1707,6 +1749,9 @@ public class MeterWorkCarActual implements IBasePO<String> {
         sb.append(", isPreScale=").append(isPreScale);
         sb.append(", boundListUrl=").append(boundListUrl);
         sb.append(", isBoundList=").append(isBoundList);
+        sb.append(", contractId=").append(contractId);
+        sb.append(", isBoundListDownloaded=").append(isBoundListDownloaded);
+        sb.append(", documentId=").append(documentId);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 116 - 291
src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/impl/MeterWorkCarActualServiceImpl.java

@@ -598,325 +598,145 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
         rm.setFailed();
         rm.setData(null);
         rm.setCode("500");
+
         String type = params.get("type") == null ? "" : params.get("type").toString();
         MeterWorkCarActual actualModel01 = meterWorkCarActualMapper.selectByPrimaryKey(params.get("actualNo01").toString());
         MeterWorkCarActual actualModel02 = meterWorkCarActualMapper.selectByPrimaryKey(params.get("actualNo02").toString());
         if(actualModel01 == null || actualModel02 == null){
-            rm.setMessage("未找到一次计量数据,请确认!!!");
+            rm.setMessage("未找到洁净计量数据,请确认!!!");
             return rm;
         }
-        List<MeterWorkCarActual> models = new ArrayList<MeterWorkCarActual>();
+        List<MeterWorkCarActual> models = new ArrayList<>();
         models.add(actualModel01);
         models.add(actualModel02);
-
-        if(models == null || models.size() == 0) {
-            rm.setMessage("参数为空,请确认!!!");
-            return rm;
-        }
-        //models必须是2个,而且他们的预报组合号一致
-        if(models.size() != 2 && models.get(0).getPredictionCombination().equals(models.get(1).getPredictionCombination())){
+        if(!models.get(0).getPredictionCombination().equals(models.get(1).getPredictionCombination())){
             rm.setMessage("必须选择两个预报组合号一致的洁净数据!!!");
             return rm;
         }
-
+        for(MeterWorkCarActual modelTemp: models) {
+            PreTrackScale scaleTemp = preTrackScaleMapper.selectByPrimaryKey(modelTemp.getPredictionNo());
+            if(scaleTemp.getValueFlag().equals("9")) {
+                rm.setMessage("两个洁净数据中包含已结算的委托!!!");
+                return rm;
+            }
+        }
         switch(type){
-            case "5": {
-                //类型为双委托类型
-                for (MeterWorkCarActual model: models) {
-                    if(!model.getPredictionType().equals("5")) {
-                           rm.setMessage("选中的计量数据当中有一条或多条不是双委托洁净数据,请确认!!");
-                           return rm;
-                    }
-                }
-                for (MeterWorkCarActual model: models) {
-                    //循环每一个洁净记录
-                    //判断委托是否为双委托组合的第二个委托,是:删除一次数据和洁净记录、否:修改一次记录、
-                    String combination = model.getPredictionCombination();
-                    String[] param = combination.split(",");
-
-                    if(model.getPredictionNo().equals(param[1])){
-                        // 改委托
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("双委托解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
-                        }
-                        // 删一次
-                        MeterWorkCarActualFirst firstGross = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        MeterWorkCarActualFirst firstTare = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        if(firstGross.getPredictionNo().equals(model.getPredictionNo())){
-                            firstGross.setValueFlag(DbConstants.VALID);
-                            firstGross.setNote(model.getNote());
-                            firstGross.setUpdateManName("system");
-                            firstGross.setUpdateManName("双委托解除更新");
-                            firstGross.setUpdateTime(new Date());
-                            firstGross.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstGross);
-                        }
-                        if(firstTare.getPredictionNo().equals(model.getPredictionNo())){
-                            firstTare.setValueFlag(DbConstants.VALID);
-                            firstTare.setNote(model.getNote());
-                            firstTare.setUpdateManName("system");
-                            firstTare.setUpdateManName("双委托解除更新");
-                            firstTare.setUpdateTime(new Date());
-                            firstTare.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstTare);
-                        }
-
-                        // 删洁净
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
-                    }
-                    else {
-                        // 清空毛重数据中的委托信息
-                        MeterWorkCarActualFirst mwcafg = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        if (mwcafg == null) {
-                            rm.setMessage("未查询到相应的毛重数据!!");
-                            return rm;
-                        }
-                        mwcafg.setValueFlag(DbConstants.VALID);
-                        mwcafg.setNote(model.getNote());
-                        mwcafg.setUpdateManName("system");
-                        mwcafg.setUpdateManName("双委托解除更新");
-                        mwcafg.setUpdateTime(new Date());
-                        mwcafg.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcafg);
-                        //皮重
-                        MeterWorkCarActualFirst mwcaft = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        if (mwcaft == null) {
-                            rm.setMessage("未查询到相应的皮重数据!!");
+            case "5":
+            case "6":
+            case "7": {
+                if(type.equals("5")){
+                    //类型为双委托类型
+                    for (MeterWorkCarActual model: models) {
+                        if(!model.getPredictionType().equals("5")) {
+                            rm.setMessage("选中的计量数据当中有一条或多条不是双委托洁净数据,请确认!!");
                             return rm;
                         }
-                        mwcaft.setValueFlag(DbConstants.VALID);
-                        mwcaft.setUpdateManName("system");
-                        mwcaft.setUpdateManName("双委托解除更新");
-                        mwcaft.setNote(model.getNote());
-                        mwcaft.setUpdateTime(new Date());
-                        mwcaft.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaft);
-                        //修改预报
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("双委托解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
-                        }
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
-                    }
-                }
-                rm.setSucceed();
-                rm.setMessage("操作成功!!");
-                rm.setCode("200");
-            }
-            break;
-            case "6": {         //类型为混卸类型
-                for (MeterWorkCarActual model: models) {
-                    if(!model.getPredictionType().equals("6")) {
-                        rm.setMessage("选中的计量数据当中有一条或多条不是混卸委托洁净数据,请确认!!");
                     }
-                }
-                for (MeterWorkCarActual model: models) {
-                    //循环每一个洁净记录
-                    //判断委托是否为双委托组合的第二个委托,是:删除一次数据和洁净记录、否:修改一次记录、
-                    String combination = model.getPredictionCombination();
-                    String[] param = combination.split(",");
-
-                    if(model.getPredictionNo().equals(param[1])){
-                        // 改委托
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("混卸解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
-                        }
-                        // 删一次毛重、清空一次皮重委托信息
-                        MeterWorkCarActualFirst firstTare = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        MeterWorkCarActualFirst firstGross = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        if(firstTare.getPredictionNo().equals(model.getPredictionNo())){
-                            firstTare.setValueFlag(DbConstants.VALID);
-                            firstTare.setUpdateManName("system");
-                            firstTare.setUpdateManName("混卸解除更新");
-                            firstTare.setNote(model.getNote());
-                            firstTare.setUpdateTime(new Date());
-                            firstTare.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstTare);
-                        }
-                        if(firstGross != null){
-                            firstGross.setValueFlag(DbConstants.VALID);
-                            firstGross.setUpdateManName("system");
-                            firstGross.setUpdateManName("混卸解除更新");
-                            firstGross.setNote(model.getNote());
-                            firstGross.setUpdateTime(new Date());
-                            firstGross.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstGross);
+                } else if(type.equals("6")){
+                    //类型为混卸类型
+                    for (MeterWorkCarActual model: models) {
+                        if(!model.getPredictionType().equals("6")) {
+                            rm.setMessage("选中的计量数据当中有一条或多条不是混卸委托洁净数据,请确认!!");
                         }
-                        // 删洁净
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
                     }
-                    else {
-                        // 清空毛重数据中的委托信息
-                        MeterWorkCarActualFirst mwcafg = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        if (mwcafg == null) {
-                            rm.setMessage("未查询到相应的毛重数据!!");
-                            return rm;
-                        }
-                        mwcafg.setValueFlag(DbConstants.VALID);
-                        mwcafg.setNote(model.getNote());
-                        mwcafg.setUpdateManName("system");
-                        mwcafg.setUpdateManName("混卸解除更新");
-                        mwcafg.setUpdateTime(new Date());
-                        mwcafg.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcafg);
-                        //皮重
-                        MeterWorkCarActualFirst mwcaft = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        if (mwcaft == null) {
-                            rm.setMessage("未查询到相应的皮重数据!!");
-                            return rm;
-                        }
-                        mwcaft.setValueFlag(DbConstants.VALID);
-                        mwcaft.setUpdateManName("system");
-                        mwcaft.setUpdateManName("混卸解除更新");
-                        mwcaft.setNote(model.getNote());
-                        mwcaft.setUpdateTime(new Date());
-                        mwcaft.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaft);
-                        //修改预报
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("混卸解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
+                }else if(type.equals("7")){
+                    //类型为混装类型
+                    for (MeterWorkCarActual model: models) {
+                        if(!model.getPredictionType().equals("7")) {
+                            rm.setMessage("选中的计量数据当中有一条或多条不是混装委托洁净数据,请确认!!");
                         }
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
                     }
                 }
-                rm.setSucceed();
-                rm.setMessage("操作成功!!");
-                rm.setCode("200");
-            }
-            break;
-            case "7": {         //类型为混装类型
                 for (MeterWorkCarActual model: models) {
-                    if(!model.getPredictionType().equals("7")) {
-                        rm.setMessage("选中的计量数据当中有一条或多条不是混装委托洁净数据,请确认!!");
+                    // 改委托
+                    if (StringUtils.isNotEmpty(model.getPredictionNo())) {
+                        removeScaleEl(model.getPredictionNo());
                     }
-                }
-                for (MeterWorkCarActual model: models) {
-                    //循环每一个洁净记录
-                    //判断委托是否为双委托组合的第二个委托,是:删除一次数据和洁净记录、否:修改一次记录、
-                    String combination = model.getPredictionCombination();
-                    String[] param = combination.split(",");
-
-                    if(model.getPredictionNo().equals(param[1])){
-                        // 改委托
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("混装解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
-                        }
-                        // 删一次毛重、清空一次皮重委托信息
-                        MeterWorkCarActualFirst firstGross = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        MeterWorkCarActualFirst firstTare = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        if(firstTare.getPredictionNo().equals(model.getPredictionNo())){
-                            //meterWorkCarActualFirstMapper.deleteByPrimaryKey(model.getActualFirst2No());
-                            firstTare.setValueFlag(DbConstants.VALID);
-                            firstTare.setUpdateManName("system");
-                            firstTare.setUpdateManName("混装解除更新");
-                            firstTare.setNote(model.getNote());
-                            firstTare.setUpdateTime(new Date());
-                            firstTare.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstTare);
-                        }
-                        if(firstGross != null){
-                            firstGross.setValueFlag(DbConstants.VALID);
-                            firstGross.setUpdateManName("system");
-                            firstGross.setUpdateManName("混装解除更新");
-                            firstGross.setNote(model.getNote());
-                            firstGross.setUpdateTime(new Date());
-                            firstGross.setIsPreScale("0");
-                            meterWorkCarActualFirstMapper.updateByPrimaryKey(firstGross);
-                        }
-                        // 删洁净
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
-//                        meterWorkCarActualMapper.deleteByPrimaryKey(model.getActualNo());
+                    // 清空一次毛皮重委托信息
+                    MeterWorkCarActualFirst firstGross = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
+                    MeterWorkCarActualFirst firstTare = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
+                    if(firstGross != null){
+                        removeFirstEl(firstGross);
+                        meterWorkCarActualFirstMapper.updateByPrimaryKey(firstGross);
                     }
-                    else {
-                        // 清空毛重数据中的委托信息
-                        MeterWorkCarActualFirst mwcafg = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst1No());
-                        if (mwcafg == null) {
-                            rm.setMessage("未查询到相应的毛重数据!!");
-                            return rm;
-                        }
-                        mwcafg.setValueFlag(DbConstants.VALID);
-                        mwcafg.setNote(model.getNote());
-                        mwcafg.setUpdateManName("system");
-                        mwcafg.setUpdateManName("混装解除更新");
-                        mwcafg.setUpdateTime(new Date());
-                        mwcafg.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcafg);
-                        //皮重
-                        MeterWorkCarActualFirst mwcaft = meterWorkCarActualFirstMapper.selectAndRemove(model.getActualFirst2No());
-                        if (mwcaft == null) {
-                            rm.setMessage("未查询到相应的皮重数据!!");
-                            return rm;
-                        }
-                        mwcaft.setValueFlag(DbConstants.VALID);
-                        mwcaft.setUpdateManName("system");
-                        mwcaft.setUpdateManName("混装解除更新");
-                        mwcaft.setNote(model.getNote());
-                        mwcaft.setUpdateTime(new Date());
-                        mwcaft.setIsPreScale("0");
-                        meterWorkCarActualFirstMapper.updateByPrimaryKey(mwcaft);
-                        //修改预报
-                        if (StringUtils.isNotEmpty(model.getPredictionNo())) {
-                            PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
-                            scale.setValueFlag("1");
-                            scale.setUploadFlag("1");
-                            scale.setUpdateTime(new Date());
-                            scale.setUpdateManNo("system");
-                            scale.setUpdateManName("混装解除操作");
-                            preTrackScaleMapper.updateByPrimaryKeySelective(scale);
-                        }
-                        model.setUploadFlag("1");
-                        model.setValueFlag("0");
-                        meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
-//                      meterWorkCarActualMapper.deleteByPrimaryKey(model.getActualNo());
+                    if(firstTare != null){
+                        removeFirstEl(firstTare);
+                        meterWorkCarActualFirstMapper.updateByPrimaryKey(firstTare);
                     }
+                    removeEl(model);
+                    meterWorkCarActualMapper.updateByPrimaryKeySelective(model);
                 }
                 rm.setSucceed();
                 rm.setMessage("操作成功!!");
                 rm.setCode("200");
             }
-            break;
         }
         return rm;
     }
+    //还原委托
+    public void removeScaleEl(String predictionNo){
+        String userId;
+        String userName;
+        try{
+            UserPayload payload = UserPayload.getCurrUser();
+            userId = payload.getId();
+            userName = payload.getUserName();
+        }catch(Exception e) {
+            userId = "admin";
+            userName = "admins";
+        }
+        PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(predictionNo);
+        scale.setValueFlag("1");
+        scale.setUploadFlag("1");
+        scale.setUpdateTime(new Date());
+        scale.setUpdateManNo(userId);
+        scale.setUpdateManName(userName);
+        preTrackScaleMapper.updateByPrimaryKeySelective(scale);
+    }
+
+    //还原一次
+    public void removeFirstEl(MeterWorkCarActualFirst model) {
+        String userId;
+        String userName;
+        try{
+            UserPayload payload = UserPayload.getCurrUser();
+            userId = payload.getId();
+            userName = payload.getUserName();
+        }catch(Exception e) {
+            userId = "admin";
+            userName = "admins";
+        }
+        model.setValueFlag("0");
+        model.setUpdateManName(userId);
+        model.setUpdateManName(userName);
+        model.setUpdateTime(new Date());
+        model.setIsPreScale("0");
+    }
+
+    //还原洁净
+    public void removeEl(MeterWorkCarActual model) {
+        String userId;
+        String userName;
+        try{
+            UserPayload payload = UserPayload.getCurrUser();
+            userId = payload.getId();
+            userName = payload.getUserName();
+        }catch(Exception e) {
+            userId = "admin";
+            userName = "admins";
+        }
+        model.setUpdateManNo(userId);
+        model.setUpdateManName(userName);
+        model.setUpdateTime(new Date());
+        model.setUploadFlag("1");
+        model.setIsPreScale("0");
+        model.setValueFlag("0");
+        model.setIsBoundList("0");
+        model.setBoundListUrl("");
+        model.setContractNo("");
+        model.setIsBoundListDownloaded("0");
+        model.setDocumentId("");
+    }
 
     @Override
     public RESTfulResult commonRemove(HashMap params) {
@@ -926,17 +746,22 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
         rm.setCode("500");
 
         try{
+
+
             MeterWorkCarActual actualModel = meterWorkCarActualMapper.selectByPrimaryKey(params.get("actualNo").toString());
             if(actualModel == null){
-                rm.setMessage("未找到一次计量数据,请确认!!!");
+                rm.setMessage("未找到洁净计量数据,请确认!!!");
                 return rm;
             }
             List<MeterWorkCarActual> models = new ArrayList<MeterWorkCarActual>();
             models.add(actualModel);
 
-            if(models == null || models.size() == 0) {
-                rm.setMessage("参数为空,请确认!!!");
-                return rm;
+            for(MeterWorkCarActual modelTemp: models) {
+                PreTrackScale scaleTemp = preTrackScaleMapper.selectByPrimaryKey(modelTemp.getPredictionNo());
+                if(scaleTemp.getValueFlag().equals("9")) {
+                    rm.setMessage("洁净数据中包含已结算的委托!!!");
+                    return rm;
+                }
             }
             for (MeterWorkCarActual model: models) {
                 //循环每一个洁净记录