Browse Source

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

txf 3 years ago
parent
commit
eb52d0f0eb

+ 1 - 0
pom.xml

@@ -109,6 +109,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
+                        <param>AMSTRUCK_RAIL_DAYPLAN</param>
                     <param>RMS_DRIVER_CAPACITY</param>
                     </tables>
                 </configuration>

+ 87 - 2
src/main/java/com/steerinfo/dil/controller/OmstruckOrderController.java

@@ -14,6 +14,7 @@ import com.steerinfo.framework.service.pagehelper.PageHelper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import oracle.jdbc.proxy.annotation.Post;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -37,7 +38,8 @@ import java.util.*;
  */
 @RestController
 @RequestMapping("/${api.version}/omstruckorders")
-public class OmstruckOrderController extends BaseRESTfulController {
+public class
+OmstruckOrderController extends BaseRESTfulController {
 
     @Autowired
     IOmstruckOrderService omstruckOrderService;
@@ -773,7 +775,6 @@ public class OmstruckOrderController extends BaseRESTfulController {
                                               Integer apiId,
                                               Integer pageNum,
                                               Integer pageSize,
-
                                               Integer orderType,
                                               Integer orderStatus,
                                               String con,
@@ -1206,4 +1207,88 @@ public class OmstruckOrderController extends BaseRESTfulController {
         return success(pageList);
     }
 
+    //=================================================================================================
+    // 内转运输订单
+    @ApiOperation(value = "分解内转计划(新增运输订单)")
+    @PostMapping("/addInwardOrder")
+    public RESTfulResult addInwardOrder(@RequestBody Map<String,Object> mapValue) {
+        int result = omstruckOrderService.addInwardOrder(mapValue);
+        return success(result);
+    }
+
+    @ApiOperation(value = " 分解/分派计划查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(260)", value = "动态表头", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getInwardOrderList")
+    public RESTfulResult getInwardOrderList(@RequestBody(required = false) Map<String, Object> mapValue,
+                                                  Integer apiId,
+                                                  Integer pageNum,
+                                                  Integer pageSize,
+                                                  Integer orderStatus,
+                                                  Integer carrierId,
+                                                  String con) {
+        if (con != null) {
+            if(!"undefined".equals(con)){
+                String index="get_inward_order_list";//设置要查询的索引名称
+                return success(esFeign.getConResult(mapValue,index,apiId,pageNum,pageSize,con));//获取查询结果
+            }
+        }
+        int count = 0;
+        if (mapValue == null) {
+            mapValue = new HashMap<>();
+        }
+        if (carrierId != null && !"undefined".equals(carrierId.toString())) {
+            mapValue.put("carrierId",new BigDecimal(carrierId));
+            count++;
+        }
+        mapValue.put("orderStatus",(orderStatus));
+        count++;
+        List<Map<String, Object>> dispatchSaleOrderList = null;
+        if (mapValue.size() == count) {
+            //将查询结果存入索引中
+            dispatchSaleOrderList = omstruckOrderService.getInwardOrderList(mapValue);
+            Map<String, Object> map1 = new HashMap<>();
+            //添加索引
+            map1.put("index","get_inward_order_list");
+            //添加id
+            map1.put("indexId","planId");
+            dispatchSaleOrderList.add(map1);
+            //新建索引
+            esFeign.insertIndex(dispatchSaleOrderList);
+            //删除
+            dispatchSaleOrderList.remove(dispatchSaleOrderList.size()-1);
+        }
+        if (dispatchSaleOrderList == null) {
+            dispatchSaleOrderList = omstruckOrderService.getInwardOrderList(mapValue);
+        }
+        PageHelper.startPage(pageNum,pageSize);
+        List<Map<String, Object>> columnList = omstruckOrderService.getInwardOrderList(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, dispatchSaleOrderList,columnList);
+        return success(pageList);
+    }
+
+    @ApiOperation(value = "分派计划")
+    @PostMapping("/apportionInwardOrder")
+    public RESTfulResult apportionInwardOrder(@RequestBody List<Map<String,Object>> mapList) {
+        int result = omstruckOrderService.apportionInwardOrder(mapList);
+        return success(result);
+    }
+
+    @ApiOperation(value = "下发计划")
+    @PostMapping("/issuePlanOrder")
+    public RESTfulResult issuePlanOrder(@RequestBody List<Map<String,Object>> mapList) {
+        int result = omstruckOrderService.issuePlanOrder(mapList);
+        return success(result);
+    }
+
+    @ApiOperation(value = "司机APP端查询下发给自己运输订单")
+    @PostMapping("/sendOrderToApp")
+    public List<Map<String,Object>> sendOrderToApp(@RequestParam String capacityNumber) {
+        List<Map<String,Object>> mapList = omstruckOrderService.sendOrderToApp(capacityNumber);
+        return mapList;
+    }
 }

+ 0 - 1
src/main/java/com/steerinfo/dil/controller/UtilsController.java

@@ -61,7 +61,6 @@ public class UtilsController extends BaseRESTfulController {
     @RequestMapping("/websocket/sendToUser")
     @ResponseBody
     public String sendToUser(@RequestBody List<Message> messages) {
-
         HashMap<String, Object> map = new HashMap<>();
         map.put("messages", messages);
         imFeign.sendToUser(map);

+ 14 - 0
src/main/java/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.java

@@ -0,0 +1,14 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.AmstruckInwardPlan;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface AmstruckInwardPlanMapper extends IBaseMapper<AmstruckInwardPlan, BigDecimal> {
+}

+ 25 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -176,4 +176,29 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     List<Map<String,Object>> getCapacityAndDriver(Map<String,Object> mapValue);
 
     List<BigDecimal> getNullOrNotNull(BigDecimal dispatchId);
+
+    BigDecimal getInwardMaterial(BigDecimal planId);
+
+    List<Map<String, Object>> getInwardOrderList(Map<String, Object> mapValue);
+
+    List<Map<String, Object>> getResultList(BigDecimal driverCapacityId);
+
+    Map<String, Object> sendOrderToApp(Map<String, Object> map);
+
+    Map<String, Object> getSaleOrderMap(BigDecimal orderId);
+
+    Map<String, Object> getSteelInwardOrderMap(BigDecimal orderId);
+
+    Map<String, Object> getPurchaseOrderMap(BigDecimal orderId);
+
+    Map<String, Object> getInwardOrderMap(BigDecimal orderId);
+
+    List<Map<String,Object>> getMaterialMes(BigDecimal orderId);
+
+    //根据运输订单查询车牌号
+    String selectCapacityNumber(BigDecimal orderId);
+
+    //根据运输订单查询运输状态
+    BigDecimal selectOrderType(BigDecimal orderId);
+
 }

+ 229 - 0
src/main/java/com/steerinfo/dil/model/AmstruckInwardPlan.java

@@ -0,0 +1,229 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="内转运输计划")
+public class AmstruckInwardPlan implements IBasePO<BigDecimal> {
+    /**
+     * 主键id(PLAN_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键id",required=true)
+    private BigDecimal planId;
+
+    /**
+     * 运输计划号(PLAN_NUMBER,VARCHAR,20)
+     */
+    @ApiModelProperty(value="运输计划号",required=false)
+    private String planNumber;
+
+    /**
+     * 承运商ID(CARRIER_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="承运商ID",required=false)
+    private BigDecimal carrierId;
+
+    /**
+     * 车数(PLAN_TRUCK_NUMBER,DECIMAL,0)
+     */
+    @ApiModelProperty(value="车数",required=false)
+    private BigDecimal planTruckNumber;
+
+    /**
+     * 计划状态(0:未下发;1:已下发;2:已接收)(PLAN_STATUS,DECIMAL,38)
+     */
+    @ApiModelProperty(value="计划状态(0:未下发;1:已下发;2:已接收)",required=false)
+    private BigDecimal planStatus;
+
+    /**
+     * 计划下发时间(PLAN_ISSUE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="计划下发时间",required=false)
+    private Date planIssueTime;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    /**
+     * 0:未删除;1:已删除(DELETED,DECIMAL,0)
+     */
+    @ApiModelProperty(value="0:未删除;1:已删除",required=false)
+    private BigDecimal deleted;
+
+    /**
+     * 计划下发人(PLAN_ISSUE_NAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="计划下发人",required=false)
+    private String planIssueName;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.planId;
+    }
+
+    @Override
+    public void setId(BigDecimal planId) {
+        this.planId = planId;
+    }
+
+    public BigDecimal getPlanId() {
+        return planId;
+    }
+
+    public void setPlanId(BigDecimal planId) {
+        this.planId = planId;
+    }
+
+    public String getPlanNumber() {
+        return planNumber;
+    }
+
+    public void setPlanNumber(String planNumber) {
+        this.planNumber = planNumber == null ? null : planNumber.trim();
+    }
+
+    public BigDecimal getCarrierId() {
+        return carrierId;
+    }
+
+    public void setCarrierId(BigDecimal carrierId) {
+        this.carrierId = carrierId;
+    }
+
+    public BigDecimal getPlanTruckNumber() {
+        return planTruckNumber;
+    }
+
+    public void setPlanTruckNumber(BigDecimal planTruckNumber) {
+        this.planTruckNumber = planTruckNumber;
+    }
+
+    public BigDecimal getPlanStatus() {
+        return planStatus;
+    }
+
+    public void setPlanStatus(BigDecimal planStatus) {
+        this.planStatus = planStatus;
+    }
+
+    public Date getPlanIssueTime() {
+        return planIssueTime;
+    }
+
+    public void setPlanIssueTime(Date planIssueTime) {
+        this.planIssueTime = planIssueTime;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    public BigDecimal getDeleted() {
+        return deleted;
+    }
+
+    public void setDeleted(BigDecimal deleted) {
+        this.deleted = deleted;
+    }
+
+    public String getPlanIssueName() {
+        return planIssueName;
+    }
+
+    public void setPlanIssueName(String planIssueName) {
+        this.planIssueName = planIssueName == null ? null : planIssueName.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", planId=").append(planId);
+        sb.append(", planNumber=").append(planNumber);
+        sb.append(", carrierId=").append(carrierId);
+        sb.append(", planTruckNumber=").append(planTruckNumber);
+        sb.append(", planStatus=").append(planStatus);
+        sb.append(", planIssueTime=").append(planIssueTime);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", deleted=").append(deleted);
+        sb.append(", planIssueName=").append(planIssueName);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

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

@@ -152,4 +152,15 @@ public interface IOmstruckOrderService {
     List<Map<String, Object>> getCapacityAndDriverList(Map<String, Object> mapValue);
     //关闭运输订单
     int closeOrder(Map<String,Object> map);
+    // 新增内转运输订单
+    int addInwardOrder(Map<String, Object> mapValue);
+    // 查询分解计划
+    List<Map<String, Object>> getInwardOrderList(Map<String, Object> mapValue);
+    // 下发计划
+    int issuePlanOrder(List<Map<String, Object>> mapList);
+    // 分派计划
+    int apportionInwardOrder(List<Map<String, Object>> mapList);
+
+    // 司机APP端查询下发给自己运输订单
+    List<Map<String, Object>> sendOrderToApp(String capacityNumber);
 }

+ 222 - 6
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -3,17 +3,17 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.feign.AmsFeign;
 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.RmsCapacityMapper;
-import com.steerinfo.dil.mapper.RmsDriverCapacityMapper;
+import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.IOmstruckOrderService;
 import com.steerinfo.dil.util.DataChange;
+import com.sun.javafx.collections.MappingChange;
+import javafx.beans.binding.ObjectBinding;
 import javafx.scene.paint.Material;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import redis.clients.util.Hashing;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -57,6 +57,9 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Autowired
     RmsDriverCapacityMapper rmsDriverCapacityMapper;
 
+    @Autowired
+    AmstruckInwardPlanMapper amstruckInwardPlanMapper;
+
 
     /**
      * 用于远程调用运输订单新增
@@ -461,7 +464,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         Map<String, Object> mesMap = omstruckOrderMapper.pushMesToWebsocket(map);
         //添加消息实体
         HashMap<Object, Object> mapp = new HashMap<>();
-        mapp.put("messageType", 2);
+        mapp.put("messageType", 3);
         mapp.put("sendPerson", "system");
         mapp.put("receivePerson", mesMap.get("capacityNumber"));
         mapp.put("messageContent", mesMap);
@@ -649,10 +652,10 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     public List<Map<String, Object>> sendMesToDriver(Map<String, Object> map) {
         //通过车牌号匹配运力ID
         BigDecimal capacityId = omstruckOrderMapper.getCapacityIdByCapacityNum((String) map.get("capacityNumber"));
-        map.put("capacityId", capacityId);
         if (capacityId == null) {
             return null;
         }
+        map.put("capacityId", capacityId);
         //通过运力Id匹配 已下发的运输订单
         List<Map<String, Object>> truckOrderByCapacityNum;
         if ((Integer) map.get("orderType") == 1 || (Integer) map.get("orderType") == 2) {
@@ -1174,5 +1177,218 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         return 1;
     }
 
+    /**
+     * 新增内转运输订单
+     * @param mapValue
+     * @return
+     */
+    @Transactional
+    @Override
+    public int addInwardOrder(Map<String, Object> mapValue) {
+        int result = 0;
+        List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
+        String planId = (String) mapValue.get("planId");
+        Integer lineId = (Integer) mapValue.get("lineId");
+        String orderType = (String) mapValue.get("orderType");
+        Integer carrierId = (Integer) mapValue.get("carrierId");
+        AmstruckInwardPlan amstruckInwardPlan = amstruckInwardPlanMapper.selectByPrimaryKey(new BigDecimal(planId));
+        amstruckInwardPlan.setPlanStatus(new BigDecimal(3));
+        result += amstruckInwardPlanMapper.updateByPrimaryKeySelective(amstruckInwardPlan);
+        BigDecimal materialId = omstruckOrderMapper.getInwardMaterial(new BigDecimal(planId));
+        for (Map<String,Object> orderMap : mapList) {
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            String capacityNumber = (String)orderMap.get("capacityNumber");
+            BigDecimal materialNumber = DataChange.dataToBigDecimal(orderMap.get("materialNumber")) ;
+            BigDecimal materialWeight = DataChange.dataToBigDecimal(orderMap.get("materialWeight"));
+            Map<String,Object> capacityMap = new HashMap<>();
+            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();
+            capacityMap.put("capacityId",capacityId);
+            List<RmsDriverCapacity> rmsDriverCapacities = rmsDriverCapacityMapper.selectByParameters(capacityMap);
+            RmsDriverCapacity rmsDriverCapacity = rmsDriverCapacities.get(0);
+            rmsDriverCapacity.setCarrierId(new BigDecimal(carrierId));
+            result +=rmsDriverCapacityMapper.updateByPrimaryKeySelective(rmsDriverCapacity);
+            BigDecimal orderId = omstruckOrderMapper.selectMaxId();
+            omstruckOrder.setOrderId(orderId);
+            omstruckOrder.setOrderPlanId(new BigDecimal(planId));
+            String orderNumber = DataChange.generateEightDigitsNumber("WYSDD", orderId.intValue());
+            omstruckOrder.setOrderNumber(orderNumber);
+            omstruckOrder.setOrderIssueTime(new Date());
+            omstruckOrder.setOrderStatus(new BigDecimal(3));
+            omstruckOrder.setInsertTime(new Date());
+            omstruckOrder.setUpdateTime(new Date());
+            omstruckOrder.setInsertUsername("admin");
+            omstruckOrder.setUpdateUsername("admin");
+            omstruckOrder.setInsertUpdateRemark("无");
+            omstruckOrder.setDeleted(new BigDecimal(0));
+            omstruckOrder.setOrderType(new BigDecimal(orderType));
+            omstruckOrder.setLineId(new BigDecimal(lineId));
+            omstruckOrder.setDriverCapacityId(rmsDriverCapacity.getDriverCapacityId());
+            result +=omstruckOrderMapper.insertSelective(omstruckOrder);
+            OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
+            BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
+            omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
+            omstruckOrderMaterial.setOrderId(orderId);
+            omstruckOrderMaterial.setMaterialId(materialId);
+            omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+            omstruckOrderMaterial.setInsertTime(new Date());
+            omstruckOrderMaterial.setUpdateTime(new Date());
+            omstruckOrderMaterial.setInsertUsername("admin");
+            omstruckOrderMaterial.setUpdateUsername("admin");
+            omstruckOrderMaterial.setInsertUpdateRemark("无");
+            omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
+            result +=omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+        }
+        return result;
+    }
+
+    /**
+     * 查询分解计划
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getInwardOrderList(Map<String, Object> mapValue) {
+        List<Map<String,Object>> mapList = omstruckOrderMapper.getInwardOrderList(mapValue);
+        return mapList;
+    }
+
+    /**
+     * 下发计划
+     * @param mapList
+     * @return
+     */
+    @Override
+    public int issuePlanOrder(List<Map<String, Object>> mapList) {
+        int result = 0;
+        for (Map<String,Object> map : mapList) {
+            Integer orderId = (Integer) map.get("orderId");
+            OmstruckOrder omstruckOrder = omstruckOrderMapper.selectByPrimaryKey(new BigDecimal(orderId));
+            omstruckOrder.setOrderStatus(new BigDecimal(4));
+            omstruckOrder.setOrderIssueTime(new Date());
+            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        }
+        return result;
+    }
+
+    /**
+     * 分派计划
+     * @param mapList
+     * @return
+     */
+    @Override
+    public int apportionInwardOrder(List<Map<String, Object>> mapList) {
+        int result = 0;
+        for (Map<String,Object> map : mapList) {
+            BigDecimal orderId = new BigDecimal((Integer) map.get("orderId"));
+            OmstruckOrder omstruckOrder = omstruckOrderMapper.selectByPrimaryKey(orderId);
+            omstruckOrder.setOrderIssueTime(new Date());
+            omstruckOrder.setOrderStatus(new BigDecimal(4));
+            Map<Object, Object> map9 = new HashMap<>();
+            long data = new Date().getTime();
+            //根据运输订单id查询车牌号
+            String capacityNumber = omstruckOrderMapper.selectCapacityNumber(orderId);
+            BigDecimal orderType = omstruckOrderMapper.selectOrderType(orderId);
+
+            map9.put("receivePerson",capacityNumber);
+            map9.put("messageType",2);
+            map9.put("snedPerson","system");
+            map9.put("creatTime",data);
+
+            result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        }
+        return result;
+    }
+
+    /**
+     * 司机APP端查询下发给自己运输订单
+     * @param capacityNumber
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> sendOrderToApp(String capacityNumber) {
+        //通过车牌号匹配运力ID
+        BigDecimal capacityId = omstruckOrderMapper.getCapacityIdByCapacityNum(capacityNumber);
+        BigDecimal driverCapacityId = omstruckOrderMapper.getDriverCapacityId(capacityId);
+        List<Map<String,Object>> resultList = omstruckOrderMapper.getResultList(driverCapacityId);
+        for (Map<String,Object> map : resultList) {
+            BigDecimal orderId = (BigDecimal) map.get("orderId");
+            BigDecimal orderType = (BigDecimal) map.get("orderType");
+            // 查询物资信息
+            List<Map<String,Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId);
+            int intValue = orderType.intValue();
+            String allMaterialName = null;
+            String allMaterialNumber = null;
+            String allMaterialWeight = null;
+            String allMaterialSpecificationModel = null;
+            // 对物资信息进行处理
+            if (materialMapList != null && materialMapList.size() != 0) {
+                for (Map<String,Object> materialMap : materialMapList) {
+                    String materialName = (String) materialMap.get("materialName");
+                    BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
+                    BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
+                    String materialModel = (String) materialMap.get("materialModel");
+                    String materialSpecification = (String) materialMap.get("materialSpecification");
+                    allMaterialName += materialName + "/";
+                    allMaterialNumber += materialNumber + "/";
+                    allMaterialWeight += materialWeight + "/";
+                    allMaterialSpecificationModel += materialSpecification + materialModel + "/";
+                }
+                String subMaterialName = null;
+                String subMaterialNumber = null;
+                String subMaterialWeight = null;
+                String subMaterialSpecificationModel = null;
+                if (allMaterialName.length() >= 2) {
+                    subMaterialName = allMaterialName.substring(0, allMaterialName.length() - 2);
+                }
+                if (allMaterialName.length() < 2) {
+                    subMaterialName = allMaterialName;
+                }
+                if (allMaterialNumber.length() >= 2) {
+                    subMaterialNumber = allMaterialNumber.substring(0, allMaterialNumber.length() - 2);
+                }
+                if (allMaterialNumber.length() < 2) {
+                    subMaterialNumber = allMaterialNumber;
+                }
+                if (allMaterialWeight.length() >= 2) {
+                    subMaterialWeight = allMaterialWeight.substring(0, allMaterialWeight.length() - 2);
+                }
+                if (allMaterialWeight.length() < 2) {
+                    subMaterialWeight = allMaterialWeight;
+                }
+                if (allMaterialSpecificationModel.length() >= 2) {
+                    subMaterialSpecificationModel = allMaterialSpecificationModel.substring(0, allMaterialSpecificationModel.length() - 2);
+                }
+                if (allMaterialSpecificationModel.length() < 2) {
+                    subMaterialSpecificationModel = allMaterialSpecificationModel;
+                }
+                map.put("allMaterialName", subMaterialName);
+                map.put("allMaterialNumber", subMaterialNumber);
+                map.put("allMaterialWeight", subMaterialWeight);
+                map.put("allMaterialSpecificationModel", subMaterialSpecificationModel);
+            }
+            Map<String,Object> orderMap = null;
+            if (intValue == 1 || intValue == 2 || intValue == 3) {
+                orderMap = omstruckOrderMapper.getSaleOrderMap(orderId);
+            }
+            if (intValue == 4) {
+                orderMap = omstruckOrderMapper.getSteelInwardOrderMap(orderId);
+            }
+            if (intValue == 5 || intValue == 6 || intValue == 7 || intValue == 8) {
+                orderMap = omstruckOrderMapper.getPurchaseOrderMap(orderId);
+            }
+            if (intValue == 9 || intValue == 10 || intValue == 11) {
+                orderMap = omstruckOrderMapper.getInwardOrderMap(orderId);
+            }
+            map.putAll(orderMap);
+        }
+        return resultList;
+    }
+
 
 }

+ 430 - 0
src/main/resources/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.xml

@@ -0,0 +1,430 @@
+<?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.AmstruckInwardPlanMapper">
+    <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.AmstruckInwardPlan">
+        <id column="PLAN_ID" jdbcType="DECIMAL" property="planId"/>
+        <result column="PLAN_NUMBER" jdbcType="VARCHAR" property="planNumber"/>
+        <result column="CARRIER_ID" jdbcType="DECIMAL" property="carrierId"/>
+        <result column="PLAN_TRUCK_NUMBER" jdbcType="DECIMAL" property="planTruckNumber"/>
+        <result column="PLAN_STATUS" jdbcType="DECIMAL" property="planStatus"/>
+        <result column="PLAN_ISSUE_TIME" jdbcType="TIMESTAMP" property="planIssueTime"/>
+        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername"/>
+        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime"/>
+        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername"/>
+        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark"/>
+        <result column="DELETED" jdbcType="DECIMAL" property="deleted"/>
+        <result column="PLAN_ISSUE_NAME" jdbcType="VARCHAR" property="planIssueName"/>
+    </resultMap>
+    <sql id="columns">
+        PLAN_ID, PLAN_NUMBER, CARRIER_ID, PLAN_TRUCK_NUMBER, PLAN_STATUS, PLAN_ISSUE_TIME,
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
+    DELETED, PLAN_ISSUE_NAME
+    </sql>
+    <sql id="columns_alias">
+        t.PLAN_ID, t.PLAN_NUMBER, t.CARRIER_ID, t.PLAN_TRUCK_NUMBER, t.PLAN_STATUS, t.PLAN_ISSUE_TIME,
+    t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK,
+    t.DELETED, t.PLAN_ISSUE_NAME
+    </sql>
+    <sql id="select">
+        SELECT
+        <include refid="columns"/>
+        FROM AMSTRUCK_INWARD_PLAN
+    </sql>
+    <sql id="select_alias">
+        SELECT
+        <include refid="columns_alias"/>
+        FROM AMSTRUCK_INWARD_PLAN t
+    </sql>
+    <sql id="where">
+        <where>
+            <if test="planId != null">
+                and PLAN_ID = #{planId}
+            </if>
+            <if test="planNumber != null and planNumber != ''">
+                and PLAN_NUMBER = #{planNumber}
+            </if>
+            <if test="carrierId != null">
+                and CARRIER_ID = #{carrierId}
+            </if>
+            <if test="planTruckNumber != null">
+                and PLAN_TRUCK_NUMBER = #{planTruckNumber}
+            </if>
+            <if test="planStatus != null">
+                and PLAN_STATUS = #{planStatus}
+            </if>
+            <if test="planIssueTime != null">
+                and TO_CHAR(PLAN_ISSUE_TIME,'yyyy-MM-dd') = #{planIssueTime}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME = #{insertUsername}
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME = #{updateUsername}
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+            </if>
+            <if test="deleted != null">
+                and DELETED = #{deleted}
+            </if>
+            <if test="planIssueName != null and planIssueName != ''">
+                and PLAN_ISSUE_NAME = #{planIssueName}
+            </if>
+        </where>
+    </sql>
+    <sql id="whereLike">
+        <where>
+            <if test="planId != null">
+                and PLAN_ID = #{planId}
+            </if>
+            <if test="planNumber != null and planNumber != ''">
+                and PLAN_NUMBER LIKE '%${planNumber}%'
+            </if>
+            <if test="carrierId != null">
+                and CARRIER_ID = #{carrierId}
+            </if>
+            <if test="planTruckNumber != null">
+                and PLAN_TRUCK_NUMBER = #{planTruckNumber}
+            </if>
+            <if test="planStatus != null">
+                and PLAN_STATUS = #{planStatus}
+            </if>
+            <if test="planIssueTime != null">
+                and TO_CHAR(PLAN_ISSUE_TIME,'yyyy-MM-dd') = #{planIssueTime}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME LIKE '%${insertUsername}%'
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME LIKE '%${updateUsername}%'
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+            </if>
+            <if test="deleted != null">
+                and DELETED = #{deleted}
+            </if>
+            <if test="planIssueName != null and planIssueName != ''">
+                and PLAN_ISSUE_NAME LIKE '%${planIssueName}%'
+            </if>
+        </where>
+    </sql>
+    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+        delete
+        from AMSTRUCK_INWARD_PLAN
+        where PLAN_ID = #{planId,jdbcType=DECIMAL}
+    </delete>
+    <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+        delete from AMSTRUCK_INWARD_PLAN
+        where 1!=1
+        <if test="planNumber != null and planNumber != ''">
+            or PLAN_NUMBER = #{planNumber}
+        </if>
+        <if test="carrierId != null">
+            or CARRIER_ID = #{carrierId}
+        </if>
+        <if test="planTruckNumber != null">
+            or PLAN_TRUCK_NUMBER = #{planTruckNumber}
+        </if>
+        <if test="planStatus != null">
+            or PLAN_STATUS = #{planStatus}
+        </if>
+        <if test="planIssueTime != null">
+            or TO_CHAR(PLAN_ISSUE_TIME,'yyyy-MM-dd') = '#{planIssueTime}'
+        </if>
+        <if test="insertUsername != null and insertUsername != ''">
+            or INSERT_USERNAME = #{insertUsername}
+        </if>
+        <if test="insertTime != null">
+            or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+        </if>
+        <if test="updateUsername != null and updateUsername != ''">
+            or UPDATE_USERNAME = #{updateUsername}
+        </if>
+        <if test="updateTime != null">
+            or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+        </if>
+        <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+            or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+        </if>
+        <if test="deleted != null">
+            or DELETED = #{deleted}
+        </if>
+        <if test="planIssueName != null and planIssueName != ''">
+            or PLAN_ISSUE_NAME = #{planIssueName}
+        </if>
+    </delete>
+    <insert id="insert" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
+        insert into AMSTRUCK_INWARD_PLAN (PLAN_ID, PLAN_NUMBER, CARRIER_ID,
+                                          PLAN_TRUCK_NUMBER, PLAN_STATUS, PLAN_ISSUE_TIME,
+                                          INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
+                                          UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED,
+                                          PLAN_ISSUE_NAME)
+        values (#{planId,jdbcType=DECIMAL}, #{planNumber,jdbcType=VARCHAR}, #{carrierId,jdbcType=DECIMAL},
+                #{planTruckNumber,jdbcType=DECIMAL}, #{planStatus,jdbcType=DECIMAL},
+                #{planIssueTime,jdbcType=TIMESTAMP},
+                #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
+                #{updateUsername,jdbcType=VARCHAR},
+                #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL},
+                #{planIssueName,jdbcType=VARCHAR})
+    </insert>
+    <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
+        insert into AMSTRUCK_INWARD_PLAN
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="planId != null">
+                PLAN_ID,
+            </if>
+            <if test="planNumber != null">
+                PLAN_NUMBER,
+            </if>
+            <if test="carrierId != null">
+                CARRIER_ID,
+            </if>
+            <if test="planTruckNumber != null">
+                PLAN_TRUCK_NUMBER,
+            </if>
+            <if test="planStatus != null">
+                PLAN_STATUS,
+            </if>
+            <if test="planIssueTime != null">
+                PLAN_ISSUE_TIME,
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME,
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME,
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME,
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME,
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK,
+            </if>
+            <if test="deleted != null">
+                DELETED,
+            </if>
+            <if test="planIssueName != null">
+                PLAN_ISSUE_NAME,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="planId != null">
+                #{planId,jdbcType=DECIMAL},
+            </if>
+            <if test="planNumber != null">
+                #{planNumber,jdbcType=VARCHAR},
+            </if>
+            <if test="carrierId != null">
+                #{carrierId,jdbcType=DECIMAL},
+            </if>
+            <if test="planTruckNumber != null">
+                #{planTruckNumber,jdbcType=DECIMAL},
+            </if>
+            <if test="planStatus != null">
+                #{planStatus,jdbcType=DECIMAL},
+            </if>
+            <if test="planIssueTime != null">
+                #{planIssueTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUsername != null">
+                #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+            <if test="deleted != null">
+                #{deleted,jdbcType=DECIMAL},
+            </if>
+            <if test="planIssueName != null">
+                #{planIssueName,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
+        update AMSTRUCK_INWARD_PLAN
+        set PLAN_NUMBER          = #{planNumber,jdbcType=VARCHAR},
+            CARRIER_ID           = #{carrierId,jdbcType=DECIMAL},
+            PLAN_TRUCK_NUMBER    = #{planTruckNumber,jdbcType=DECIMAL},
+            PLAN_STATUS          = #{planStatus,jdbcType=DECIMAL},
+            PLAN_ISSUE_TIME      = #{planIssueTime,jdbcType=TIMESTAMP},
+            INSERT_USERNAME      = #{insertUsername,jdbcType=VARCHAR},
+            INSERT_TIME          = #{insertTime,jdbcType=TIMESTAMP},
+            UPDATE_USERNAME      = #{updateUsername,jdbcType=VARCHAR},
+            UPDATE_TIME          = #{updateTime,jdbcType=TIMESTAMP},
+            INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            DELETED              = #{deleted,jdbcType=DECIMAL},
+            PLAN_ISSUE_NAME      = #{planIssueName,jdbcType=VARCHAR}
+        where PLAN_ID = #{planId,jdbcType=DECIMAL}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmstruckInwardPlan">
+        update AMSTRUCK_INWARD_PLAN
+        <set>
+            <if test="planNumber != null">
+                PLAN_NUMBER = #{planNumber,jdbcType=VARCHAR},
+            </if>
+            <if test="carrierId != null">
+                CARRIER_ID = #{carrierId,jdbcType=DECIMAL},
+            </if>
+            <if test="planTruckNumber != null">
+                PLAN_TRUCK_NUMBER = #{planTruckNumber,jdbcType=DECIMAL},
+            </if>
+            <if test="planStatus != null">
+                PLAN_STATUS = #{planStatus,jdbcType=DECIMAL},
+            </if>
+            <if test="planIssueTime != null">
+                PLAN_ISSUE_TIME = #{planIssueTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+            <if test="deleted != null">
+                DELETED = #{deleted,jdbcType=DECIMAL},
+            </if>
+            <if test="planIssueName != null">
+                PLAN_ISSUE_NAME = #{planIssueName,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where PLAN_ID = #{planId,jdbcType=DECIMAL}
+    </update>
+    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+        <include refid="select"/>
+        where PLAN_ID = #{planId,jdbcType=DECIMAL}
+    </select>
+    <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="where"/>
+    </select>
+    <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="whereLike"/>
+    </select>
+    <insert id="batchInsert" parameterType="java.util.List">
+        insert into AMSTRUCK_INWARD_PLAN
+        (PLAN_ID,
+        PLAN_NUMBER, CARRIER_ID, PLAN_TRUCK_NUMBER,
+        PLAN_STATUS, PLAN_ISSUE_TIME,
+        INSERT_USERNAME, INSERT_TIME,
+        UPDATE_USERNAME, UPDATE_TIME,
+        INSERT_UPDATE_REMARK, DELETED,
+        PLAN_ISSUE_NAME)
+        ( <foreach collection="list" item="item" separator="union all">
+        select
+        #{item.planId,jdbcType=DECIMAL},
+        #{item.planNumber,jdbcType=VARCHAR}, #{item.carrierId,jdbcType=DECIMAL},
+        #{item.planTruckNumber,jdbcType=DECIMAL},
+        #{item.planStatus,jdbcType=DECIMAL}, #{item.planIssueTime,jdbcType=TIMESTAMP},
+        #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
+        #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
+        #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleted,jdbcType=DECIMAL},
+        #{item.planIssueName,jdbcType=VARCHAR} from dual
+    </foreach> )
+    </insert>
+    <update id="batchUpdate" parameterType="java.util.List">
+        update AMSTRUCK_INWARD_PLAN
+        set
+        PLAN_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planId,jdbcType=DECIMAL}
+        </foreach>
+        ,PLAN_NUMBER=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planNumber,jdbcType=VARCHAR}
+        </foreach>
+        ,CARRIER_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.carrierId,jdbcType=DECIMAL}
+        </foreach>
+        ,PLAN_TRUCK_NUMBER=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planTruckNumber,jdbcType=DECIMAL}
+        </foreach>
+        ,PLAN_STATUS=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planStatus,jdbcType=DECIMAL}
+        </foreach>
+        ,PLAN_ISSUE_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planIssueTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,INSERT_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,UPDATE_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,UPDATE_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_UPDATE_REMARK=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+        </foreach>
+        ,DELETED=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.deleted,jdbcType=DECIMAL}
+        </foreach>
+        ,PLAN_ISSUE_NAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case PLAN_ID" close="end">
+            when #{item.planId,jdbcType=DECIMAL} then #{item.planIssueName,jdbcType=VARCHAR}
+        </foreach>
+        where PLAN_ID in
+        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+            #{item.planId,jdbcType=DECIMAL}
+        </foreach>
+    </update>
+    <delete id="batchDelete" parameterType="java.util.List">
+        delete from AMSTRUCK_INWARD_PLAN
+        where PLAN_ID in
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+    <!-- 友情提示!!!-->
+    <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+
+</mapper>

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

@@ -1421,42 +1421,42 @@
 
     <!-- 查询已下发已接受的销售订单信息 -->
     <select id="getOrderReceived" parameterType="DECIMAL" resultType="java.util.Map">
-        SELECT aso.SALE_NUMBER    as "saleNumber",
-               oo.ORDER_NUMBER    as "orderNumber",
-               oo.INSERT_USERNAME as "insertUsername",
-               rc.CAPACITY_NUMBER as "capacityNumber"
+        SELECT aso.SALE_NUMBER as "saleNumber",
+        oo.ORDER_NUMBER as "orderNumber",
+        oo.INSERT_USERNAME as "insertUsername",
+        rc.CAPACITY_NUMBER as "capacityNumber"
         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_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_CAPACITY rc
+        ON rc.CAPACITY_ID = oo.CAPACITY_ID
         WHERE oo.ORDER_ISSUE_TIME IS NOT NULL
-          AND oo.ORDER_RECEIVE_STATUS = 1
-          AND oo.ORDER_TYPE = #{orderType}
-    <where>
-        <if test="saleNumber != null">
-            <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
-                "saleNumber" like '%${item}%'
-            </foreach>
-        </if>
-        <if test="orderNumber != null">
-            <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
-                "orderNumber" like '%${item}%'
-            </foreach>
-        </if>
-        <if test="insertUsername != null">
-            <foreach collection="insertUsername" item="item" open="(" separator="or" close=")">
-                "insertUsername" like '%${item}%'
-            </foreach>
-        </if>
-        <if test="capacityNumber != null">
-            <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
-                "capacityNumber" like '%${item}%'
-            </foreach>
-        </if>
-    </where>
+        AND oo.ORDER_RECEIVE_STATUS = 1
+        AND oo.ORDER_TYPE = #{orderType}
+        <where>
+            <if test="saleNumber != null">
+                <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
+                    "saleNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="orderNumber != null">
+                <foreach collection="orderNumber" item="item" open="(" separator="or" close=")">
+                    "orderNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="insertUsername != null">
+                <foreach collection="insertUsername" item="item" open="(" separator="or" close=")">
+                    "insertUsername" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityNumber != null">
+                <foreach collection="capacityNumber" item="item" open="(" separator="or" close=")">
+                    "capacityNumber" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
     </select>
 
     <!--查询司机排班信息-->
@@ -2334,6 +2334,7 @@
         WHERE ADSO.DISPATCH_ID = #{dispatchId}
     </select>
 
+
     <!--得到销售订单与物资中间表id-->
     <select id="getSaleMaterialId" parameterType="DECIMAL" resultType="DECIMAL">
         SELECT ASOM.SALE_ORDER_MATERIAL_ID AS "saleOrderMaterialId"
@@ -2350,9 +2351,13 @@
     </select>
 
     <select id="getDriverCapacityId" parameterType="DECIMAL" resultType="DECIMAL">
-        SELECT RC.DRIVER_CAPACITY_ID AS "driverCapacityId"
-        FROM RMS_DRIVER_CAPACITY RC
-        WHERE RC.CAPACITY_ID = #{capacityId}
+        SELECT *
+        FROM (SELECT RC.DRIVER_CAPACITY_ID AS "driverCapacityId"
+              FROM RMS_DRIVER_CAPACITY RC
+              WHERE RC.CAPACITY_ID = #{capacityId}
+                AND DELETED = 0
+              ORDER BY RC.INSERT_TIME)
+        WHERE ROWNUM = 1
     </select>
 
     <select id="getCapacityAndDriver" parameterType="java.util.Map" resultType="java.util.Map">
@@ -2382,4 +2387,292 @@
         </where>
     </select>
 
+    <select id="getInwardMaterial" parameterType="DECIMAL" resultType="DECIMAL">
+        SELECT ARM.MATERIAL_ID AS "materialId"
+        FROM AMSTRUCK_REQUIREMENT_PLAN ARP
+                 LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+                           ON ARP.REQUIREMENT_ID = ARM.REQUIREMENT_ID
+        WHERE ARP.PLAN_ID = #{planId}
+    </select>
+
+    <!-- 查询分解运输计划 -->
+    <select id="getInwardOrderList" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT *
+        FROM (SELECT APO.PURCHASE_ORDER_NO AS "purchaseOrderNo",
+        RM.MATERIAL_NAME AS "materialName",
+        DB.RESULT_FOREIGN_SHIP_NAME AS "resultForeignShipName",
+        AIP.PLAN_NUMBER AS "planNumber",
+        RCA.CARRIER_NAME AS "carrierName",
+        RC.CAPACITY_NUMBER AS "capacityNumber",
+        OOM.ORDER_MATERIAL_NUMBER AS "orderMaterialNumber",
+        AIR.REQUIREMENT_NUMBER AS "requirementNumber",
+        AIP.PLAN_ISSUE_TIME AS "planIssueTime",
+        AIP.PLAN_ISSUE_NAME AS "planIssueName",
+        AIR.REQUIREMENT_TYPE AS "requirementType",
+        RCT.CAPACITY_TYPE_NAME AS "capacityTypeName",
+        ARM.MATERIAL_COUNT AS "materialNumber",
+        AIR.REQUIREMENT_TRUCK_TIME AS "requirementTruckTime",
+        RW.WAREHOUSE_NAME AS "wareHouseName",
+        AIR.REQUIREMENT_WORK_TYPE AS "requirementWorkType",
+        AIR.REQUIREMENT_WORK_CONTENT AS "requirementWorkContent",
+        AIR.REQUIREMENT_WORK_ENVIRONMENT AS "requirementWorkEnvironment",
+        AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
+        OO.ORDER_ID AS "orderId",
+        AIP.INSERT_TIME AS "insertTime"
+        FROM OMSTRUCK_ORDER OO
+        LEFT JOIN RMS_DRIVER_CAPACITY RDC
+        ON RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
+        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+        ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_CAPACITY RC
+        ON RC.CAPACITY_ID = RDC.CAPACITY_ID
+        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
+        ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON ARP.PLAN_ID = AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_MATERIAL ARM
+        ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON APO.BATCH_ID = DB.BATCH_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = DB.MATERIAL_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = AIR.REQUIREMNT_UNIT_ID
+        LEFT JOIN RMS_CARRIER RCA
+        ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        LEFT JOIN RMS_CAPACITY_TYPE RCT
+        ON RCT.CAPACITY_TYPE_ID = AIR.CAPACITY_TYPE_ID
+        WHERE AIP.DELETED = 0
+        AND OO.ORDER_TYPE IN (4,9,10,11)
+        <if test="carrierId != null">
+            AND AIP.CARRIER_ID = #{carrierId}
+        </if>
+        <if test="orderStatus != null">
+            AND OO.ORDER_STATUS = #{orderStatus}
+        </if>
+        )
+        <where>
+            <if test="purchaseOrderNo != null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="or" close=")">
+                    "purchaseOrderNo" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialNumber != null">
+                and
+                <foreach collection="materialNumber" item="item" open="(" separator="or" close=")">
+                    "materialNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="resultForeignShipName != null">
+                and
+                <foreach collection="resultForeignShipName" item="item" open="(" separator="or" close=")">
+                    "resultForeignShipName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementNumber != null">
+                and
+                <foreach collection="requirementNumber" item="item" open="(" separator="or" close=")">
+                    "requirementNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementType != null">
+                and
+                <foreach collection="requirementType" item="item" open="(" separator="or" close=")">
+                    "requirementType" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planIssueTime != null">
+                and
+                <foreach collection="planIssueTime" item="item" open="(" separator="or" close=")">
+                    "planIssueTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planIssueName != null">
+                and
+                <foreach collection="planIssueName" item="item" open="(" separator="or" close=")">
+                    "planIssueName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="capacityTypeName != null">
+                and
+                <foreach collection="capacityTypeName" item="item" open="(" separator="or" close=")">
+                    "capacityTypeName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementTruckTime != null">
+                and
+                <foreach collection="requirementTruckTime" item="item" open="(" separator="or" close=")">
+                    "requirementTruckTime" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkType != null">
+                and
+                <foreach collection="requirementWorkType" item="item" open="(" separator="or" close=")">
+                    "requirementWorkType" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkContent != null">
+                and
+                <foreach collection="requirementWorkContent" item="item" open="(" separator="or" close=")">
+                    "requirementWorkContent" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementWorkEnvironment != null">
+                and
+                <foreach collection="requirementWorkEnvironment" item="item" open="(" separator="or" close=")">
+                    "requirementWorkEnvironment" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="requirementEstimatedDuration != null">
+                and
+                <foreach collection="requirementEstimatedDuration" item="item" open="(" separator="or" close=")">
+                    "requirementEstimatedDuration" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="planNumber != null">
+                and
+                <foreach collection="planNumber" item="item" open="(" separator="or" close=")">
+                    "planNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="carrierName != null">
+                and
+                <foreach collection="carrierName" item="item" open="(" separator="or" close=")">
+                    "carrierName" 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="orderMaterialNumber != null">
+                and
+                <foreach collection="orderMaterialNumber" item="item" open="(" separator="or" close=")">
+                    "orderMaterialNumber" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="wareHouseName != null">
+                and
+                <foreach collection="wareHouseName" item="item" open="(" separator="or" close=")">
+                    "wareHouseName" like '%${item}%'
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+
+    <select id="getResultList" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT OO.ORDER_ID   AS "orderId",
+               OO.ORDER_TYPE AS "orderType"
+        FROM OMSTRUCK_ORDER OO
+                 LEFT JOIN RMS_DRIVER_CAPACITY RDC
+                           ON OO.DRIVER_CAPACITY_ID = RDC.DRIVER_CAPACITY_ID
+        WHERE OO.ORDER_STATUS = 4
+          AND OO.ORDER_TYPE IN (4, 9, 10, 11)
+          AND OO.DRIVER_CAPACITY_ID = #{driverCapacityId}
+    </select>
+    <!-- 销售订单 -->
+    <select id="getSaleOrderMap" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT ASO.SALE_NUMBER              AS "saleNumber",
+               RSH.SHIPPER_NAME             AS "shipperName",
+               RC.CONSIGNEE_COMPANY_NAME    AS "consigneeCompanyName",
+               OO.ORDER_NUMBER              AS "orderNumber",
+               RCA.CAPACITY_NUMBER          AS "capacityNumber",
+               RRA.ADDRESS_DELIVERY_ADDRESS AS "addressDeliveryAddress",
+               ASOM.SALE_DATE_OF_RECEIPT    AS "saleDateOfReceipt",
+               OO.ORDER_RECEIVE_REFUSE_TIME AS "orderReceiveRefuseTime"
+        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 RSH
+                           ON RSH.SHIPPER_ID = ASO.SHIPPER_ID
+                 LEFT JOIN RMS_CONSIGNEE RC
+                           ON RC.CONSIGNEE_ID = ASO.RECEIVE_ID
+                 LEFT JOIN RMS_DRIVER_CAPACITY RDC
+                           ON RDC.DRIVER_CAPACITY_ID = OO.DRIVER_CAPACITY_ID
+                 LEFT JOIN RMS_CAPACITY RCA
+                           ON RDC.CAPACITY_ID = RCA.CAPACITY_ID
+                 LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+                           ON RRA.ADDRESS_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
+    </select>
+
+    <!-- 物资信息 -->
+    <select id="getMaterialMes" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT RM.MATERIAL_NAME          AS "materialName",
+               RM.MATERIAL_MODEL         AS "materialMode",
+               RM.MATERIAL_SPECIFICATION AS "materialSpecification",
+               OOM.ORDER_MATERIAL_WEIGHT AS "materialWeight",
+               OOM.ORDER_MATERIAL_NUMBER AS "materialNumber"
+        FROM OMSTRUCK_ORDER_MATERIAL OOM
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        WHERE ORDER_ID = #{orderId}
+    </select>
+
+    <!-- 内转原料司机接单 -->
+    <select id="getInwardOrderMap" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT AIR.REQUIREMENT_NUMBER AS "upNumber",
+               OO.ORDER_NUMBER        AS "orderNumber",
+               RC.CAPACITY_NUMBER     AS "capacityNumber",
+               RCA.CARRIER_NAME       AS "carrierName"
+        FROM OMSTRUCK_ORDER OO
+                 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 AMSTRUCK_INWARD_PLAN AIP
+                           ON AIP.PLAN_ID = OO.DRIVER_CAPACITY_ID
+                 LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+                           ON ARP.PLAN_ID = AIP.PLAN_ID
+                 LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+                           ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                 LEFT JOIN RMS_CARRIER RCA
+                           ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
+    <!-- 内转钢材到异地库 -->
+    <select id="getSteelInwardOrderMap" parameterType="DECIMAL" resultType="java.util.Map">
+        SELECT AROD.DAYPLAN_NO    AS "upNumber",
+               OO.ORDER_NUMBER    AS "orderNumber",
+               RC.CAPACITY_NUMBER AS "capacityNumber",
+               RCA.CARRIER_NAME   AS "carrierName"
+        FROM OMSTRUCK_ORDER OO
+                 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 AMS_RAIL_OFFSET_DAYPLAN AROD
+                           ON AROD.DAYPLAN_ID = OO.ORDER_PLAN_ID
+                 LEFT JOIN RMS_CARRIER RCA
+                           ON RCA.CARRIER_ID = AROD.CARRIER_ID
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+    <select id="selectCapacityNumber" resultType="java.lang.String">
+        select rc.capacity_number
+  from omstruck_order oo
+  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.driver_capacity_id
+ where oo.order_id = #{orderId}
+    </select>
+    <select id="selectOrderType" resultType="java.math.BigDecimal">
+
+    </select>
 </mapper>