txf 3 years ago
parent
commit
5ab02ab2ef

+ 13 - 0
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -284,4 +284,17 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         return mapValue;
     }
 
+    @ApiOperation(value = "新增一个新的采购运输订单(一车多趟)")
+    @PostMapping("/addNewTransportOrder")
+    public RESTfulResult addNewTransportOrder(@RequestParam Integer orderId){
+        int i = omstruckOrderSeparateService.addNewTransportOrder(new BigDecimal(orderId));
+        return success(i);
+    }
+
+    @ApiOperation(value = "一键删除多个订单")
+    @PostMapping("/deleteOrders")
+    public RESTfulResult deleteOrders(@RequestBody (required = false) Map<String, Object> map){
+        int i = omstruckOrderSeparateService.deleteOrders(map);
+        return success(i);
+    }
 }

+ 10 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.java

@@ -27,4 +27,14 @@ public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMa
 
     //通过订单id或者订单号查询订单子表物资ID
     List<Map<String, Object>> getUnloadOrderMaterial(Map<String, Object> map);
+
+    //通过订单主键 查询所有物资子表信息 (仅限单拼)
+    OmstruckOrderMaterial selectByOrderIdPrimaryKey(BigDecimal orderId);
+
+    //批量删除物资子表
+    Integer batchByOrderIdDelete(List<BigDecimal> list);
+
+    //批量删除总实绩表
+    Integer batchByOrderIdForTotalDelete(List<BigDecimal> list);
+
 }

+ 2 - 1
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.java

@@ -99,7 +99,8 @@ public interface OmstruckOrderSeparateMapper {
     // 查询销售焦炭的最大车序号
     List<Map<String, Object>> getMaxTruckNo(BigDecimal saleOrderId);
 
-
+    //修改采购订单是否为一车多趟
+    int updateAPOisMoreTrips(BigDecimal purchaseOrderId);
 //    int updateTimes(@Param("orderPlanId") BigDecimal orderPlanId, @Param("times")int times);
 
 }

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

@@ -32,4 +32,7 @@ public interface IOmstruckOrderSeparateService {
 
     // 根据运单id查询出所有销售数据
     Map<String, Object> getSaleAllMessages(BigDecimal orderId);
+
+    //新增一个新的采购运输订单(一车多趟)
+    int addNewTransportOrder(BigDecimal orderId);
 }

+ 85 - 0
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.service.impl;
 
+import com.fasterxml.jackson.databind.ObjectReader;
 import com.steerinfo.dil.feign.IMFeign;
 import com.steerinfo.dil.feign.TmsTruckFeign;
 import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
@@ -450,4 +451,88 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         mapValue.put("mapList",mapList);
         return mapValue;
     }
