Browse Source

'采购燃料辅料'

txf 3 năm trước cách đây
mục cha
commit
3f4612b46f

+ 3 - 1
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -1325,7 +1325,9 @@ OmstruckOrderController extends BaseRESTfulController {
         BigDecimal orderId = null;
         if(mapvalue.get("orderId") == null){
             //通过运输订单号查询运输订单Id
-            Integer id = omstruckOrderMapper.getOrderIdByOrderNumber((String) mapvalue.get("orderNumber"));
+            String orderNumber = (String) mapvalue.get("orderNumber");
+            String orderNumber1 = orderNumber.substring(0, orderNumber.length() - 1);
+            Integer id = omstruckOrderMapper.getOrderIdByOrderNumber(orderNumber1);
             orderId = new BigDecimal(id);
         }else {
             orderId = DataChange.dataToBigDecimal(mapvalue.get("orderId"));

+ 46 - 7
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -1,18 +1,17 @@
 package com.steerinfo.dil.controller;
 
 import com.steerinfo.dil.feign.TmsTruckFeign;
-import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
-import com.steerinfo.dil.model.OmstruckOrder;
+import com.steerinfo.dil.service.impl.OmstruckOrderSeparateServiceImpl;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.framework.controller.RESTfulResult;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,8 +23,9 @@ import java.util.Map;
 @RequestMapping("/${api.version}/omstruckorderseparates")
 public class OmstruckOrderSeparateController extends BaseRESTfulController {
 
+
     @Autowired
-    private OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
+    OmstruckOrderSeparateServiceImpl omstruckOrderSeparateService;
 
     @Autowired
     private TmsTruckFeign tmsTruckFeign;
@@ -35,4 +35,43 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         Integer integer = tmsTruckFeign.addTotalResult(map);
         return success(integer);
     }
+
+    /**
+     * 添加退货实绩关闭当前订单
+     * @param map
+     * @return
+     */
+    @PostMapping("/returnOrderCloseOrder")
+    public RESTfulResult returnOrderCloseOrder(@RequestBody(required = false) Map<String, Object> map){
+        Integer result = omstruckOrderSeparateService.returnOrderCloseOrder(map);
+        return success(result);
+    }
+
+    /**
+     * 根据运单id查询实绩位置
+     * @param map
+     * @return
+     */
+    @PostMapping("/getOrderResult")
+    public List<Map<String,Object>> getOrderResult(@RequestBody Map<String,Object> map){
+        Integer orderId = (Integer) map.get("orderId");
+        String orderNumber = (String) map.get("orderNumber");
+        List<Map<String, Object>> result = null;
+        if (orderId != null) {
+            result = omstruckOrderSeparateService.getOrderResult(new BigDecimal(orderId));
+        }
+        else {
+            result = omstruckOrderSeparateService.getOrderNumberResult(orderNumber);
+        }
+        return result;
+    }
+
+    /**
+     * 发送消息到 websocket 推送消息
+     * @param map
+     */
+    @PostMapping("/pushMesToWebsocket")
+    public void pushMesToWebsocket(@RequestBody Map<String,Object> map) {
+        omstruckOrderSeparateService.pushMesToWebsocket(map);
+    }
 }

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

@@ -38,6 +38,10 @@ public interface TmsTruckFeign {
     @PostMapping("api/v1/truckTms/tmstruckunloadresult/addUnloadResult")
     RESTfulResult addUnloadResult(@RequestBody(required = false) Map<String, Object> mapValue);
 
+    //生成退货实绩:总实绩ID
+    @PostMapping("api/v1/truckTms/tmstruckreturnresults/addReturnGoodsResult")
+    RESTfulResult addReturnGoodsResult(@RequestBody(required = false) Map<String, Object> mapValue);
+
     //生成装车实绩: 运输订单Id、物资Id
     @PostMapping("api/v1/truckTms/tmstruckloadresults/addLoadResult")
     RESTfulResult addLoadResult(@RequestBody(required = false) Map<String, Object> map);

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

@@ -15,7 +15,7 @@ import java.util.Map;
 @Mapper
 public interface OmstruckOrderSeparateMapper {
     //通过订单Id 查询关联的线路子表顺序
-    List<Map<String, Object>> getLineMesByOrderId(Integer orderId);
+    List<Map<String, Object>> getLineMesByOrderId(Integer lineId);
 
     //通过运输订单Id更改订单状态
     int updateOrderStatusByOrderNum(Map<String, Object> map);
@@ -23,5 +23,18 @@ public interface OmstruckOrderSeparateMapper {
     //通过运输订单Id查询订单所有信息
     Map<String, Object> getOmstruckOrderResult(BigDecimal orderId);
 
+    // 通过总实绩id得到运单id
+    BigDecimal getOrderIdByTotalId(BigDecimal reusltTotalId);
 
+    // 通过运单id查询运单信息
+    Map<String, Object> getOrderMessagge(BigDecimal orderId);
+
+    // 通过运单id查询路段名称
+    List<Map<String, Object>> getSegmentList(BigDecimal orderId);
+
+    // 通过运单id查询实绩点
+    Map<String, Object> getResultPointList(BigDecimal orderId);
+
+    // 通过运输订单号查询运单id
+    BigDecimal getOrderIdByOrderNumber(String orderNumber);
 }

+ 190 - 10
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -1,17 +1,20 @@
 package com.steerinfo.dil.service.impl;
 
+import com.steerinfo.dil.feign.IMFeign;
 import com.steerinfo.dil.feign.TmsTruckFeign;
 import com.steerinfo.dil.mapper.OmstruckOrderMapper;
+import com.steerinfo.dil.mapper.OmstruckOrderMaterialMapper;
 import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
 import com.steerinfo.dil.model.OmstruckOrder;
+import com.steerinfo.dil.model.OmstruckOrderMaterial;
 import com.steerinfo.dil.service.IOmstruckOrderSeparateService;
 import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 运输订单第二个 impl
@@ -34,11 +37,70 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
     @Autowired
     private TmsTruckFeign tmsTruckFeign;
 
+    @Autowired
+    OmstruckOrderMaterialMapper omstruckOrderMaterialMapper;
+
+    @Autowired
+    IMFeign imFeign;
+
     //通过线路子表路线图生成各实绩
     public int addAllSonResult(Integer resultTotalId, Integer lineId){
+        int result = 0;
         //通过订单Id 查询关联的线路子表顺序
-
-        return 0;
+        BigDecimal orderId = omstruckOrderSeparateMapper.getOrderIdByTotalId(new BigDecimal(resultTotalId));
+        List<Map<String, Object>> segmentList = omstruckOrderSeparateMapper.getLineMesByOrderId(lineId);
+        Map<String,Object> totalIdMap = new HashMap<>();
+        totalIdMap.put("resultTotalId",resultTotalId);
+        // 遍历路段顺序号子表
+        int count = 0;
+        BigDecimal lineType = (BigDecimal) segmentList.get(0).get("lineType");
+        if (lineType.intValue() == 4) {
+            count++;
+        }
+        for (Map<String,Object> segmentMap : segmentList) {
+            BigDecimal segmentSqe = (BigDecimal) segmentMap.get("segmentSqe");
+//            BigDecimal type = (BigDecimal) segmentMap.get("type");
+            String linkName = (String) segmentMap.get("linkName");
+            totalIdMap.put("segmentSqe",segmentSqe);
+            // 判断是否是计量
+            if (linkName.equals("计毛") || linkName.equals("计皮")) {
+                // 如果是计量则加一
+                count ++;
+                // 有两个计量的时候则新增实绩
+                if (count == 2) {
+                    tmsTruckFeign.addWeightResult(totalIdMap);
+                    // 新增一次则对计数器清零
+                    count = 0;
+                    result++;
+                }
+            }
+            // 进厂
+            if (linkName.equals("进厂")) {
+                tmsTruckFeign.addEnFactoryResult(totalIdMap);
+                result++;
+            }
+            // 出厂
+            if (linkName.equals("出厂")) {
+                tmsTruckFeign.addLeaveFactory(totalIdMap);
+                result++;
+            }
+            // 装货
+            if (linkName.equals("装货")) {
+                tmsTruckFeign.addLoadResult(totalIdMap);
+                result++;
+            }
+            // 卸货
+            if (linkName.equals("卸货")) {
+                tmsTruckFeign.addUnloadResult(totalIdMap);
+                result++;
+            }
+            // 退货
+            if (linkName.equals("退货")) {
+                tmsTruckFeign.addReturnGoodsResult(totalIdMap);
+                result++;
+            }
+        }
+        return result;
     }
 
 
@@ -51,26 +113,144 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         //通过运输订单ID关闭运输订单(修改状态为退货关闭:9)
         map.put("orderStatus", 9);
         int i = omstruckOrderSeparateMapper.updateOrderStatusByOrderNum(map);
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         //查询之前订单所有的信息
-        Map<String, Object> orderMap = omstruckOrderSeparateMapper.getOmstruckOrderResult(DataChange.dataToBigDecimal(map.get("orderId")));
+        Map<String, Object> orderMap = omstruckOrderSeparateMapper.getOmstruckOrderResult(orderId);
+        // 获得运单信息
+        Map<String,Object> orderMessaggeMap = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
         //添加新运输订单 运输订单号
         OmstruckOrder omstruckOrder = new OmstruckOrder();
         BigDecimal newOrderId = omstruckOrderMapper.selectMaxId();
+        // 卸货点
+        BigDecimal unloadPointId = (BigDecimal) orderMessaggeMap.get("unloadPointId");
         omstruckOrder.setOrderId(newOrderId);
-        omstruckOrder.setOrderType(DataChange.dataToBigDecimal(map.get("orderType")));
+        omstruckOrder.setOrderType(DataChange.dataToBigDecimal(orderMessaggeMap.get("orderType")));
         omstruckOrder.setLineId(DataChange.dataToBigDecimal(map.get("lineId")));
-        omstruckOrder.setOrderPlanId(DataChange.dataToBigDecimal(orderMap.get("orderPlanId")));
+        omstruckOrder.setOrderPlanId(DataChange.dataToBigDecimal(orderMessaggeMap.get("orderPlanId")));
         omstruckOrder.setOrderStatus(new BigDecimal(1)); //执行中
-        omstruckOrder.setCapacityId(DataChange.dataToBigDecimal(map.get("capacityId")));
-        omstruckOrder.setOrderNumber((String) map.get("orderNumber") + "-1");
+        omstruckOrder.setCapacityId(DataChange.dataToBigDecimal(orderMessaggeMap.get("capacityId")));
+        omstruckOrder.setOrderNumber(orderMessaggeMap.get("orderNumber") + "-1");
+        omstruckOrder.setOrderIssueTime(new Date());
+        omstruckOrder.setOrderReceiveRefuseTime(new Date());
+        omstruckOrder.setInsertTime(new Date());
+        omstruckOrder.setInsertUsername("admin");
+        omstruckOrder.setUnloadPointId(unloadPointId);
+        omstruckOrderMapper.insertSelective(omstruckOrder);
         //添加运输订单子表
         Map<String, Object> mesMap = new HashMap<>();
         mesMap.put("orderId", newOrderId);
         omstruckOrderService.addOrderMaterial(orderMap, newOrderId);
         //添加总实绩
         Integer totalId = tmsTruckFeign.addTotalResult(mesMap);
+        // 添加各种实绩
+        int result = addAllSonResult(totalId, (Integer) map.get("lineId"));
+        // 推送消息给司机
+        Map<String,Object> newMap = new HashMap<>();
+        newMap.put("orderId",orderId);
+        newMap.put("newOrderId",newOrderId);
+        pushMesToWebsocket(newMap);
+        return result;
+    }
+
+    /**
+     * 发送消息到 websocket 推送消息
+     * orderId  订单Id  (unloadPointId)卸货点Id
+     * @return
+     */
+    public void pushMesToWebsocket(Map<String, Object> map) {
+        Map<String, Object> mesMap = omstruckOrderMapper.pushMesToWebsocket(map);
+        BigDecimal newOrderId = (BigDecimal) map.get("newOrderId");
+        if (newOrderId != null) {
+            String orderNumber = (String) mesMap.get("orderNumber");
+            String newOrderNumber = orderNumber + "-1";
+            mesMap.remove("orderNumber");
+            mesMap.put("orderNumber",newOrderNumber);
+        }
+        //添加消息实体
+        HashMap<Object, Object> mapp = new HashMap<>();
+        mapp.put("messageType", 4);
+        mapp.put("sendPerson", "system");
+        mapp.put("receivePerson", mesMap.get("capacityNumber"));
+        mapp.put("messageContent", mesMap);
+        mapp.put("createTime", new Date());
+        ArrayList<Object> list = new ArrayList<>();
+        list.add(mapp);
+        //调用websocket接口推送
+        HashMap<Object, Object> sendMap = new HashMap<>();
+        //将消息实体放入list中存到map中
+        sendMap.put("messages", list);
+        String s = imFeign.sendToUser(sendMap);
+        System.out.println(s);
+    }
 
+    /**
+     * 通过运单id查询所有实绩点
+     * @param orderId
+     * @return
+     */
+    public List<Map<String,Object>> getOrderResult(BigDecimal orderId) {
+        List<Map<String,Object>> seqmentList = omstruckOrderSeparateMapper.getSegmentList(orderId);
+        Map<String,Object> resultPointList = omstruckOrderSeparateMapper.getResultPointList(orderId);
+        if (seqmentList != null) {
+        for (Map<String,Object> seqmentMap : seqmentList) {
+            String linkName = (String) seqmentMap.get("linkName");
+            if (resultPointList.size() != 0 && resultPointList != null) {
+                if (linkName.equals("进厂")) {
+                    String pointName = (String) resultPointList.get("gatepostNameEnter");
+                    Date pointDate = (Date) resultPointList.get("resultEntryGateTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("计毛")) {
+                    String pointName = (String) resultPointList.get("truckCalculateNumberM");
+                    Date pointDate = (Date) resultPointList.get("resultGrossWeightTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("卸货")) {
+                    String pointName = (String) resultPointList.get("warehouseNameUnLoad");
+                    Date pointDate = (Date) resultPointList.get("resultEndTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("计皮")) {
+                    String pointName = (String) resultPointList.get("truckCalculateNumberP");
+                    Date pointDate = (Date) resultPointList.get("resultTareWeightTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("装货")) {
+                    String pointName = (String) resultPointList.get("warehouseNameLoad");
+                    Date pointDate = (Date) resultPointList.get("resultLoadEndTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("出厂")) {
+                    String pointName = (String) resultPointList.get("gatepostNameLeave");
+                    Date pointDate = (Date) resultPointList.get("resultOutGateTime");
+                    seqmentMap.put("pointName", pointName);
+                    seqmentMap.put("pointDate", pointDate);
+                }
+                if (linkName.equals("退货")) {
+                    Date pointDate = (Date) resultPointList.get("returnTime");
+                    seqmentMap.put("pointDate", pointDate);
+                    seqmentMap.put("pointName", "");
+                }
+            }
+        }
+        }
+        return seqmentList;
+    }
 
-        return 0;
+    /**
+     * 通过运输订单号查询实绩位置
+     * @param orderNumber
+     * @return
+     */
+    public List<Map<String, Object>> getOrderNumberResult(String orderNumber) {
+        String substring = orderNumber.substring(0, orderNumber.length() - 1);
+        BigDecimal orderId = omstruckOrderSeparateMapper.getOrderIdByOrderNumber(substring);
+        List<Map<String, Object>> orderResult = getOrderResult(orderId);
+        return orderResult;
     }
 }

+ 9 - 1
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -936,7 +936,15 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      */
     @Override
     public List<Map<String, Object>> getTransportDispatch(Map<String, Object> map) {
-        return omstruckOrderMapper.getTransportDispatch(map);
+        List<Map<String, Object>> transportDispatch = omstruckOrderMapper.getTransportDispatch(map);
+        for (Map<String, Object> dispatch : transportDispatch) {
+            BigDecimal orderMaterialWeight = (BigDecimal) dispatch.get("orderMaterialWeight");
+            if(orderMaterialWeight==null){
+                BigDecimal orderMaterialNumber = (BigDecimal) dispatch.get("orderMaterialNumber");
+                dispatch.replace("orderMaterialWeight",orderMaterialNumber);
+            }
+        }
+        return transportDispatch;
     }
 
     /**

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

@@ -1253,7 +1253,7 @@
                RM.MATERIAL_NAME          "materialName",
                OO.ORDER_ENTRY_TIME       "orderEntryTime",
                OO.ORDER_TYPE             "orderType",
-               RW.WAREHOUSE_NAME        "warehouseName",
+               RW.WAREHOUSE_NAME         "warehouseName",
                OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
                OOM.ORDER_MATERIAL_WEIGHT "orderMaterialWeight"
         FROM OMSTRUCK_ORDER OO
@@ -1321,11 +1321,10 @@
         to_char(APO.PUCHASE_ORDER_DELIVERY_DATE, 'yyyy-mm-dd') "puchaseOrderDeliveryDate",
         RM.MATERIAL_NAME "materialName",
         OOM.ORDER_MATERIAL_WEIGHT "orderMaterialWeight",
+        OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
         OO.ORDER_ISSUE_TIME "orderIssueTime",
         OO.ORDER_RECEIVE_REFUSE_TIME "orderReceiveRefuseTime",
-        RC.CAPACITY_NUMBER "capacityNumber",
-        RCD.DRIVER_NAME "driverName"
-
+        RC.CAPACITY_NUMBER "capacityNumber"
         from OMSTRUCK_ORDER OO
         left join AMS_PURCHASE_ORDER APO
         on APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
@@ -1339,12 +1338,8 @@
         on RCON.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
         left join RMS_WAREHOUSE RW
         on RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
-        left join RMS_DRIVER_CAPACITY RDC
-        on RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
         left join RMS_CAPACITY RC
-        on RC.CAPACITY_ID = RDC.CAPACITY_ID
-        left join RMS_CAR_DRIVER RCD
-        on RCD.DRIVER_ID = RDC.DRIVER_ID
+        on RC.CAPACITY_ID = OO.CAPACITY_ID
         <where>
             <if test="orderStatus != null">
                 OO.ORDER_STATUS = #{orderStatus}
@@ -1581,19 +1576,19 @@
     <select id="selectNewOrderId" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
-            select apo.PURCHASE_ORDER_NO "purchaseOrderNo",
-                     apo.PURCHASE_ORDER_ID "purchaseOrderId",
-                   db.RESULT_FOREIGN_SHIP_NAME  "remark"
-
-              from AMS_PURCHASE_ORDER APO
-                       join DIL_BATCH DB on apo.BATCH_ID = db.BATCH_ID
-              where db.MATERIAL_ID = #{materialId}
-                and apo.SUPPLIER_UNIT_ID = #{supplierId}
-                <if test="remark != null">
-                    and db.RESULT_FOREIGN_SHIP_NAME like #{remark}
-                </if>
-              order by db.INSERT_TIME desc
-            )
+        select apo.PURCHASE_ORDER_NO "purchaseOrderNo",
+        apo.PURCHASE_ORDER_ID "purchaseOrderId",
+        db.RESULT_FOREIGN_SHIP_NAME "remark"
+
+        from AMS_PURCHASE_ORDER APO
+        join DIL_BATCH DB on apo.BATCH_ID = db.BATCH_ID
+        where db.MATERIAL_ID = #{materialId}
+        and apo.SUPPLIER_UNIT_ID = #{supplierId}
+        <if test="remark != null">
+            and db.RESULT_FOREIGN_SHIP_NAME like #{remark}
+        </if>
+        order by db.INSERT_TIME desc
+        )
         where rownum = 1
     </select>
 
@@ -2394,7 +2389,7 @@
         RC.CAPACITY_ID AS "carrierId"
         FROM RMS_CAPACITY RC
         WHERE RC.CAPACITY_STATUS = 0
-            AND RC.CAPACITY_TYPE_ID = 1
+        AND RC.CAPACITY_TYPE_ID = 1
         )
         <where>
             <if test="capacityNumber != null">
@@ -2830,6 +2825,7 @@
                  LEFT JOIN RMS_SUPPLIER RS
                            ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
         WHERE OO.ORDER_ID = #{orderId}
+          AND OO.ORDER_STATUS != 9
     </select>
 
     <!--  查询内转运输订单给APP 9 10 11-->
@@ -2841,18 +2837,18 @@
                RW.WAREHOUSE_NAME  "unloadName",
                OO.ORDER_TYPE      "orderType"
         FROM OMSTRUCK_ORDER OO
-        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
-            ON OO.ORDER_PLAN_ID = ARP.PLAN_ID
-        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
-            ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
-        LEFT JOIN AMS_PURCHASE_ORDER APO
-            ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
-        LEFT JOIN RMS_SUPPLIER  RS
-            ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
-        LEFT JOIN RMS_WAREHOUSE RW
-            ON RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
-        LEFT JOIN RMS_CAPACITY RC
-            ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                 LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                           ON OO.ORDER_PLAN_ID = ARP.PLAN_ID
+                 LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                           ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                 LEFT JOIN AMS_PURCHASE_ORDER APO
+                           ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+                 LEFT JOIN RMS_SUPPLIER RS
+                           ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+                 LEFT JOIN RMS_WAREHOUSE RW
+                           ON RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
+                 LEFT JOIN RMS_CAPACITY RC
+                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
 
     </select>
@@ -2865,28 +2861,29 @@
                RS.SHIPPER_NAME    "loadName",
                RW.WAREHOUSE_NAME  "unloadName"
         FROM OMSTRUCK_ORDER OO
-        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
-            on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
-        LEFT JOIN AMS_SALE_ORDER  ASO
-            ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
-        LEFT JOIN RMS_SHIPPER RS
-            ON RS.SHIPPER_ID = ASO.SHIPPER_ID
-        LEFT JOIN RMS_WAREHOUSE RW
-            ON RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
-        LEFT JOIN RMS_CAPACITY RC
-            ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                 LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+                           on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+                 LEFT JOIN AMS_SALE_ORDER ASO
+                           ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+                 LEFT JOIN RMS_SHIPPER RS
+                           ON RS.SHIPPER_ID = ASO.SHIPPER_ID
+                 LEFT JOIN RMS_WAREHOUSE RW
+                           ON RW.WAREHOUSE_ID = OO.UNLOAD_POINT_ID
+                 LEFT JOIN RMS_CAPACITY RC
+                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
         WHERE OO.ORDER_ID = #{orderId}
     </select>
     <!--  查询销售运输订单给APP 1 -->
     <select id="getXSOrderMessageToApp" parameterType="java.math.BigDecimal" resultType="java.util.Map">
-        SELECT OO.ORDER_ID                   "orderId",
-               OO.ORDER_TYPE                 "orderType",
-               OO.ORDER_NUMBER               "orderNumber",
-               RC.CAPACITY_NUMBER            "capacityNumber",
-               RS.SHIPPER_NAME               "shipperName",
-               ASOM.SALE_DATE_OF_RECEIPT     "saleDateOfReceipt",
-               RC2.CONSIGNEE_COMPANY_NAME    "consigneeCompanyName",
-               CONCAT(CONCAT(CONCAT(RDA.ADDRESS_PROVINCE,RDA.ADDRESS_DISTRICT),RDA.ADDRESS_TOWN),RDA.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName"
+        SELECT OO.ORDER_ID                          "orderId",
+               OO.ORDER_TYPE                        "orderType",
+               OO.ORDER_NUMBER                      "orderNumber",
+               RC.CAPACITY_NUMBER                   "capacityNumber",
+               RS.SHIPPER_NAME                      "shipperName",
+               ASOM.SALE_DATE_OF_RECEIPT            "saleDateOfReceipt",
+               RC2.CONSIGNEE_COMPANY_NAME           "consigneeCompanyName",
+               CONCAT(CONCAT(CONCAT(RDA.ADDRESS_PROVINCE, RDA.ADDRESS_DISTRICT), RDA.ADDRESS_TOWN),
+                      RDA.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName"
 
         FROM OMSTRUCK_ORDER OO
                  LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
@@ -2915,32 +2912,34 @@
     <select id="getOrderIdListByCapacityNumber" parameterType="string" resultType="int">
         SELECT OO.ORDER_ID
         FROM OMSTRUCK_ORDER OO
-        LEFT JOIN RMS_CAPACITY RC
-            ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        WHERE RC.CAPACITY_NUMBER = #{capacityNumber} AND OO.ORDER_STATUS = 4
+                 LEFT JOIN RMS_CAPACITY RC
+                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
+        WHERE RC.CAPACITY_NUMBER = #{capacityNumber}
+          AND OO.ORDER_STATUS = 4
     </select>
 
-<!--  根据车牌号匹配所有已接收的运输订单Id  -->
+    <!--  根据车牌号匹配所有已接收的运输订单Id  -->
     <select id="getReceiveOrderIdListByCapacityNum" parameterType="string" resultType="java.lang.Integer">
-        SELECT
-            OO.ORDER_ID
+        SELECT OO.ORDER_ID
         FROM OMSTRUCK_ORDER OO
                  LEFT JOIN RMS_CAPACITY RC
                            ON RC.CAPACITY_ID = OO.CAPACITY_ID
-        WHERE RC.CAPACITY_NUMBER = #{capacityNumber} AND OO.ORDER_STATUS in (0, 1 ,5)
+        WHERE RC.CAPACITY_NUMBER = #{capacityNumber}
+          AND OO.ORDER_STATUS in (0, 1, 5)
     </select>
 
-<!--    通过车牌号查询运输订单号和运输订单ID  -->
+    <!--    通过车牌号查询运输订单号和运输订单ID  -->
     <select id="getAllRefuseOrderNumberByCapacity" parameterType="string" resultType="java.util.Map">
-        select OO.ORDER_ID "orderId",
+        select OO.ORDER_ID     "orderId",
                OO.ORDER_NUMBER "orderNumber"
         from OMSTRUCK_ORDER OO
-        left join RMS_CAPACITY RC
-            on RC.CAPACITY_ID = OO.CAPACITY_ID
-        where RC.CAPACITY_NUMBER = #{capacityNumber} AND OO.ORDER_STATUS = 6
+                 left join RMS_CAPACITY RC
+                           on RC.CAPACITY_ID = OO.CAPACITY_ID
+        where RC.CAPACITY_NUMBER = #{capacityNumber}
+          AND OO.ORDER_STATUS = 6
     </select>
 
-<!--   通过订单号或订单ID查询订单类型 -->
+    <!--   通过订单号或订单ID查询订单类型 -->
     <select id="getOrderTypeByOrderId" parameterType="map" resultType="java.lang.Integer">
         select ORDER_TYPE
         from OMSTRUCK_ORDER

+ 105 - 13
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -3,32 +3,124 @@
 <mapper namespace="com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper">
     <!--通过订单Id 查询关联的线路子表顺序-->
     <select id="getLineMesByOrderId" parameterType="int" resultType="java.util.Map">
-        select RLS.SEGMENT_SQE "segmentSqe",
-               RLS.SEGMENT_START_NODE_ID "type"
+        select RLS.SEGMENT_SQE           "segmentSqe",
+               RLS.SEGMENT_START_NODE_ID "type",
+               RL.LINK_NAME              "linkName",
+               RLI.LINE_TYPE             "lineType"
         from RMS_LINE_SEGEMNT RLS
-        where RLS.LINE_ID = (select OO.LINE_ID from OMSTRUCK_ORDER OO where OO.ORDER_ID = #{orderId})
+                 left join RMS_LINK RL
+                           on RL.LINK_ID = RLS.SEGMENT_START_NODE_ID
+                 left join RMS_LINE RLI
+                           ON RLI.LINE_ID = RLS.LINE_ID
+        where RLS.LINE_ID = #{lineId}
+          AND RLS.DELETED = 0
         order by "segmentSqe"
     </select>
 
-<!--  通过运输订单Id查询运输信息  -->
+    <!--  通过运输订单Id查询运输信息  -->
     <select id="getOmstruckOrderResult" parameterType="java.math.BigDecimal" resultType="java.util.Map">
-        select OO.ORDER_NUMBER "orderNumber",
-               OO.ORDER_TYPE "orderType",
-               OO.CAPACITY_ID "capacityId",
-               OO.ORDER_PLAN_ID "orderPlanId",
-               OOM.MATERIAL_ID "materialId",
+        select OO.ORDER_NUMBER           "orderNumber",
+               OO.ORDER_TYPE             "orderType",
+               OO.CAPACITY_ID            "capacityId",
+               OO.ORDER_PLAN_ID          "orderPlanId",
+               OOM.MATERIAL_ID           "materialId",
                OOM.ORDER_MATERIAL_WEIGHT "orderMaterialWeight",
                OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber"
         from OMSTRUCK_ORDER OO
-            left join OMSTRUCK_ORDER_MATERIAL OOM
-                on OOM.ORDER_ID = OO.ORDER_ID
+                 left join OMSTRUCK_ORDER_MATERIAL OOM
+                           on OOM.ORDER_ID = OO.ORDER_ID
         where OO.ORDER_ID = #{orderId}
     </select>
 
-<!--  通过运输订单号改变订单状态  -->
+    <!--  通过运输订单号改变订单状态  -->
     <update id="updateOrderStatusByOrderNum" parameterType="map">
         update OMSTRUCK_ORDER OO
-        set  OO.ORDER_STATUS = #{orderStatus}
+        set OO.ORDER_STATUS = #{orderStatus}
         where OO.ORDER_ID = #{orderId}
     </update>
+
+    <!-- 得到运单id -->
+    <select id="getOrderIdByTotalId" parameterType="DECIMAL" resultType="DECIMAL">
+        SELECT TTR.ORDER_ID AS "orderId"
+        FROM TMSTRUCK_TOTAL_RESULT TTR
+        WHERE TTR.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+
+    <!-- 通过运单id得到运单信息 -->
+    <select id="getOrderMessagge" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT OO.ORDER_PLAN_ID   AS "orderPlanId",
+               OO.CAPACITY_ID     AS "capacityId",
+               OO.ORDER_TYPE      AS "orderType",
+               OO.ORDER_NUMBER    AS "orderNumber",
+               OO.UNLOAD_POINT_ID AS "unloadPointId"
+        FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
+    <!-- 查询路段名称 -->
+    <select id="getSegmentList" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT RL.LINK_NAME AS "linkName"
+        FROM OMSTRUCK_ORDER OO
+                 LEFT JOIN RMS_LINE RLI
+                           ON RLI.LINE_ID = OO.LINE_ID
+                 LEFT JOIN RMS_LINE_SEGEMNT RLS
+                           ON RLS.LINE_ID = RLI.LINE_ID
+                 LEFT JOIN RMS_LINK RL
+                           ON RL.LINK_ID = RLS.SEGMENT_START_NODE_ID
+        WHERE ORDER_ID = #{orderId}
+          AND RLS.DELETED = 0
+          AND OO.ORDER_STATUS != 9
+        ORDER BY RLS.SEGMENT_SQE ASC
+    </select>
+
+    <!-- 查询实绩位置 -->
+    <select id="getResultPointList" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT DISTINCT RGE.GATEPOST_NAME             "gatepostNameEnter",
+                        TER.RESULT_ENTRY_GATE_TIME    "resultEntryGateTime",
+                        RTCP.TRUCK_CALCULATE_NUMBER   "truckCalculateNumberP",
+                        TWRP.RESULT_TARE_WEIGHT_TIME  "resultTareWeightTime",
+                        RWL.WAREHOUSE_NAME            "warehouseNameLoad",
+                        TLR.RESULT_LOAD_END_TIME      "resultLoadEndTime",
+                        RTCM.TRUCK_CALCULATE_NUMBER   "truckCalculateNumberM",
+                        TWRM.RESULT_GROSS_WEIGHT_TIME "resultGrossWeightTime",
+                        RWU.WAREHOUSE_NAME            "warehouseNameUnLoad",
+                        TUR.RESULT_END_TIME           "resultEndTime",
+                        RGL.GATEPOST_NAME             "gatepostNameLeave",
+                        TLFR.RESULT_OUT_GATE_TIME     "resultOutGateTime",
+                        TTR.INSERT_TIME               "returnTime"
+        FROM TMSTRUCK_TOTAL_RESULT TTR
+                 LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+                           ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_GATEPOST RGE
+                           ON RGE.GATEPOST_ID = TER.GATEPOST_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWRP
+                           ON TWRP.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_TRUCK_CALCULATE RTCP
+                           ON RTCP.TRUCK_CALCULATE_ID = TWRP.RESULT_TARE_PLACE_ID
+                 LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
+                           ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_WAREHOUSE RWL
+                           ON RWL.WAREHOUSE_ID = TLR.LOADING_ID
+                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWRM
+                           ON TWRM.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_TRUCK_CALCULATE RTCM
+                           ON RTCM.TRUCK_CALCULATE_ID = TWRM.RESULT_GROSS_PLACE_ID
+                 LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR
+                           ON TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_WAREHOUSE RWU
+                           ON RWU.WAREHOUSE_ID = TUR.RESULT_UNLOAD_PLACE_ID
+                 LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+                           ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 LEFT JOIN RMS_GATEPOST RGL
+                           ON RGL.GATEPOST_ID = TLFR.GATEPOST_ID
+                 LEFT JOIN TMSTRUCK_RETURN_RESULT TRR
+                           ON TRR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = #{orderId}
+    </select>
+
+    <select id="getOrderIdByOrderNumber" parameterType="java.lang.String" resultType="DECIMAL">
+        SELECT OO.ORDER_ID AS "orderId"
+        FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+    </select>
 </mapper>