瀏覽代碼

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU2/DAI_DAZHOU-OMS

zx 3 年之前
父節點
當前提交
b3178b31c2

+ 8 - 0
pom.xml

@@ -94,6 +94,14 @@
             <artifactId>framework</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <!--中交新路的包这个问杨-->
+        <dependency>
+            <groupId>com.ZhongJiaoXingLu</groupId>
+            <artifactId>openapi-sdk</artifactId>
+            <version>6.0</version>
+        </dependency>
+
     </dependencies>
     <build>
         <plugins>

+ 47 - 17
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -585,22 +585,18 @@ public class OmstruckOrderController extends BaseRESTfulController {
             @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
     })
     @PostMapping("/getDriverInfoForSale")
-    public RESTfulResult getDriverInfoForSale(@RequestBody(required = false) Map<String, Object> mapValue,
-                                              Integer apiId,
-                                              Integer pageNum,
-                                              Integer pageSize,
-                                              Integer orderType,
-                                              Integer orderStatus,
-                                              String con,
-                                              String carrierSsoId,
-                                              Integer shipperId
-    ) {
-        if (orderType != null) {
-            mapValue.put("orderTypee", orderType);
-        }
-        if (shipperId != null) {
-            mapValue.put("shipperId",shipperId);
+        public RESTfulResult getDriverInfoForSale(@RequestBody(required = false) Map<String, Object> mapValue,
+                Integer apiId,
+                Integer pageNum,
+                Integer pageSize,
+                Integer orderStatus,
+                String con,
+                Integer saleOrderId
+    ) { if (saleOrderId != null ) {
+            mapValue.put("saleOrderId", saleOrderId);
         }
+
+
         if (orderStatus != null) {
             mapValue.put("orderStatus", orderStatus);
         }
@@ -610,7 +606,7 @@ public class OmstruckOrderController extends BaseRESTfulController {
         if (con != null && con.length() != 0) {
             mapValue.put("con", "%" + con + "%");
         }
-        mapValue.put("carrierSsoId",carrierSsoId);
+
         //不分页筛选数据
         PageHelper.startPage(pageNum, pageSize);
         //分页数据
@@ -619,6 +615,35 @@ public class OmstruckOrderController extends BaseRESTfulController {
         return success(pageList);
     }
 
+    @PostMapping("/getDriverInfoForSale1")
+    public RESTfulResult getDriverInfoForSale1(@RequestBody(required = false) Map<String, Object> mapValue,
+                                              Integer orderStatus,
+                                              String con,
+                                              Integer saleOrderId,
+                                               String numberPlate
+    ) { if (saleOrderId != null ) {
+        mapValue.put("saleOrderId", saleOrderId);
+        }
+
+        if (orderStatus != null) {
+            mapValue.put("orderStatus", orderStatus);
+        }
+        if (con != null && (con.equals("") || con.equals("undefined"))) {
+            con = null;
+        }
+        if (con != null && con.length() != 0) {
+            mapValue.put("con", "%" + con + "%");
+        }
+        if (numberPlate != null&& !"".equals(numberPlate)&&!"null".equals(numberPlate)) {
+            mapValue.put("numberPlate", orderStatus);
+        }
+
+
+        List<Map<String, Object>> result = omstruckOrderService.selectTransportOrderForSale1(mapValue);
+
+        return success(result);
+    }
+
 
     @ApiOperation(value = "司机APP端调用接口查询数据 4 已下发 5 已接收")
     @ApiImplicitParams({
@@ -726,7 +751,12 @@ public class OmstruckOrderController extends BaseRESTfulController {
     @PostMapping("/updateCapacityId")
     public RESTfulResult updateCapacityId(@RequestBody Map<String,Object> map) {
         int result = omstruckOrderService.updateCapacityId(map);
-        return success(result);
+        if (result == 1) {
+            return success(result);
+        }
+        else {
+            return failed(result);
+        }
     }
 
 

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

@@ -203,8 +203,13 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
 
     @ApiOperation(value = "该车牌号下的所有订单号 以及 订单ID")
     @PostMapping("/getCapacityAllOrder")
-    public RESTfulResult getCapacityAllOrder(String capacityNumber){
-        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(capacityNumber);
+    public RESTfulResult getCapacityAllOrder(String capacityNumber,String date){
+        Map<String, Object> map = new HashMap<>();
+        map.put("capacityNumber",capacityNumber);
+        if(date != null){
+            map.put("date",date);
+        }
+        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(map);
         return success(capacityAllOrderList);
     }
 

+ 7 - 1
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -144,6 +144,8 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //销售:接收运输订单展示pc端界面
     List<Map<String, Object>> selectTransportOrderForSale(Map<String, Object> map);
 
+    List<Map<String, Object>> selectTransportOrderForSale1(Map<String, Object> map);
+
     //销售:根据承运商查找承运商
     List<Map<String, Object>> selectSaleMaterialIdByCarrierId(Integer carrierId);
 
@@ -198,7 +200,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     Map<String, Object> getInwardOrderMap(BigDecimal orderId);
 
     //通过订单Id查询该订单下所有的物资
-    List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId);
+    List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
     //根据运输订单查询车牌号
     String selectCapacityNumber(BigDecimal orderId);
@@ -332,4 +334,8 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     Map<String, Object> getSteelOrderMessageToApp(Map<String, Object> map);
 
     List<Map<String, Object>> getLoadForLoadCarResult(Map<String, Object> map);
+    // 查询路段顺序号
+    BigDecimal getLineSeq(BigDecimal orderId);
+
+    String getCapacityNumberByCapacityId(BigDecimal capacityNumber);
 }

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

@@ -4,6 +4,7 @@ import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.model.OmstruckOrderMaterial;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
@@ -50,4 +51,10 @@ public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMa
 
     //修改出库实绩
     int updateOutBoundResult(OmstruckOrderMaterial omstruckOrderMaterial);
+
+    //修改出库实绩
+    Map<String, Object> getSaleOrderMaterialNum(@Param("orderId")BigDecimal orderId,@Param("materialId") BigDecimal materialId);
+
+
+    int updateSaleOrderMaterialMes(BigDecimal saleMaterialId, BigDecimal materialNum, BigDecimal newWeight);
 }

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

@@ -75,7 +75,7 @@ public interface OmstruckOrderSeparateMapper {
 
 
     //查询当前车辆之前所有已完成的订单
-    List<Map<String, Object>> getCapacityAllOrder(String capacityNumber);
+    List<Map<String, Object>> getCapacityAllOrder(Map<String,Object> map);
 
     //查询订单发货日期(订单类型为2)
     Integer getDeliveryDate(Object orderId);

+ 29 - 0
src/main/java/com/steerinfo/dil/mapper/ZJXLUtilMapper.java

@@ -0,0 +1,29 @@
+package com.steerinfo.dil.mapper;
+
+import org.apache.ibatis.annotations.*;
+
+import java.math.BigDecimal;
+
+@Mapper
+public interface ZJXLUtilMapper {
+    //获取区域Id
+    @Select("select DV.VERSION_VALUE from DIL_VERSION DV where DV.VERSION_TYPE = 2")
+    String getAreaId();
+
+    //更新区域ID
+    @Update("update DIL_VERSION DV set DV.VERSION_VALUE = #{areaId}, UPDATE_TIME = SYSDATE where DV.VERSION_TYPE = 2")
+    int updateAreaId(@Param("areaId") String areaId);
+
+    @Select("select VERSION_VALUE from DIL_VERSION where VERSION_TYPE = 3")
+    String getToken();
+
+    @Update("update DIL_VERSION set VERSION_VALUE = #{token}, UPDATE_TIME = SYSDATE where VERSION_TYPE = 3")
+    int updateToken(@Param("token") String token);
+
+    @Select("select seq_QMS_SUB_CAPACITY.nextval from dual")
+    BigDecimal getSubCapacityMaxId();
+
+    int insertSubCapacity(@Param("subCapacityId")BigDecimal subCapacityId, @Param("capacityNumber")String capacityNumber, @Param("resultTotalId")BigDecimal resultTotalId);
+
+    int cancelSubCapacity(@Param("capacityNumber")String capacityNumber);
+}

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IOmstruckOrderService.java

@@ -119,6 +119,8 @@ public interface IOmstruckOrderService {
     //销售:接收运输订单展示pc端界面
     List<Map<String, Object>> selectTransportOrderForSale(Map<String, Object> map);
 
+    List<Map<String, Object>> selectTransportOrderForSale1(Map<String, Object> map);
+
     //根据承运商查找销售订单
     List<Map<String, Object>> selectSteelSaleForCarrier(Map<String, Object> map);
 

+ 24 - 6
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderMaterialServiceImpl.java

@@ -9,7 +9,6 @@ import com.steerinfo.dil.model.RmsCapacity;
 import com.steerinfo.dil.model.RmsPwarehouseGrid;
 import com.steerinfo.dil.service.IOmstruckOrderMaterialService;
 import com.steerinfo.dil.util.DataChange;
-import com.sun.corba.se.spi.ior.ObjectKey;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -293,14 +292,33 @@ public class OmstruckOrderMaterialServiceImpl implements IOmstruckOrderMaterialS
     public int updateMaterialMes(Map<String, Object> map){
         OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
         List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
-        for (Map<String, Object>map1:mapList
-             ) {
-            omstruckOrderMaterial.setOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            omstruckOrderMaterial.setMaterialId(DataChange.dataToBigDecimal(map1.get("materialId")));
-            omstruckOrderMaterial.setOrderMaterialNumber(DataChange.dataToBigDecimal(map1.get("materialNum")));
+        for (Map<String, Object>map1 : mapList) {
+            BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+            BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
+            BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
+            //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
+            Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(orderId, materialId);
+            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
+            BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
+            BigDecimal newWeight = null;
+            if(materialWeight.intValue() != 0){ //如果总重量不为0,才进行重量更新
+                BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
+                BigDecimal theoreticalWeight = materialWeight.divide(orderMaterialNumber, 4);
+                newWeight = theoreticalWeight.multiply(theoreticalWeight); //得到现有理重
+
+                omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
+            }
+            //修改销售订单物资子表
+            omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
+
+            //修改订单物资子表 与出库实绩
+            omstruckOrderMaterial.setOrderId(orderId);
+            omstruckOrderMaterial.setMaterialId(materialId);
+            omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
             omstruckOrderMaterial.setUpdateTime(new Date());
             omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
             omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
+
         }
         return 1;
     }

+ 21 - 12
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -496,8 +496,8 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
      * @param capacityNumber 车牌号
      * @return 查询当前车辆之前所有已完成的订单号 以及 订单ID
      **/
-    public List<Map<String, Object>> getCapacityAllOrder(String capacityNumber){
-        return omstruckOrderSeparateMapper.getCapacityAllOrder(capacityNumber);
+    public List<Map<String, Object>> getCapacityAllOrder(Map<String,Object>map){
+        return omstruckOrderSeparateMapper.getCapacityAllOrder(map);
     }
 
 
@@ -665,16 +665,25 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         int i = omstruckOrderSeparateMapper.closeInwardOrder(orderId, sqe);
         Map<String, Object> map = omstruckOrderMapper.selectInwardTimeByOrderId(new BigDecimal(orderId));
         //根据运输订单id查找需求日期是否超过一个月
-        if(map != null){
-            Date dueDate = (Date) map.get("dueTime");
-            //当前时间小于截至日期
-            long DueTime = dueDate.getTime() + 86400000;
-            //获取当前时间
-            Date date = new Date();
-            long nowTime = date.getTime();
-            if (nowTime < DueTime){
-                //推送
-                i += addNewTransportOrder(new BigDecimal(orderId));
+        if (map != null) {
+            if (DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 11) {
+                Date dueDate = (Date) map.get("dueTime");
+                //当前时间小于截至日期
+                long DueTime = dueDate.getTime() + 86400000;
+                //获取当前时间
+                Date date = new Date();
+                long nowTime = date.getTime();
+                if (nowTime < DueTime) {
+                    //推送
+                    i += addNewTransportOrder(new BigDecimal(orderId));
+                }
+            }
+            if (DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 15 || DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 16) {
+                Integer planEnableStatus = DataChange.dataToBigDecimal(map.get("planEnableStatus")).intValue();
+                if (planEnableStatus == 1) {
+                    //推送
+                    i += addNewTransportOrder(new BigDecimal(orderId));
+                }
             }
         }
         //根据订单ID查找需求里面的承运范围和物资

+ 69 - 24
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -65,6 +65,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Autowired
     OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
 
+    @Autowired
+    private ZJXLUtilServiceImpl zjxlUtilService;
+
+    @Autowired
+    private ZJXLUtilMapper zjxlUtilMapper;
+
     /**
      * 用于远程调用运输订单新增
      *
@@ -548,7 +554,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     }
 
     //撤销订单
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public int undoOrder(Map<String, Object> map) throws Exception{
         int result=0;
@@ -577,6 +583,18 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 result += omstruckOrderMapper.deleteTimeTaskByTotalId(resultTotalId);
             }
         }
+        if(orderType == 1){
+            //取消订阅车辆
+            String remark = String.valueOf(mesMap.get("insertUpdateRemark"));
+            if("电子围栏订阅成功".equals(remark)){
+                String capacityNumber = String.valueOf(map.get("capacityNumber"));
+                map.put("capacityNumber", capacityNumber + "_2");
+                int i = zjxlUtilService.cancelSubsCapacity(map, 1);
+                if(i == 1){
+                    zjxlUtilMapper.cancelSubCapacity(capacityNumber);
+                }
+            }
+        }
         //通过总实绩ID删除所有已经生成的实绩
         result += omstruckOrderMapper.deleteEnResult(resultTotalId);
         result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
@@ -596,7 +614,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 omstruckOrderSeparateMapper.updateTranTimes(orderPlanId, transTimes.intValue() - 1);
             }
         }
-
         return result;
     }
    //修改运力
@@ -606,9 +623,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         OmstruckOrder omstruckOrder=new OmstruckOrder();
         BigDecimal orderId =DataChange.dataToBigDecimal(map.get("orderId"));
         BigDecimal capacityId =DataChange.dataToBigDecimal(map.get("capacityId"));
-        omstruckOrder.setOrderId(orderId);
-        omstruckOrder.setCapacityId(capacityId);
-        result+=omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        BigDecimal lineSeq = omstruckOrderMapper.getLineSeq(orderId);
+        if (lineSeq == null || lineSeq.intValue() == 0) {
+            omstruckOrder.setOrderId(orderId);
+            omstruckOrder.setCapacityId(capacityId);
+            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        }
         return result;
     }
 
@@ -632,7 +652,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             capacityMap.put("capacityNumber",capacityNumber);
             List<RmsCapacity> rmsCapacities = rmsCapacityMapper.selectByParameters(capacityMap);
             RmsCapacity rmsCapacity = rmsCapacities.get(0);
-//            rmsCapacity.setCapacityStatus(new BigDecimal(2));
             result +=rmsCapacityMapper.updateByPrimaryKeySelective(rmsCapacity);
             BigDecimal capacityId = rmsCapacity.getCapacityId();
             capacityMap.clear();
@@ -656,7 +675,9 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             omstruckOrder.setInsertUpdateRemark("无");
             omstruckOrder.setDeleted(new BigDecimal(0));
             omstruckOrder.setOrderType(orderType);
-            omstruckOrder.setLineId(lineId);
+            if(lineId != null){
+                omstruckOrder.setLineId(lineId);
+            }
             result +=omstruckOrderMapper.insertSelective(omstruckOrder);
             OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
             BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
@@ -676,10 +697,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Override
     public List<Map<String, Object>> getPurInwardOrderList(Map<String, Object> mapValue) {
         List<Map<String,Object>> mapList = omstruckOrderMapper.getPurInwardOrderList(mapValue);
-        for (Map<String,Object>map:mapList
-             ) {
-            map.put("loadName","化工园区铁专线");
-        }
         return mapList;
     }
 
@@ -796,7 +813,21 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 throw new RuntimeException("订单已被接收或已被拒绝!");
             }
             int orderType = DataChange.dataToBigDecimal(orderMessage.get("orderType")).intValue();
-            if(orderType == 11){
+            if(orderType == 1){
+                //订阅车辆 查询车牌号
+                String capacityNumber = omstruckOrderMapper.getCapacityNumberByCapacityId(DataChange.dataToBigDecimal(orderMessage.get("capacityId")));
+                Map<String, Object> subMap = new HashMap<>();
+                subMap.put("capacityNumber", capacityNumber + "_2");
+                String s = zjxlUtilService.subsCapacity(subMap, 1);
+                if(!"成功".equals(s.substring(s.length() - 2))){
+                    System.out.println("车辆订阅失败:" + capacityNumber);
+                    omstruckOrder.setInsertUpdateRemark("电子围栏订阅失败");
+                }else{
+                    omstruckOrder.setInsertUpdateRemark("电子围栏订阅成功");
+                    zjxlUtilMapper.insertSubCapacity(zjxlUtilMapper.getSubCapacityMaxId(), capacityNumber, DataChange.dataToBigDecimal(orderMessage.get("resultTotalId")));
+                }
+            }
+            if(orderType == 11 || orderType == 15 || orderType == 16){
                 //发送计量委托
                 orderMessage.put("asd", 1);
                 orderMessage.put("orderId", orderId);
@@ -1060,9 +1091,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
 
     @Override
     public List<Map<String, Object>> selectTransportOrderForSale(Map<String, Object> map) {
-        String carrierSsoId = (String) map.get("carrierSsoId");
-        BigDecimal carrierId = omstruckOrderMapper.getCarrierIdBySSO(carrierSsoId);
-        map.put("carrierId",carrierId);
         List<Map<String, Object>> mapList = omstruckOrderMapper.selectTransportOrderForSale(map);
         int count = 1;
         for (Map<String, Object> stringObjectMap : mapList) {
@@ -1072,6 +1100,17 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         return mapList;
     }
 
+    @Override
+    public List<Map<String, Object>> selectTransportOrderForSale1(Map<String, Object> map) {
+        List<Map<String, Object>> mapList = omstruckOrderMapper.selectTransportOrderForSale1(map);
+        int count = 1;
+        for (Map<String, Object> stringObjectMap : mapList) {
+            stringObjectMap.put("ROW_ID",count);
+            count ++;
+        }
+        return mapList;
+    }
+
     @Override
     public List<Map<String, Object>> selectSteelSaleForCarrier(Map<String, Object> map) {
         return omstruckOrderMapper.selectSteelSaleForCarrier(map);
@@ -1589,7 +1628,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             BigDecimal orderId = (BigDecimal) map.get("orderId");
             BigDecimal orderType = (BigDecimal) map.get("orderType");
             // 查询物资信息
-            List<Map<String,Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId);
+            List<Map<String,Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId, null);
             String allMaterialName = "";
             String allMaterialNumber = "";
             String allMaterialWeight = "";
@@ -1773,7 +1812,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             BigDecimal orderId = (BigDecimal) map.get("orderId");
             BigDecimal orderType = (BigDecimal) map.get("orderType");
             // 查询物资信息
-            List<Map<String, Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId);
+            List<Map<String, Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId, null);
             String allMaterialName = "";
             String allMaterialNumber = "";
             String allMaterialWeight = "";
@@ -1894,11 +1933,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      **/
     public boolean getDriverConfirmation(Map<String, Object> map){
         Integer driverConfirmation = omstruckOrderMapper.getDriverConfirmation(DataChange.dataToBigDecimal(map.get("orderId")));
-        if(driverConfirmation == null){
-            return true;
-        }else {
-            return false;
-        }
+        return driverConfirmation == null;
     }
 
     /**
@@ -1916,9 +1951,11 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             orderType = DataChange.dataToBigDecimal(map.get("orderType")).intValue();
         }
         Map<String, Object> mesMap = new HashMap<>();
+        String steelJudge = null;
         switch (orderType){
             case 1:
                 mesMap = omstruckOrderMapper.getSteelOrderMessageToApp(map);
+                steelJudge = "steel";
                 break;
             case 2:
                 mesMap = omstruckOrderMapper.getXSOrderMessageToApp(map);
@@ -1947,6 +1984,14 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                     mesMap.put("organizationCode","二厂");
                 }
                 break;
+            case 15:
+                mesMap = omstruckOrderMapper.getNZOrderMessageToApp(map);
+                mesMap.put("loadName","老区轨道衡");
+                break;
+            case 16:
+                mesMap = omstruckOrderMapper.getNZOrderMessageToApp(map);
+                mesMap.put("loadName","一焦化");
+                break;
             case 11:
                 mesMap = omstruckOrderMapper.getInwardOrderMessageToApp(map);
                 mesMap.put("inwardType", "计重");
@@ -1964,7 +2009,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                  mesMap=omstruckOrderMapper.getSporadicOrder(map);
                  mesMap.put("type", "零星退货");
         }
-        mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId));
+        mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId, steelJudge));
 
         return mesMap;
     }
@@ -1990,7 +2035,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                     continue;
                 }
             }
-            if(orderType == 10|| orderType == 20){
+            if(orderType == 10|| orderType == 20 || orderType == 15 || orderType == 16){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 if(planEnable == 0){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));

+ 218 - 0
src/main/java/com/steerinfo/dil/service/impl/ZJXLUtilServiceImpl.java

@@ -0,0 +1,218 @@
+package com.steerinfo.dil.service.impl;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.openapi.sdk.service.DataExchangeService;
+import com.steerinfo.dil.mapper.ZJXLUtilMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @ author    :TXF
+ * @ time      :2022/1/11 15:27
+ */
+
+@Service
+public class ZJXLUtilServiceImpl {
+
+    @Autowired
+    private ZJXLUtilMapper zjxlUtilMapper;
+
+    @Value("${str.ZhongJiaoXingLu.cid}")
+    private  String cid;
+    @Value("${str.ZhongJiaoXingLu.srt}")
+    private  String srt;
+    @Value("${str.ZhongJiaoXingLu.user}")
+    private  String user;
+    @Value("${str.ZhongJiaoXingLu.pwd}")
+    private  String pwd;
+
+
+    private String userflag = "DaZhouGangTie";  //标识
+
+    private String lonlat = "107.4628199,31.1925279"; //中心点坐标
+
+    private String radius = "3000"; //半径
+
+    /**
+     * 车辆订阅接口
+     * @Author TXF
+     * @Date 2022/1/12 14:18
+     * @param map
+     * @return
+     **/
+    public String subsCapacity(Map<String, Object> map,int i){
+
+        if (i==3){
+            return "超出递归次数限制";
+        }
+
+        if (map.get("capacityNumber")==null||"".equals(map.get("capacityNumber").toString())){
+            return "参数【capacityNumber】车号,为空";
+        }
+        Map<String, String> mesMap = new HashMap<>();
+        mesMap.put("token", zjxlUtilMapper.getToken());
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("userflag", userflag);
+        String areaId = zjxlUtilMapper.getAreaId();
+        if(areaId==null){
+            return "区域id为空";
+        }
+        mesMap.put("areaid", areaId);
+        mesMap.put("vnos", (String) map.get("capacityNumber"));
+        String url = "https://openapi.sinoiov.cn/save/apis/vnoReg";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, mesMap);
+            Map<String, Object> jsonMap = JSON.parseObject(res);
+            Object status = jsonMap.get("status");
+            if("1016".equals(status.toString())){
+                if(login() == 1){
+                    return subsCapacity(map,i+1); //递归订阅
+                }else {
+                    return "登录失败,状态码:"+status;
+                }
+            }
+            if("1001".equals(status.toString())){
+                if("2".equals(jsonMap.get("result").toString())){
+                    //如果是自定义区域不存在则重新注册自定义区域
+                    if(registerAreaReg() == 1){
+                        return subsCapacity(map,i+1);
+                    }
+                }else {
+                    return "订阅成功";
+                }
+            }
+        } catch (Exception e) {
+            System.out.println("错误信息:" + e.getMessage());
+        }
+        return "订阅失败";
+    }
+
+    /**
+     * 自定义区域注册接口
+     * @Author TXF
+     * @Date 2022/1/12 14:36
+     * @param
+     * @return 1 成功  0 失败
+     **/
+    public int registerAreaReg(){
+        Map<String, String> mesMap = new HashMap<>(9);
+        mesMap.put("token",  zjxlUtilMapper.getToken());
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("userflag", userflag);
+        mesMap.put("areaname", "达州钢铁老厂区");
+        mesMap.put("lonlat", lonlat);
+        mesMap.put("radius", radius);
+        mesMap.put("type", "1");
+        mesMap.put("actiontype", "1");
+        String url = "https://openapi.sinoiov.cn/save/apis/areaReg";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, mesMap);
+            Map<String, Object> jsonMap = JSON.parseObject(res);
+            if("1001".equals(jsonMap.get("status").toString())){
+                // 更新注册区域ID
+                Map<String, Object> areaIdMap = (Map<String, Object>) jsonMap.get("result");
+                if("1".equals(areaIdMap.get("state").toString())){
+                    String areaid = String.valueOf(areaIdMap.get("areaid"));
+                    int i = zjxlUtilMapper.updateAreaId(areaid);
+                    if(i==0){
+                        return 0;
+                    }
+                    System.out.println("new areaid: " + areaid);
+                    return 1;
+                }else {
+                    return 0;
+                }
+            }
+        } catch (Exception e) {
+            System.out.println("错误信息:" + e.getMessage());
+        }
+        return 0;
+    }
+
+
+    /**
+     * 登录接口
+     * @Author TXF
+     * @Date 2022/1/12 15:23
+     * @param
+     * @return 1 成功 0 失败
+     **/
+    public int login() {
+        try {
+            Map<String, String> map = new HashMap<>(4);
+            map.put("user", user);
+            map.put("pwd", pwd);
+            map.put("cid", cid);
+            map.put("srt", srt);
+            String url = "https://openapi.sinoiov.cn/save/apis/login/";
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, map);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            String token = jsonObject.get("result").toString();
+            zjxlUtilMapper.updateToken(token);
+            return 1;
+        } catch (Exception e) {
+            System.out.println("登录中交兴路出错"+e.getMessage());
+            return 0;
+        }
+
+    }
+
+    /**
+     * 删除车辆订阅接口
+     * @Author TXF
+     * @Date 2022/1/12 17:11
+     * @param map
+     * @return
+     **/
+    public int cancelSubsCapacity(Map<String, Object> map,int i){
+        if (i==3){
+            return -2;
+        }
+        Map<String, String> mesMap = new HashMap<>(4);
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("token",  zjxlUtilMapper.getToken());
+        mesMap.put("userflag", userflag);
+        mesMap.put("vnos", (String) map.get("capacityNumber"));
+        mesMap.put("areaid", zjxlUtilMapper.getAreaId());
+        String url = "https://openapi.sinoiov.cn/save/apis/vnoDel";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            String res = des.postHttps(url, mesMap);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            if("1016".equals(StringUtils.isEmpty(jsonObject.get("status"))?"":jsonObject.get("status").toString())){
+                if (login()==1) {
+                    return cancelSubsCapacity(map,i+1);
+                }else {
+                    return -1;
+                }
+            }
+            if("1001".equals(StringUtils.isEmpty(jsonObject.get("status"))?"":jsonObject.get("status").toString())){
+                if("1".equals(StringUtils.isEmpty(jsonObject.get("result"))?"":jsonObject.get("result").toString())){
+                    return 1;
+                }else {
+                    return 0;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0;
+        }
+        return 0;
+    }
+}

+ 9 - 0
src/main/resources/bootstrap.yml

@@ -51,3 +51,12 @@ mybatis:
     #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     mapUnderscoreToCamelCase: true
     call-setters-on-nulls: true
+
+str:
+  tengxun:
+    key: WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y
+  ZhongJiaoXingLu:
+    cid: 84254ac6-9f05-47c7-ba3c-1d3398590d70
+    srt: b7c4b6ee-09c8-4865-a0b7-934d42205012
+    user: 108e0bda-1795-4e43-9df9-426a446eb77f
+    pwd: cKyp9G98yFy3gHBHG21us7z85377S1

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

@@ -1828,7 +1828,10 @@
         OO.ORDER_RECEIVE_REFUSE_TIME "orderReceiveRefuseTime",
         RS.SHIPPER_NAME "shipperName",
         OO.ORDER_ID "orderId",
-        RC3.CARRIER_NAME "carrierName"
+        RC3.CARRIER_NAME "carrierName",
+        RM.MATERIAL_NAME "materialName",
+        RM.MATERIAL_SPECIFICATION "materialSpecification",
+        RM.MATERIAL_MODEL "materialModel"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
         ON ASOM.SALE_ORDER_MATERIAL_ID=OO.ORDER_PLAN_ID
@@ -1844,28 +1847,136 @@
         ON OO.CAPACITY_ID=RC.CAPACITY_ID
         LEFT JOIN RMS_SHIPPER RS
         ON RS.SHIPPER_ID=ASO.SHIPPER_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
         LEFT JOIN RMS_RECEIVE_ADDRESS RRA
-        ON RRA.ADDRESS_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
         LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE ACTP
         ON OO.PRICE_ID=ACTP.PRICE_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID=ASO.SALE_ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         <where>
             <if test="orderStatus!=null">
                 AND OO.ORDER_STATUS = #{orderStatus}
             </if>
-            <if test="carrierId!=null">
-                and RC3.CARRIER_ID = #{carrierId}
+
+            <if test="saleOrderId!=null">
+                AND ASO.SALE_ORDER_ID = #{saleOrderId}
             </if>
-            <if test="orderTypee!=null">
-                and OO.ORDER_TYPE = #{orderTypee}
+        </where>
+        ) RRC
+        <if test="con != null">
+            WHERE RRC."consigneeCompanyName" LIKE #{con} or RRC."capacityNumber" LIKE #{con} or RRC."carrierName" LIKE #{con}
+        </if>
+        )
+        <where>
+            <if test="orderNumber != null">
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="carrierName != null">
+                <foreach collection="carrierName" item="item" open="(" separator="or" close=")">
+                    "carrierName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="saleNumber != null">
+                and
+                <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
+                    "saleNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                and
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="shipperName != null">
+                and
+                <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
+                    "shipperName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="consigneeCompanyName != null">
+                and
+                <foreach collection="consigneeCompanyName" item="item" open="(" separator="or" close=")">
+                    "consigneeCompanyName" like '%${item}%'
+                </foreach>
             </if>
+        </where>
+        <include refid="orderBy">
+        </include>
+        <if test="orderField == null  ">
+            order by "orderNumber" desc
+        </if>
+    </select>
 
-            <if test="shipperId!=null">
-                and ASO.SHIPPER_ID = #{shipperId}
+    <select id="selectTransportOrderForSale1" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT * FROM (
+        SELECT *from(
+        select
+        OO.ORDER_NUMBER "orderNumber",
+        ASO.SALE_NUMBER "saleNumber",
+        RC.CAPACITY_NUMBER "capacityNumber",
+        RC2.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
+        RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT || RRA.ADDRESS_TOWN
+        ||RRP.ADDRESS_DELIVERY_ADDRESS "completeAddress",
+        ASOM.SALE_SHIPPING_ADDRESS_ID "addressId",
+        ACTP.PRICE_VALUE "priceValue",
+        ASOM.SALE_DATE_OF_RECEIPT "saleDateOfReceipt",
+        OO.ORDER_RECEIVE_REFUSE_TIME "orderReceiveRefuseTime",
+        RS.SHIPPER_NAME "shipperName",
+        OO.ORDER_ID "orderId",
+        RC3.CARRIER_NAME "carrierName",
+        RM.MATERIAL_NAME "materialName",
+        RM.MATERIAL_SPECIFICATION "materialSpecification",
+        RM.MATERIAL_MODEL "materialModel"
+        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 AMS_DISPATCH_SALE_ORDER ADSO
+        ON ADSO.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN RMS_CARRIER RC3
+        ON RC3.CARRIER_ID = ADSO.CARRIER_ID
+        LEFT JOIN RMS_CONSIGNEE RC2
+        ON RC2.CONSIGNEE_ID=ASO.RECEIVE_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON OO.CAPACITY_ID=RC.CAPACITY_ID
+        LEFT JOIN RMS_SHIPPER RS
+        ON RS.SHIPPER_ID=ASO.SHIPPER_ID
+        LEFT JOIN RMS_RECEIVE_PLACE RRP
+        ON RRP.PLACE_ID=ASOM.SALE_SHIPPING_ADDRESS_ID
+        LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+        ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
+        LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE ACTP
+        ON OO.PRICE_ID=ACTP.PRICE_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID=ASO.SALE_ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+
+        <where>
+            <if test="orderStatus!=null">
+                AND OO.ORDER_STATUS = #{orderStatus}
+            </if>
+
+            <if test="saleOrderId!=null">
+                AND ASO.SALE_ORDER_ID = #{saleOrderId}
             </if>
+
+            <if test="numberPlate!=null">
+                AND RC.CAPACITY_NUMBER LIKE #{numberPlate}
+            </if>
+
         </where>
         ) RRC
         <if test="con != null">
-            WHERE RRC."consigneeCompanyName" LIKE #{con} or RRC."capacityNumber" LIKE #{con}
+            WHERE RRC."consigneeCompanyName" LIKE #{con} or RRC."capacityNumber" LIKE #{con} or RRC."carrierName" LIKE #{con}
         </if>
         )
         <where>
@@ -2544,10 +2655,15 @@
         AIR.REQUIREMENT_WORK_ENVIRONMENT   AS "requirementWorkEnvironment",
         AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
         OO.ORDER_ID                        AS "orderId",
-        AIP.INSERT_TIME                    AS "insertTime"
+        AIP.INSERT_TIME                    AS "insertTime",
+        RW.WAREHOUSE_NAME                  AS "unloadName",
+        RW1.WAREHOUSE_NAME                 AS "loadName",
+        RM.MATERIAL_NAME                   AS "materialName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         LEFT JOIN RMS_CAPACITY RC
         ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
@@ -2560,6 +2676,10 @@
         ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
         LEFT JOIN RMS_CARRIER RCA
         ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = ARM.REQUIREMENT_UNLOAD_UNIT_ID
+        LEFT JOIN  RMS_WAREHOUSE RW1
+        ON RW1.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
         WHERE AIP.DELETED = 0
         AND OO.ORDER_TYPE = 11
         <if test="carrierId != null">
@@ -2625,6 +2745,24 @@
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
+            <if test="unloadName != null">
+                and
+                <foreach collection="unloadName" item="item" open="(" separator="or" close=")">
+                    "unloadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="loadName != null">
+                and
+                <foreach collection="loadName" item="item" open="(" separator="or" close=")">
+                    "loadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
         </where>
         <include refid="orderBy"></include>
     </select>
@@ -2666,7 +2804,12 @@
 
     <!-- 物资信息 -->
     <select id="getMaterialMes" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
-        SELECT RM.MATERIAL_NAME  "materialName",
+        SELECT
+               RM.MATERIAL_NAME
+                <if test="steelJudge != null">
+                    || '   ' || RW.WAREHOUSE_NAME
+                </if>
+                "materialName",
                RM.MATERIAL_ID   "materialId",
                OOM.MATERIAL_PRIORITY "materialPriority",
                CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
@@ -2688,6 +2831,10 @@
         FROM OMSTRUCK_ORDER_MATERIAL OOM
                  LEFT JOIN RMS_MATERIAL RM
                            ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                 <if test="steelJudge != null">
+                     LEFT JOIN RMS_WAREHOUSE RW
+                           ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+                 </if>
         WHERE ORDER_ID = #{orderId}
         ORDER BY RM.MATERIAL_NAME
     </select>
@@ -2926,7 +3073,8 @@
         OO.ORDER_STATUS "orderStatus",
         RS.SUPPLIER_NAME "shipperName",
         RCG.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        APO.PURCHASING_ORGANIZATION_ID "organizationId"
+        APO.PURCHASING_ORGANIZATION_ID "organizationId",
+        DB.RESULT_FOREIGN_SHIP_NAME "shipName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
         ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
@@ -2936,6 +3084,8 @@
         ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
         LEFT JOIN AMS_PURCHASE_ORDER APO
         ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON DB.BATCH_ID = APO.BATCH_ID
         LEFT JOIN RMS_SUPPLIER RS
         ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
         LEFT JOIN RMS_CONSIGNEE RCG
@@ -3171,7 +3321,8 @@
         OO.ORDER_ID                AS "orderId",
         RS.SUPPLIER_NAME           AS "supplierName",
         RCE.CONSIGNEE_COMPANY_NAME AS "consigneeName",
-        OO.ORDER_NUMBER            AS "orderNo"
+        OO.ORDER_NUMBER            AS "orderNo",
+        DB.RESULT_FOREIGN_SHIP_NAME AS "shipName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID = OO.ORDER_ID
@@ -3200,7 +3351,7 @@
         LEFT JOIN RMS_CONSIGNEE RCE
         ON RCE.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
         WHERE AIP.DELETED = 0
-        AND OO.ORDER_TYPE IN (4,9,10,11,20,21)
+        AND OO.ORDER_TYPE IN (10,20,15,16)
         AND OO.ORDER_STATUS = #{orderStatus}
         <if test="carrierId !=null">
             AND AIP.CARRIER_ID = (SELECT RCR.CARRIER_ID FROM RMS_CARRIER RCR WHERE RCR.CARRIER_SSO_ID = #{carrierId})
@@ -3361,7 +3512,9 @@
     </select>
 <!-- 根据运输订单id查找需求日期 -->
  <select id="selectInwardTimeByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
-    select AIR.DUE_DATE  "dueTime"
+    select AIR.DUE_DATE  "dueTime",
+           OO.ORDER_TYPE "orderType",
+           aip.PLAN_EABLE_STATUS "planEnableStatus"
     from OMSTRUCK_ORDER OO
     left join AMSTRUCK_INWARD_PLAN AIP
     on AIP.PLAN_ID=OO.ORDER_PLAN_ID
@@ -3572,7 +3725,8 @@
         RS.SHIPPER_NAME "shipperName",
         ASOM.SALE_DATE_OF_RECEIPT "saleDateOfReceipt",
         RC2.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        CONCAT(CONCAT( CONCAT( CONCAT( RDA.ADDRESS_PROVINCE, RDA.ADDRESS_DISTRICT ), RDA.ADDRESS_TOWN ),RDA.ADDRESS_DELIVERY_ADDRESS ),RRP.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName"
+        CONCAT(CONCAT( CONCAT( CONCAT( RDA.ADDRESS_PROVINCE, RDA.ADDRESS_DISTRICT ), RDA.ADDRESS_TOWN ),RDA.ADDRESS_DELIVERY_ADDRESS ),RRP.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName",
+        TTR.RESULT_TOTAL_ID "resultTotalId"
 
         FROM
         OMSTRUCK_ORDER OO
@@ -3583,6 +3737,7 @@
         LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN RMS_RECEIVE_PLACE RRP ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
         LEFT JOIN RMS_RECEIVE_ADDRESS RDA ON RDA.ADDRESS_ID = RRP.ADDRESS_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID = TTR.ORDER_ID
         WHERE
         OO.ORDER_ID = #{orderId}
         <if test="status == null">
@@ -3618,4 +3773,14 @@
         GROUP BY TLR.CAPACITY_REMARK
         )
     </select>
+
+    <select id="getLineSeq" parameterType="DECIMAL" resultType="DECIMAL" >
+        SELECT OO.ORDER_LINE_SEQUENCE AS "orderLineSequence"
+        FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
+    <select id="getCapacityNumberByCapacityId" parameterType="java.math.BigDecimal" resultType="java.lang.String">
+        select CAPACITY_NUMBER from RMS_CAPACITY  where CAPACITY_ID = #{capacityId}
+    </select>
 </mapper>

+ 25 - 1
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -496,7 +496,8 @@
         and OO.ORDER_TYPE = 1
     </select>
 
-    <!-- 批量删除物资子表 -->
+
+  <!-- 批量删除物资子表 -->
   <delete id="batchByOrderIdDelete" parameterType="java.util.List">
     delete from OMSTRUCK_ORDER_MATERIAL OOM
     where OOM.ORDER_ID in
@@ -537,4 +538,27 @@
       WHERE OO.ORDER_ID = #{orderId}
         AND WORM.MATERIAL_ID = #{materialId})
   </update>
+
+
+  <select id="getSaleOrderMaterialNum" resultType="java.util.Map">
+    select OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
+           ASM.MATERIAL_WEIGHT "materialWeight",
+           ASM.SALE_MATERIAL_ID "saleMaterialId"
+    from OMSTRUCK_ORDER OO
+        left join AMS_SALE_ORDER_MATERIAL ASOM on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_TRUCKNO_MATERIAL ASTM on ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_MATERIAL ASM on ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
+    where OO.ORDER_ID = #{orderId} and OOM.MATERIAL_ID = #{materialId} and ASM.MATERIAL_ID = #{materialId}
+  </select>
+
+
+  <update id="updateSaleOrderMaterialMes">
+    update AMS_SALE_MATERIAL
+    set MATERIAL_NUMBER = #{materialNum}
+    <if test="newWeight != null">
+     , MATERIAL_WEIGHT = #{newWeight}
+    </if>
+    where SALE_MATERIAL_ID = #{saleMaterialId}
+  </update>
 </mapper>

+ 10 - 6
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -75,7 +75,8 @@
                OO.UNLOAD_POINT_ID AS "unloadPointId",
                OO.LINE_ID     "lineId",
                OO.ORDER_STATUS "orderStatus",
-               TTR.RESULT_TOTAL_ID  "resultTotalId"
+               TTR.RESULT_TOTAL_ID  "resultTotalId",
+               OO.CAPACITY_ID   "capacityId"
         FROM OMSTRUCK_ORDER OO
             left join TMSTRUCK_TOTAL_RESULT TTR
                 on TTR.ORDER_ID = OO.ORDER_ID
@@ -433,12 +434,12 @@
     </select>
 
 <!--    查询当前车辆之前所有已完成的订单  -->
-    <select id="getCapacityAllOrder" parameterType="string" resultType="java.util.Map">
+    <select id="getCapacityAllOrder" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
                  select OO.ORDER_ID     "orderId",
-                        OO.ORDER_NUMBER "orderNumber"
-
+                        OO.ORDER_NUMBER "orderNumber",
+                        OO.ORDER_RECEIVE_REFUSE_TIME "orderDate"
                  from OMSTRUCK_ORDER OO
                           left join RMS_CAPACITY RC
                                     on RC.CAPACITY_ID = OO.CAPACITY_ID
@@ -446,7 +447,9 @@
                    and OO.ORDER_STATUS = 2
                  order by OO.ORDER_RECEIVE_REFUSE_TIME desc
              )
-        where rownum &lt;= 51
+        <if test="date != null">
+            Where to_char("orderDate",'YYYY-MM') = #{date}
+        </if>
     </select>
 
 <!--  查询订单发货日期 (订单类型为2) -->
@@ -735,7 +738,8 @@
     <select id="getOrderMesByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
         select OO.ORDER_TYPE    "orderType",
                OO.ORDER_PLAN_ID "orderPlanId",
-               TTR.RESULT_TOTAL_ID  "resultTotalId"
+               TTR.RESULT_TOTAL_ID  "resultTotalId",
+               OO.INSERT_UPDATE_REMARK  "insertUpdateRemark"
         from OMSTRUCK_ORDER OO
                  left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
         where OO.ORDER_ID = #{orderId}

+ 19 - 0
src/main/resources/com/steerinfo/dil/mapper/ZJXLUtilMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.steerinfo.dil.mapper.ZJXLUtilMapper">
+
+    <insert id="insertSubCapacity">
+        insert into QMS_SUB_CAPACITY (SUB_CAPACITY_ID, CAPACITY_NUMBER, RESULT_TOTAL_ID, SUB_STATUS, INSERT_TIME)
+        values (#{subCapacityId}, #{capacityNumber}, #{resultTotalId}, 0, SYSDATE)
+    </insert>
+
+    <update id="cancelSubCapacity">
+        update QMS_SUB_CAPACITY
+        set SUB_STATUS  = 1,
+            UPDATE_TIME = SYSDATE
+        where CAPACITY_NUMBER = #{capacityNumber}
+          and SUB_STATUS = 0
+    </update>
+
+
+</mapper>