+
+    /**
+     * 新增一个新的运输订单(一车多趟)
+     * @Author TXF
+     * @Date 2022/1/14 21:10
+     * @param orderId
+     * @return
+     **/
+
+    public int addNewTransportOrder(BigDecimal orderId){
+        //根据运输订单ID查询 订单信息
+        OmstruckOrder omstruckOrder = omstruckOrderMapper.selectByPrimaryKey(orderId);
+        BigDecimal newOrderId = updateTruckOrder(omstruckOrder);
+        omstruckOrderMapper.insertSelective(omstruckOrder);
+        //通过订单ID查询物资子表信息
+        OmstruckOrderMaterial omstruckOrderMaterial = omstruckOrderMaterialMapper.selectByOrderIdPrimaryKey(orderId);
+        //更新物资子表中的订单ID
+        omstruckOrderMaterial.setOrderId(newOrderId);
+        updateTruckOrderMaterial(omstruckOrderMaterial);
+        omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+        //远程调用新增新的总实绩ID
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderId", newOrderId);
+        tmsTruckFeign.addTotalResult(map);
+        return 1;
+    }
+
+    /**
+     * 更新新订单信息 (一车多趟)
+     * @Author TXF
+     * @Date 2022/1/14 21:35
+     * @param omstruckOrder
+     * @return
+     **/
+    private BigDecimal updateTruckOrder(OmstruckOrder omstruckOrder){
+        //设置新的运输订单号和主键
+        BigDecimal newOrderId = omstruckOrderMapper.selectMaxId();
+        omstruckOrder.setOrderId(newOrderId);
+        omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD", newOrderId.intValue()));
+        //设置订单状态为已下发 司机未接收时间 路段顺序号 订单确认状态
+        omstruckOrder.setOrderStatus(new BigDecimal(4));
+        omstruckOrder.setOrderIssueTime(new Date());
+        omstruckOrder.setOrderLineSequence(null);
+        omstruckOrder.setOrderReceiveRefuseTime(null);
+        omstruckOrder.setDriverConfirmation(null);
+        //常规字段
+        omstruckOrder.setInsertTime(new Date());
+        omstruckOrder.setInsertUsername("admin");
+        omstruckOrder.setUpdateTime(null);
+        omstruckOrder.setUpdateUsername(null);
+        return newOrderId; //用于更新订单子表信息
+    }
+
+    /**
+     * 更新订单物资子表信息 (一车多趟)
+     * @Author TXF
+     * @Date 2022/1/14 21:40
+     * @param
+     * @return
+     **/
+    private void updateTruckOrderMaterial(OmstruckOrderMaterial omstruckOrderMaterial){
+        //更新主键 以及常规字段
+        omstruckOrderMaterial.setOrderMaterialId(omstruckOrderMaterialMapper.selectMaxId());
+        omstruckOrderMaterial.setInsertTime(new Date());
+        omstruckOrderMaterial.setInsertUsername("admin");
+        omstruckOrderMaterial.setUpdateTime(null);
+        omstruckOrderMaterial.setUpdateUsername(null);
+    }
+
+    /**
+     * 批量删除订单
+     * @Author TXF
+     * @Date 2022/1/14 23:51
+     * @param
+     * @return
+     **/
+    @Transactional
+    public int deleteOrders(Map<String, Object> map){
+        List<BigDecimal> orderIdList = (List<BigDecimal>) map.get("list");
+        omstruckOrderMapper.batchDelete(orderIdList);
+        omstruckOrderMaterialMapper.batchByOrderIdDelete(orderIdList);
+        omstruckOrderMaterialMapper.batchByOrderIdForTotalDelete(orderIdList);
+        return orderIdList.size();
+    }
 }

+ 10 - 2
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -139,6 +139,15 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         //从map中获取司机运力列表
         List<Map<String, Object>> driverCapacityIdList = (List<Map<String, Object>>) map.get("driverCapacityIdList");
         BigDecimal purchaseOrderId = DataChange.dataToBigDecimal(map.get("purchaseOrderId"));
+        //是否一车多趟 有则更新采购订单
+        Object isMoreTrips = map.get("isMoreTrips");
+        if(isMoreTrips != null){
+            boolean trips = (boolean) isMoreTrips;
+            if(trips){
+                //更新采购订单为一车多趟类型
+                omstruckOrderSeparateMapper.updateAPOisMoreTrips(DataChange.dataToBigDecimal(map.get("purchaseOrderId")));
+            }
+        }
         //物资ID
         Object materialId = map.get("materialId");
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderType"));
@@ -162,7 +171,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             tmsTruckFeign.addTotalResult(capacityMap);
             //更改运力状态
         }
-//        pushMesToWebsocket();
         return count;
     }
 
