liyg 2 年之前
父節點
當前提交
5bf0f51796

+ 25 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -787,6 +787,31 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         }
     }
 
+    @ApiModelProperty(value = "钢材继续装派单")
+    @PostMapping("/continueSteelOrder")
+    public RESTfulResult continueSteelOrder(@RequestBody List<Map<String,Object>> mapList) throws Exception {
+        int result;
+        try {
+            result = amsSaleOrderService.continueSteelOrder(mapList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(e.getMessage());
+        }
+        // 调用EAS接口将车牌号传给金蝶
+        Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
+        Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
+        totalMap.put("input",input);
+        System.out.println(totalMap);
+        String json = JSONUtils.toJSONString(totalMap);
+        System.out.println(json);
+        Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+        if (s == null || s.size() == 0) {
+            throw new Exception("登录金蝶失败");
+        }
+        System.out.println(s);
+        return success(result);
+    }
+
     @ApiModelProperty(value = "根据详细地址匹配承运商")
     @GetMapping("/getCarrierByPlace")
     public RESTfulResult getCarrierByPlace(@RequestParam Integer placeId) {

+ 4 - 0
src/main/java/com/steerinfo/dil/feign/TmsTruckFeign.java

@@ -19,6 +19,10 @@ public interface TmsTruckFeign {
     @PostMapping("api/v1/truckTms/tmstrucktotalresults/addTotalResult")
     Integer addTotalResult(@RequestBody(required = false) Map<String, Object> map);
 
+    //补录实绩
+    @PostMapping("api/v1/truckTms/tmstrucktotalresults/copyAllResult")
+    Integer copyAllResult(@RequestBody(required = false) Map<String, Object> map);
+
     //生成进厂作业实绩: 总实绩Id
     @PostMapping("api/v1/truckTms/tmstruckenfactoryresults/addEnFactoryResult")
     RESTfulResult addEnFactoryResult(@RequestBody(required = false) Map<String, Object> mapValue);

+ 41 - 10
src/main/java/com/steerinfo/dil/model/AmsSaleOrderMaterial.java

@@ -118,18 +118,22 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
     private String truckRemark;
 
     /**
-    * 收货地址ID(用来存储多个地址ID)(SHIPPING_ADDRESS_IDS)
-    */
-    @ApiModelProperty(value = "收货地址ID(用来存储多个地址ID)",required = false)
-    private String shippingAddressIds;
+     * 质保书份数(WARRANTY_NUMBER,DECIMAL,0)
+     */
+    @ApiModelProperty(value="质保书份数",required=false)
+    private BigDecimal warrantyNumber;
 
-    public String getShippingAddressIds() {
-        return shippingAddressIds;
-    }
+    /**
+     * 收货地址ID(用来存储多个地址ID)(SHIPPING_ADDRESS_IDS,VARCHAR,20)
+     */
+    @ApiModelProperty(value="收货地址ID(用来存储多个地址ID)",required=false)
+    private String shippingAddressIds;
 
-    public void setShippingAddressIds(String shippingAddressIds) {
-        this.shippingAddressIds = shippingAddressIds;
-    }
+    /**
+     * 上一个运单号(PREVIOUS_ORDER_NUMBER,VARCHAR,30)
+     */
+    @ApiModelProperty(value="上一个运单号",required=false)
+    private String previousOrderNumber;
 
     private static final long serialVersionUID = 1L;
 
@@ -287,6 +291,30 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
         this.truckRemark = truckRemark == null ? null : truckRemark.trim();
     }
 
+    public BigDecimal getWarrantyNumber() {
+        return warrantyNumber;
+    }
+
+    public void setWarrantyNumber(BigDecimal warrantyNumber) {
+        this.warrantyNumber = warrantyNumber;
+    }
+
+    public String getShippingAddressIds() {
+        return shippingAddressIds;
+    }
+
+    public void setShippingAddressIds(String shippingAddressIds) {
+        this.shippingAddressIds = shippingAddressIds == null ? null : shippingAddressIds.trim();
+    }
+
+    public String getPreviousOrderNumber() {
+        return previousOrderNumber;
+    }
+
+    public void setPreviousOrderNumber(String previousOrderNumber) {
+        this.previousOrderNumber = previousOrderNumber == null ? null : previousOrderNumber.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -311,6 +339,9 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
         sb.append(", steelReceiptDate=").append(steelReceiptDate);
         sb.append(", priceId=").append(priceId);
         sb.append(", truckRemark=").append(truckRemark);
+        sb.append(", warrantyNumber=").append(warrantyNumber);
+        sb.append(", shippingAddressIds=").append(shippingAddressIds);
+        sb.append(", previousOrderNumber=").append(previousOrderNumber);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 3 - 0
src/main/java/com/steerinfo/dil/service/IAmsSaleOrderService.java

@@ -104,6 +104,9 @@ public interface IAmsSaleOrderService {
     // 钢材派发运输订单
     int dispatchSteelOrder(List<Map<String, Object>> mapList) throws Exception;
 
+    // 钢材继续装派单
+    int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception;
+
     // 根据详细地址id匹配承运商
     List<Map<String,Object>> getCarrierByPlace(BigDecimal placeId);
 

+ 108 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1010,6 +1010,114 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return  result;
     }
 
+    @Override
+    public int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception {
+        int result = 0;
+        // 遍历每一行
+        for (Map<String,Object> map : mapList) {
+            List<OmstruckOrder> orders=omstruckOrderMapper.selectByParameters(map);
+            if(orders==null || orders.size()<=0){
+                throw new Exception("没有对应的运输订单");
+            }
+            OmstruckOrder omstruckOrder=orders.get(0);
+            // 得到车序号表主键
+            BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
+            // 得到承运商
+            BigDecimal carrierId = omstruckOrder.getCarrierId();
+            //查询车序号表物资
+            List<Map<String, Object>> materialList = amsSaleOrderMaterialMapper.getMaterial(saleOrderMaterialId);
+            if(materialList==null||materialList.size()<=0){
+                throw new Exception("车序号没有剩余物资");
+            }
+            // 程序根据剩余多少拼生成运输线路id 110001 到 110010(单拼到十拼)
+            BigDecimal lineId = DataChange.dataToBigDecimal(110000+materialList.size());
+            /*
+             定向派单表
+             */
+            // 通过车序号主键确认定向派单是否已存在
+            BigDecimal dispatchId0 = amsDispatchSaleOrderMapper.isDispatchExist(saleOrderMaterialId);
+            if (dispatchId0 == null || dispatchId0.toString().length() == 0) {
+                AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+                // 主键
+                BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
+                amsDispatchSaleOrder.setDispatchId(dispatchId);
+                // 车序号表id
+                amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
+                // 承运商id
+                amsDispatchSaleOrder.setCarrierId(carrierId);
+                // 派单时间和成交时间
+                amsDispatchSaleOrder.setDispatchTime(new Date());
+                amsDispatchSaleOrder.setDispatchDealTime(new Date());
+                // 成交类型
+                amsDispatchSaleOrder.setDispatchType(new BigDecimal(2));
+                // 车序号状态
+                amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
+                result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
+            }
+            // 如果已经匹配过承运商或者给某个承运商授权过,则派车时做修改承运商操作
+            else {
+                AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId0);
+                amsDispatchSaleOrder.setCarrierId(carrierId);
+                result += amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
+            }
+            /*
+             运输订单
+             */
+            // 运输订单主键
+            BigDecimal orderId = omstruckOrderMapper.selectMaxId();
+            omstruckOrder.setOrderId(orderId);
+            // 车序号主键
+            omstruckOrder.setOrderPlanId(saleOrderMaterialId);
+            // 是否可作业
+            omstruckOrder.setCanWork(new BigDecimal(0));
+            // 下发时间
+            omstruckOrder.setOrderIssueTime(new Date());
+            // 运单状态
+            if(omstruckOrder.getOrderReceiveRefuseTime()!=null){
+                omstruckOrder.setOrderStatus(new BigDecimal(7));
+            }else{
+                omstruckOrder.setOrderStatus(new BigDecimal(4));
+            }
+            //路段顺序号
+            //omstruckOrder.setOrderLineSequence(new BigDecimal(2));
+            // 运输线路id
+            omstruckOrder.setLineId(lineId);
+            omstruckOrder.setInsertTime(new Date());
+            omstruckOrder.setInsertUsername("continue");
+            result += omstruckOrderMapper.insertSelective(omstruckOrder);
+            for (Map<String, Object> materialMap : materialList) {
+                BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
+                BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
+                BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
+                /*
+                运输订单物资子表
+                */
+                OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
+                // 主键
+                BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
+                omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
+                // 运输订单id
+                omstruckOrderMaterial.setOrderId(omstruckOrder.getOrderId());
+                // 物资id
+                omstruckOrderMaterial.setMaterialId(materialId);
+                // 物资重量
+                omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
+                // 物资件数
+                omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+                // 新增运输订单子表
+                result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+            }
+            // 调用websocket
+            Map<String, Object> orderIdMap = new HashMap<>();
+            orderIdMap.put("orderId", omstruckOrder.getOrderId());
+            amsSaleOrderMaterialService.pushMesToWebsocket(orderIdMap);
+            orderIdMap.put("orderIdOld", map.get("orderId"));
+            orderIdMap.put("resultTotalIdOld",map.get("resultTotalId"));
+            // 生成所有实绩
+            result += tmsTruckFeign.copyAllResult(orderIdMap);
+        }
+        return  result;
+    }
     /**
      * 根据详细地址匹配承运商
      * @param placeId

+ 87 - 12
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -20,19 +20,23 @@
     <result column="STEEL_RECEIPT_DATE" jdbcType="TIMESTAMP" property="steelReceiptDate" />
     <result column="PRICE_ID" jdbcType="DECIMAL" property="priceId" />
     <result column="TRUCK_REMARK" jdbcType="VARCHAR" property="truckRemark" />
+    <result column="WARRANTY_NUMBER" jdbcType="DECIMAL" property="warrantyNumber" />
     <result column="SHIPPING_ADDRESS_IDS" jdbcType="VARCHAR" property="shippingAddressIds" />
+    <result column="PREVIOUS_ORDER_NUMBER" jdbcType="VARCHAR" property="previousOrderNumber" />
   </resultMap>
   <sql id="columns">
     SALE_ORDER_MATERIAL_ID, SALE_ORDER_ID, SALE_ORDER_MATERIAL_TRUCK_NO, SALE_SHIPPING_ADDRESS_ID,
     SALE_DATE_OF_RECEIPT, SALE_ORDER_CONSIGNEE, SALE_ORDER_CONSIGNEE_TEL, INSERT_USERNAME,
     INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, UPDATED,
-    ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID, TRUCK_REMARK ,SHIPPING_ADDRESS_IDS
+    ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID, TRUCK_REMARK, WARRANTY_NUMBER, SHIPPING_ADDRESS_IDS,
+    PREVIOUS_ORDER_NUMBER
   </sql>
   <sql id="columns_alias">
     t.SALE_ORDER_MATERIAL_ID, t.SALE_ORDER_ID, t.SALE_ORDER_MATERIAL_TRUCK_NO, t.SALE_SHIPPING_ADDRESS_ID,
     t.SALE_DATE_OF_RECEIPT, t.SALE_ORDER_CONSIGNEE, t.SALE_ORDER_CONSIGNEE_TEL, t.INSERT_USERNAME,
     t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED,
-    t.UPDATED, t.ISSUE_STATUS, t.STEEL_RECEIPT_DATE, t.PRICE_ID, t.TRUCK_REMARK,t.SHIPPING_ADDRESS_IDS
+    t.UPDATED, t.ISSUE_STATUS, t.STEEL_RECEIPT_DATE, t.PRICE_ID, t.TRUCK_REMARK, t.WARRANTY_NUMBER,
+    t.SHIPPING_ADDRESS_IDS, t.PREVIOUS_ORDER_NUMBER
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM AMS_SALE_ORDER_MATERIAL
@@ -96,6 +100,15 @@
       <if test="truckRemark != null and truckRemark != ''">
         and TRUCK_REMARK = #{truckRemark}
       </if>
+      <if test="warrantyNumber != null">
+        and WARRANTY_NUMBER = #{warrantyNumber}
+      </if>
+      <if test="shippingAddressIds != null and shippingAddressIds != ''">
+        and SHIPPING_ADDRESS_IDS = #{shippingAddressIds}
+      </if>
+      <if test="previousOrderNumber != null and previousOrderNumber != ''">
+        and PREVIOUS_ORDER_NUMBER = #{previousOrderNumber}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -154,9 +167,18 @@
       <if test="truckRemark != null and truckRemark != ''">
         and TRUCK_REMARK LIKE '%${truckRemark}%'
       </if>
+      <if test="warrantyNumber != null">
+        and WARRANTY_NUMBER = #{warrantyNumber}
+      </if>
+      <if test="shippingAddressIds != null and shippingAddressIds != ''">
+        and SHIPPING_ADDRESS_IDS LIKE '%${shippingAddressIds}%'
+      </if>
+      <if test="previousOrderNumber != null and previousOrderNumber != ''">
+        and PREVIOUS_ORDER_NUMBER LIKE '%${previousOrderNumber}%'
+      </if>
     </where>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
     delete from AMS_SALE_ORDER_MATERIAL
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </delete>
@@ -214,6 +236,15 @@
     <if test="truckRemark != null and truckRemark != ''">
       or TRUCK_REMARK = #{truckRemark}
     </if>
+    <if test="warrantyNumber != null">
+      or WARRANTY_NUMBER = #{warrantyNumber}
+    </if>
+    <if test="shippingAddressIds != null and shippingAddressIds != ''">
+      or SHIPPING_ADDRESS_IDS = #{shippingAddressIds}
+    </if>
+    <if test="previousOrderNumber != null and previousOrderNumber != ''">
+      or PREVIOUS_ORDER_NUMBER = #{previousOrderNumber}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
     insert into AMS_SALE_ORDER_MATERIAL (SALE_ORDER_MATERIAL_ID, SALE_ORDER_ID,
@@ -223,7 +254,8 @@
                                          INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME,
                                          INSERT_UPDATE_REMARK, DELETED, UPDATED,
                                          ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID,
-                                         TRUCK_REMARK)
+                                         TRUCK_REMARK, WARRANTY_NUMBER, SHIPPING_ADDRESS_IDS,
+                                         PREVIOUS_ORDER_NUMBER)
     values (#{saleOrderMaterialId,jdbcType=DECIMAL}, #{saleOrderId,jdbcType=DECIMAL},
             #{saleOrderMaterialTruckNo,jdbcType=DECIMAL}, #{saleShippingAddressId,jdbcType=DECIMAL},
             #{saleDateOfReceipt,jdbcType=TIMESTAMP}, #{saleOrderConsignee,jdbcType=VARCHAR},
@@ -231,7 +263,8 @@
             #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
             #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL}, #{updated,jdbcType=DECIMAL},
             #{issueStatus,jdbcType=DECIMAL}, #{steelReceiptDate,jdbcType=TIMESTAMP}, #{priceId,jdbcType=DECIMAL},
-            #{truckRemark,jdbcType=VARCHAR})
+            #{truckRemark,jdbcType=VARCHAR}, #{warrantyNumber,jdbcType=DECIMAL}, #{shippingAddressIds,jdbcType=VARCHAR},
+            #{previousOrderNumber,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
     insert into AMS_SALE_ORDER_MATERIAL
@@ -290,6 +323,15 @@
       <if test="truckRemark != null">
         TRUCK_REMARK,
       </if>
+      <if test="warrantyNumber != null">
+        WARRANTY_NUMBER,
+      </if>
+      <if test="shippingAddressIds != null">
+        SHIPPING_ADDRESS_IDS,
+      </if>
+      <if test="previousOrderNumber != null">
+        PREVIOUS_ORDER_NUMBER,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="saleOrderMaterialId != null">
@@ -346,6 +388,15 @@
       <if test="truckRemark != null">
         #{truckRemark,jdbcType=VARCHAR},
       </if>
+      <if test="warrantyNumber != null">
+        #{warrantyNumber,jdbcType=DECIMAL},
+      </if>
+      <if test="shippingAddressIds != null">
+        #{shippingAddressIds,jdbcType=VARCHAR},
+      </if>
+      <if test="previousOrderNumber != null">
+        #{previousOrderNumber,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
@@ -366,7 +417,10 @@
         ISSUE_STATUS = #{issueStatus,jdbcType=DECIMAL},
         STEEL_RECEIPT_DATE = #{steelReceiptDate,jdbcType=TIMESTAMP},
         PRICE_ID = #{priceId,jdbcType=DECIMAL},
-        TRUCK_REMARK = #{truckRemark,jdbcType=VARCHAR}
+        TRUCK_REMARK = #{truckRemark,jdbcType=VARCHAR},
+        WARRANTY_NUMBER = #{warrantyNumber,jdbcType=DECIMAL},
+        SHIPPING_ADDRESS_IDS = #{shippingAddressIds,jdbcType=VARCHAR},
+        PREVIOUS_ORDER_NUMBER = #{previousOrderNumber,jdbcType=VARCHAR}
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
@@ -423,13 +477,19 @@
       <if test="truckRemark != null">
         TRUCK_REMARK = #{truckRemark,jdbcType=VARCHAR},
       </if>
-      <if test="shippingAddressIds !=null">
-        SHIPPING_ADDRESS_IDS = #{shippingAddressIds,jdbcType=VARCHAR}
+      <if test="warrantyNumber != null">
+        WARRANTY_NUMBER = #{warrantyNumber,jdbcType=DECIMAL},
+      </if>
+      <if test="shippingAddressIds != null">
+        SHIPPING_ADDRESS_IDS = #{shippingAddressIds,jdbcType=VARCHAR},
+      </if>
+      <if test="previousOrderNumber != null">
+        PREVIOUS_ORDER_NUMBER = #{previousOrderNumber,jdbcType=VARCHAR},
       </if>
     </set>
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </update>
-  <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
     <include refid="select" />
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </select>
@@ -451,7 +511,9 @@
     UPDATE_USERNAME, UPDATE_TIME,
     INSERT_UPDATE_REMARK, DELETED,
     UPDATED, ISSUE_STATUS, STEEL_RECEIPT_DATE,
-    PRICE_ID, TRUCK_REMARK)
+    PRICE_ID, TRUCK_REMARK, WARRANTY_NUMBER,
+    SHIPPING_ADDRESS_IDS, PREVIOUS_ORDER_NUMBER
+    )
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.saleOrderMaterialId,jdbcType=DECIMAL},
@@ -462,7 +524,9 @@
     #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
     #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleted,jdbcType=DECIMAL},
     #{item.updated,jdbcType=DECIMAL}, #{item.issueStatus,jdbcType=DECIMAL}, #{item.steelReceiptDate,jdbcType=TIMESTAMP},
-    #{item.priceId,jdbcType=DECIMAL}, #{item.truckRemark,jdbcType=VARCHAR} from dual
+    #{item.priceId,jdbcType=DECIMAL}, #{item.truckRemark,jdbcType=VARCHAR}, #{item.warrantyNumber,jdbcType=DECIMAL},
+    #{item.shippingAddressIds,jdbcType=VARCHAR}, #{item.previousOrderNumber,jdbcType=VARCHAR}
+    from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -540,12 +604,23 @@
     <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
       when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.truckRemark,jdbcType=VARCHAR}
     </foreach>
+    ,WARRANTY_NUMBER=
+    <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
+      when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.warrantyNumber,jdbcType=DECIMAL}
+    </foreach>
+    ,SHIPPING_ADDRESS_IDS=
+    <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
+      when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.shippingAddressIds,jdbcType=VARCHAR}
+    </foreach>
+    ,PREVIOUS_ORDER_NUMBER=
+    <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
+      when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.previousOrderNumber,jdbcType=VARCHAR}
+    </foreach>
     where SALE_ORDER_MATERIAL_ID in
     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.saleOrderMaterialId,jdbcType=DECIMAL}
     </foreach>
   </update>
-
   <delete id="batchDelete" parameterType="java.util.List">
     delete from AMS_SALE_ORDER_MATERIAL
     where SALE_ORDER_MATERIAL_ID in