@@ -486,7 +494,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
 
     /**
      * 发送消息到 websocket 推送消息
-     * orderId  订单Id  (unloadPointId)卸货点Id
+     * orderId  订单Id
      * @return
      */
     public void pushMesToWebsocket(Map<String, Object> map) {

+ 5 - 5
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2771,7 +2771,7 @@
                            ON RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
         WHERE OO.ORDER_ID = #{orderId}
         <if test="status == null">
-            AND OO.ORDER_STATUS in (4, 5)
+            AND OO.ORDER_STATUS in (4, 5, 6)
         </if>
         <if test="status != null">
             AND OO.ORDER_STATUS = 2
@@ -2799,7 +2799,7 @@
                            ON RC2.CONSIGNEE_ID=ASO.RECEIVE_UNIT_ID
         WHERE OO.ORDER_ID = #{orderId}
         <if test="status == null">
-            AND OO.ORDER_STATUS in (4, 5)
+            AND OO.ORDER_STATUS in (4, 5, 6)
         </if>
         <if test="status != null">
             AND OO.ORDER_STATUS = 2
@@ -2834,7 +2834,7 @@
         ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
         <if test="status == null">
-            AND OO.ORDER_STATUS in (4, 5)
+            AND OO.ORDER_STATUS in (4, 5, 6)
         </if>
         <if test="status != null">
             AND OO.ORDER_STATUS = 2
@@ -2862,7 +2862,7 @@
                            ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
                 <if test="status == null">
-                    AND OO.ORDER_STATUS in (4, 5)
+                    AND OO.ORDER_STATUS in (4, 5, 6)
                 </if>
                 <if test="status != null">
                     AND OO.ORDER_STATUS = 2
@@ -2896,7 +2896,7 @@
                            ON RDA.ADDRESS_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
         WHERE OO.ORDER_ID = #{orderId}
           <if test="status == null">
-              AND OO.ORDER_STATUS in (4, 5)
+              AND OO.ORDER_STATUS in (4, 5, 6)
           </if>
           <if test="status != null">
               AND OO.ORDER_STATUS = 2

+ 24 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -400,4 +400,28 @@
 <!--    select twr.weight_task_result_id from omstruck_order oo join tmstruck_total_result ttr on oo.order_id=ttr.order_id-->
 <!--                                                            join tmstruck_weight_result twr on ttr.result_total_id=twr.result_total_id where oo.order_id =#{orderId}-->
 <!--  </select>-->
+
+<!-- 通过订单主键 查询所有物资子表信息 (仅限单拼)-->
+  <select id="selectByOrderIdPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+    <include refid="select"/>
+    where ORDER_ID = #{orderId,jdbcType=DECIMAL}
+  </select>
+
+<!-- 批量删除物资子表 -->
+  <delete id="batchByOrderIdDelete" parameterType="java.util.List">
+    delete from OMSTRUCK_ORDER_MATERIAL OOM
+    where OOM.ORDER_ID in
+    <foreach collection="list" item="id" open="(" close=")" separator=",">
+      #{id}
+    </foreach>
+  </delete>
+
+<!-- 批量删除总实绩 -->
+  <delete id="batchByOrderIdForTotalDelete" parameterType="java.util.List">
+    delete from TMSTRUCK_TOTAL_RESULT TTR
+    where TTR.ORDER_ID in
+    <foreach collection="list" item="id" open="(" close=")" separator=",">
+      #{id}
+    </foreach>
+  </delete>
 </mapper>

+ 8 - 1
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -57,7 +57,7 @@
         update AMSTRUCK_SPORADIC_ORDER  set SPORADIC_TRANS_TIMES =#{times}
         where sporadic_order_id= #{orderPlanId}
     </update>
-    
+
     <!-- 得到运单id -->
     <select id="getOrderIdByTotalId" parameterType="DECIMAL" resultType="DECIMAL">
         SELECT TTR.ORDER_ID AS "orderId"
@@ -574,4 +574,11 @@
                            ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
     </select>
+
+<!--  修改采购订单是否为一车多趟  -->
+    <update id="updateAPOisMoreTrips" parameterType="java.math.BigDecimal">
+        update AMS_PURCHASE_ORDER APO
+        set APO.IS_MORE_TRIPS = 1
+        where APO.PURCHASE_ORDER_ID = #{purchaseOrderId}
+    </update>
 </mapper>