Explorar o código

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

liyg %!s(int64=2) %!d(string=hai) anos
pai
achega
3a56310fc4

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

@@ -1345,6 +1345,7 @@ public class OmstruckOrderController extends BaseRESTfulController {
     @PostMapping("/closeInwardOrderByPlan")
     public RESTfulResult closeInwardOrderByPlan(@RequestParam Integer planId) {
         int result = omstruckOrderMapper.closeInwardOrderByPlan(new BigDecimal(planId));
+        result += omstruckOrderMapper.clsoePlanByPlan(new BigDecimal(planId));
         return success(result);
     }
 }

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

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.controller;
 
 import com.steerinfo.dil.feign.TmsTruckFeign;
+import com.steerinfo.dil.mapper.OmstruckOrderMapper;
 import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
 import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.service.impl.OmstruckOrderSeparateServiceImpl;
@@ -35,6 +36,9 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
     @Autowired
     OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
 
+    @Autowired
+    private OmstruckOrderMapper omstruckOrderMapper;
+
     @Autowired
     OmstruckOrderSeparateServiceImpl omstruckOrderSeparateService;
 
@@ -251,6 +255,146 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         return success(capacityAllOrderList);
     }
 
+    @ApiOperation(value = "该车牌号下的该月账期的物资数量")
+    @PostMapping("/getMatrialWeight")
+    public RESTfulResult getMatrialWeight(String capacityNumber,String date){
+        Map<String, Object> map = new HashMap<>();
+        date += "-01 00:00:00";
+        map.put("capacityNumber",capacityNumber);
+        DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime ldt = LocalDateTime.parse(date,sdf);
+        try {
+            if(date != null){
+                int month = ldt.getMonth().getValue();
+                int year = ldt.getYear();
+                // 判断是否是一月,一月则减一年,月份回到12
+                if (month == 1) {
+                    map.put("startDate", (year - 1) + "-" + 12 + "-" + 26);
+                }
+                // 非一月只需减少一个月份
+                if (month != 1){
+                    if (month > 10) {
+                        map.put("startDate", year + "-" + (month - 1) + "-" + 26);
+                    }
+                    else {
+                        map.put("startDate", year + "-0" + (month - 1) + "-" + 26);
+                    }
+                }
+                if (month >= 10) {
+                    // 结束时间为当月25号
+                    map.put("endDate", year + "-" + month + "-" + 25);
+                }
+                if (month < 10) {
+                    // 结束时间为当月25号
+                    map.put("endDate", year + "-0" + month + "-" + 25);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrderTwo(map);
+        List<Map<String,Object>> matrialList=new LinkedList<>();
+        //第二种解决思路
+        for (Map<String, Object> stringObjectMap : capacityAllOrderList) {
+            String materialName = (String) stringObjectMap.get("materialName");
+            //因为netWeight有String类型的
+            if (stringObjectMap.get("netWeight")==null){
+                continue;
+            }
+            String netWeight1 = (String) stringObjectMap.get("netWeight");
+            String[] split = netWeight1.split("、");
+            if (split.length<=1){
+                if (contains(matrialList,materialName)){
+                    //把值给存入进去
+                    addSomeThing(matrialList,materialName,DataChange.dataToBigDecimal(split[0]));
+                }else {
+                    if (split==null){
+                        continue;
+                    }
+                    Map<String,Object> map1=new HashMap<>();
+                    map1.put("materialName",materialName);
+                    map1.put("netWeight",DataChange.dataToBigDecimal(split[0]));
+                    matrialList.add(map1);
+                }
+            }else{
+                for (String s : split) {
+                    if (contains(matrialList,materialName)){
+                        //把值给存入进去
+                        addSomeThing(matrialList,materialName,DataChange.dataToBigDecimal(s));
+                    }else {
+                        if (s==null){
+                            continue;
+                        }
+                        Map<String,Object> map1=new HashMap<>();
+                        map1.put("materialName",materialName);
+                        map1.put("netWeight",DataChange.dataToBigDecimal(s));
+                        matrialList.add(map1);
+                    }
+                }
+            }
+
+        }
+        //把物资的值都给求出来并放到数据中去
+        //第一种想法
+        /*for (Map<String, Object> stringObjectMap : capacityAllOrderList) {
+            BigDecimal orderId = DataChange.dataToBigDecimal(stringObjectMap.get("orderId"));
+            Integer orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(orderId);
+            String steelJudge = "steel";
+                List<Map<String, Object>> materialMes = omstruckOrderMapper.getMaterialMesForGrossWeight(orderId,steelJudge);
+                for (Map<String, Object> materialMe : materialMes) {
+                    String materialName = (String) materialMe.get("materialName");
+                    BigDecimal netWeight = DataChange.dataToBigDecimal(materialMe.get("netWeight"));
+                    if (contains(matrialList,materialName)){
+                        //把值给存入进去
+                        addSomeThing(matrialList,materialName,netWeight);
+                    }else {
+                        if (netWeight.compareTo(BigDecimal.ZERO)==0){
+                            continue;
+                        }
+                        Map<String,Object> map1=new HashMap<>();
+                        map1.put("materialName",materialName);
+                        map1.put("netWeight",netWeight);
+                        matrialList.add(map1);
+                    }
+                    }*/
+        return success(addChinese(matrialList));
+    }
+
+    //给每个值的后面加个吨字
+    private List<Map<String,Object>> addChinese(List<Map<String, Object>> matrialList) {
+        for (Map<String, Object> map : matrialList) {
+            map.put("netWeight",map.get("netWeight")+"吨");
+        }
+        return matrialList;
+    }
+
+    private boolean contains(List<Map<String,Object>> matrialList,String materialName){
+        if (matrialList.isEmpty()){
+            return false;
+        }
+        for (Map<String, Object> map : matrialList) {
+            if (map.get("materialName").equals(materialName)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void addSomeThing(List<Map<String,Object>> matrialList,String materialName,BigDecimal netWeight){
+        if (netWeight.compareTo(BigDecimal.ZERO)==0){
+            return;
+        }
+        for (Map<String, Object> map : matrialList) {
+            if (map.get("materialName").equals(materialName)){
+                BigDecimal weight= DataChange.dataToBigDecimal(map.get("netWeight"));
+                map.put("materialName",materialName);
+                map.put("netWeight",weight.add(netWeight));
+                return;
+            }
+        }
+        return;
+    }
+
     @ApiOperation(value = "根据运单id关闭运输订单")
     @PostMapping("/closeOrder")
     public RESTfulResult closeOrder(@RequestParam Integer orderId){

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

@@ -202,6 +202,9 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //通过订单Id查询该订单下所有的物资
     List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
+    //通过订单Id查询该订单下所有的物资
+    List<Map<String,Object>> getMaterialMesForGrossWeight(BigDecimal orderId, String steelJudge);
+
     //通过订单Id查询该订单下所有的物资
     List<Map<String,Object>> getMaterialMesNew(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
@@ -281,6 +284,12 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //查看当前订单最大路段顺序号 与当前订单路段顺序号
     Map<String, Object> getMaxLineSeqByOrderId(BigDecimal orderId);
 
+    //查看配置表的相关信息
+    String getDilVersion();
+
+    //查询运输订单的送货单打印信息
+    BigDecimal getPrintNumber(BigDecimal orderId);
+
     //通过订单id查询零星订单id,运力id
     Map<String, Object> getSporadicOrdermapAddOrder(BigDecimal orderId);
 
@@ -384,4 +393,12 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 
     String getPrintFlag();
 
+    List<Map<String, Object>> materialMesNewContinue(BigDecimal orderId, String steelJudge);
+
+    List<BigDecimal> selectContinueOrderId(BigDecimal orderId);
+
+    int updateTotalResultNull(BigDecimal resultTotalId);
+
+    int clsoePlanByPlan(BigDecimal bigDecimal);
+
 }

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

@@ -77,6 +77,9 @@ public interface OmstruckOrderSeparateMapper {
     //查询当前车辆之前所有已完成的订单
     List<Map<String, Object>> getCapacityAllOrder(Map<String,Object> map);
 
+    //查询当前车辆之前所有已完成的订单
+    List<Map<String, Object>> getCapacityAllOrderTwo(Map<String,Object> map);
+
     //查询订单发货日期(订单类型为2)
     Integer getDeliveryDate(Object orderId);
 
@@ -146,4 +149,12 @@ public interface OmstruckOrderSeparateMapper {
 
     String getPrintFlag();
 
+    int getPurOrderDelete(Object orderId);
+
+    int getPurOrderDelete1(Object orderId);
+
+    int countNetWeight(BigDecimal orderId);
+
+    String getSendStaionName(BigDecimal saleMaterialId);
+
 }

+ 23 - 7
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -526,6 +526,18 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         return omstruckOrderSeparateMapper.getCapacityAllOrder(map);
     }
 
+    /**
+     *@Date:2023/1/10
+     *@DETAILEDTIME:15:37
+     *@Author:zyf
+     *@description:隶属于第二种思想(一条sql直接查出来)
+     *@version:1.0
+     *@return:
+     */
+    public List<Map<String, Object>> getCapacityAllOrderTwo(Map<String,Object>map){
+        return omstruckOrderSeparateMapper.getCapacityAllOrderTwo(map);
+    }
+
 
 //    @Override
 //    public int updateTimes(BigDecimal orderPlanId, int times) {
@@ -716,18 +728,22 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         //根据订单ID查找需求里面的承运范围和物资ID、物资品类ID
         try {
             Map<String,Object> priceMap = omstruckOrderSeparateMapper.getPriceInfo(orderId);
-            Map<String,Object> priceValueMap = null;
+            Map<String,Object> priceValueMap = new HashMap<>();
+            Map<String,Object> priceValueMap1 = new HashMap<>();
+
             if(priceMap != null){
                 if(priceMap.get("rangeId") == null) {
                     priceMap.put("rangeId",1);
                 }
-                priceValueMap = amsFeign.getInwardPriceBy(priceMap);
-            }
-            if(priceValueMap != null){
-                priceValueMap.put("netWeight", resultNetWeight);
-                priceValueMap.put("orderId",orderId);
-                RESTfulResult resTfulResult =  bmsTruckFeign.addDetailsOrder(priceValueMap);
+                priceValueMap1 = amsFeign.getInwardPriceBy(priceMap);
+                if(priceValueMap1 != null) {
+                    priceValueMap.putAll(priceValueMap1);
+                }
             }
+            priceValueMap.put("netWeight", resultNetWeight);
+            priceValueMap.put("orderId",orderId);
+            RESTfulResult resTfulResult =  bmsTruckFeign.addDetailsOrder(priceValueMap);
+
         } catch (Exception e) {
             e.printStackTrace();
             System.out.println(e.getMessage());

+ 44 - 11
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -594,11 +594,14 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         //    throw new Exception("钢材订单不允许撤销!");
         //}
         //已计量,则不允许撤单
-        if(omstruckOrderSeparateMapper.countWeight(orderId) > 0 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0){
+        if(omstruckOrderSeparateMapper.countWeight(orderId) > 0 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0 && orderType != 4){
             throw new Exception("已过磅,撤单失败!");
         }
+        if(orderType == 4 && omstruckOrderSeparateMapper.countNetWeight(orderId) > 0) {
+            throw new Exception("已出净重,撤单失败!");
+        }
         //如果是老区已进场或者内转,则删除计量委托
-        if(omstruckOrderSeparateMapper.countEnFactory(orderId) > 0 || orderType==11 || orderType == 21 || orderType == 15 || orderType == 16){
+        if(orderType != 6 && orderType != 17 &&  orderType !=4 && (omstruckOrderSeparateMapper.countEnFactory(orderId) > 0 || orderType==11 || orderType == 15 || orderType == 16)){
             //获取运输订单号
             String orderNumber = (String) mesMap.get("orderNumber");
             //撤销订单的同时删除计量数据
@@ -623,7 +626,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         OmstruckOrder omstruckOrder = new OmstruckOrder();
         omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
         omstruckOrder.setOrderStatus(new BigDecimal(7));
-        if(orderType == 1) {
+        if(orderType == 1 || orderType == 4) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
             //判断该车是几拼
             int materialMesCount = omstruckOrderMapper.getMaterialNumByOrderId(orderId);
@@ -635,10 +638,21 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 omstruckOrderMapper.deleteQueueSpellList(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
                 omstruckOrderMapper.deleteQueueResult(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
             }
+            //撤单需要将总实绩里面的部分信息去掉
+            try {
+                omstruckOrderMapper.updateTotalResultNull(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         }
         if (DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 1) {
             omstruckOrder.setOrderStatus(new BigDecimal(4));
         }
+        try {
+            omstruckOrderMapper.updateTotalResultNull(DataChange.dataToBigDecimal(mesMap.get("resultTotalId")));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String dateStr = sdf.format(new Date());
         omstruckOrder.setInsertUpdateRemark(map.get("capacityNumber") + "司机撤销订单将订单删除;撤单原因:"+map.get("reason") + ";撤销时间:" + dateStr + ";撤销时路段顺序号为:" + mesMap.get("lineSqe"));
@@ -2156,6 +2170,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         }
         if (orderType.compareTo(1)==0){
             List<Map<String, Object>> materialMesNew = omstruckOrderMapper.getMaterialMes(orderId, steelJudge);
+            //查询继续装的订单
+            List<BigDecimal> continueOrderIds = omstruckOrderMapper.selectContinueOrderId(orderId);
+            for (BigDecimal continueOrderId : continueOrderIds) {
+                List<Map<String, Object>> materialMesNewContinue = omstruckOrderMapper.materialMesNewContinue(continueOrderId, steelJudge);
+                materialMesNew.addAll(materialMesNewContinue);
+            }
             List<Map<String, Object>> materialId = omstruckOrderMapper.getMaterialId(orderId);
             for (Map<String, Object> stringObjectMap : materialMesNew) {
                 for (Map<String, Object> objectMap : materialId) {
@@ -2175,13 +2195,17 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 }
             }
             mesMap.put("materialMesList",materialMesNew);
-        } else {
+        } else if(orderType.compareTo(4)==0){
+            List<Map<String, Object>> materialMesNew = omstruckOrderMapper.getMaterialMes(orderId, steelJudge);
+            for(Map<String,Object> stringObjectMap :materialMesNew) {
+                if(stringObjectMap.get("saleMaterialId") != null) {
+                    String sendStaionName = omstruckOrderSeparateMapper.getSendStaionName(DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId")));
+                    stringObjectMap.put("materialMC",stringObjectMap.get("materialMC") + "-" + sendStaionName);
+                }
+            }
+            mesMap.put("materialMesList",materialMesNew);
+        }else {
             mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId, steelJudge));
-        }
-        try{
-            //尝试查询内转需求备注
-            mesMap.put("insertUpdateRemark", omstruckOrderMapper.getInwardOrderMap(orderId).get("insertUpdateRemark"));
-        }catch (Exception e){
 
         }
         return mesMap;
@@ -2216,10 +2240,18 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                     continue;
                 }
             }
+            if (orderType == 5 || orderType == 6 || orderType == 7 || orderType == 17 || orderType == 18) {
+                int purOrderDelete = omstruckOrderSeparateMapper.getPurOrderDelete1(orderMesMap.get("orderId"));
+                if(purOrderDelete == 1) {
+                    omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
+                    continue;
+                }
+            }
             if(orderType == 10|| orderType == 20 || orderType == 15 || orderType == 16){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 int GoBeyondCount = omstruckOrderMapper.getGoBeyondCount(orderMesMap.get("orderId"));
-                if(planEnable == 0 || GoBeyondCount == 0){ // 数据为0则失效
+                int purOrderDelete = omstruckOrderSeparateMapper.getPurOrderDelete(orderMesMap.get("orderId"));
+                if(planEnable == 0 || GoBeyondCount == 0 || purOrderDelete == 1){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
                     continue;
                 }
@@ -2227,7 +2259,8 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             if(orderType == 23 || orderType == 24){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 int GoBeyondCount = omstruckOrderMapper.getGoBeyondCount(orderMesMap.get("orderId"));
-                if(planEnable == 0 || GoBeyondCount == 0){ // 数据为0则失效
+                int purOrderDelete = omstruckOrderSeparateMapper.getPurOrderDelete(orderMesMap.get("orderId"));
+                if(planEnable == 0 || GoBeyondCount == 0 || purOrderDelete == 1){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));
                     continue;
                 }

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

@@ -2787,7 +2787,7 @@
         LEFT JOIN  RMS_WAREHOUSE RW1
         ON RW1.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
         WHERE AIP.DELETED = 0
-        AND OO.ORDER_TYPE = 11
+        AND OO.ORDER_TYPE in (11,21,25)
         <if test="carrierId != null">
             AND AIP.CARRIER_ID = (select rc.carrier_id from rms_carrier rc
             where rc.carrier_sso_id =  #{carrierId})
@@ -2933,6 +2933,8 @@
         "materialName",
         RM.MATERIAL_ID   "materialId",
         OOM.MATERIAL_PRIORITY "materialPriority",
+        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+        OOM.SALE_MATERIAL_ID    "saleMaterialId",
         CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
         (case
         when OOM.ORDER_MATERIAL_NUMBER is not null
@@ -2963,6 +2965,50 @@
         ORDER BY RM.MATERIAL_NAME
     </select>
 
+
+    <!-- 物资信息(特供给已完成物资总数)-->
+    <select id="getMaterialMesForGrossWeight"  resultType="java.util.LinkedHashMap">
+        SELECT
+        RM.MATERIAL_NAME || (
+        case
+        when OOM.MATERIAL_LUNO is not null
+        then '-' || oom.MATERIAL_LUNO
+        end
+        )
+        "materialName",
+        RM.MATERIAL_ID   "materialId",
+        OOM.MATERIAL_PRIORITY "materialPriority",
+        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+        CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
+        (case
+        when OOM.ORDER_MATERIAL_NUMBER is not null
+        then OOM.ORDER_MATERIAL_NUMBER || '件/支'
+        end
+        ) || (
+        case
+        when OOM.ORDER_MATERIAL_WEIGHT is not null
+        then '-'||OOM.ORDER_MATERIAL_WEIGHT  || '吨'
+        end
+        )
+        AS                                                                   "weightNum",
+        (   SELECT
+        LISTAGG ( TWR.RESULT_NET_WEIGHT, '、' ) within GROUP ( ORDER BY TWR.GROSS_SEGMENT_SQE )
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = #{orderId} and TWR.MATERIAL_ID = OOM.MATERIAL_ID
+        )                                                                    "netWeight"
+        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>
+
     <!-- 物资信息(NEW) -->
     <select id="getMaterialMesNew" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
         SELECT
@@ -3688,6 +3734,7 @@
         AIR.REQUIREMENT_ID     "requirementId",
         AIR.DUE_DATE             "saleDateOfReceipt",
         AIR.REQUIREMENT_TRUCK_TIME "requirementTruckTime",
+        AIR.INSERT_UPDATE_REMARK "insertUpdateRemark",
         RW1.WAREHOUSE_NAME       "shipperName",
         RW1.WAREHOUSE_NAME       "loadName",
         RW.WAREHOUSE_NAME        "unloadName",
@@ -3804,6 +3851,7 @@
         RW1.WAREHOUSE_NAME       "loadName",
         RW.WAREHOUSE_NAME        "unloadName",
         RW.WAREHOUSE_NAME        "consigneeCompanyName",
+        AIR.INSERT_UPDATE_REMARK "insertUpdateRemark",
         (
         SELECT TTTR2.RESULT_TIME
         FROM TMSTRUCK_TIME_TASK_RESULT TTTR2
@@ -4207,6 +4255,7 @@
         SELECT
         OO.ORDER_ID "orderId",
         OO.ORDER_TYPE "orderType",
+        '车皮订单' "inwardType",
         OO.ORDER_LINE_SEQUENCE "orderLineSequence",
         OO.ORDER_NUMBER "orderNumber",
         RC.CAPACITY_NUMBER "capacityNumber",
@@ -4253,6 +4302,14 @@
         AND OO.ORDER_STATUS = 4
         AND OO.ORDER_TYPE = 11
     </update>
+    <update id="updateTotalResultNull" parameterType="DECIMAL">
+        UPDATE TMSTRUCK_TOTAL_RESULT TTR
+        SET TTR.QUEUE_ALLOW_TIME = NULL,
+            TTR.ENFACTORY_TIME = NULL,
+            TTR.QUEUE_START_TIME = NULL,
+            TTR.ORDER_STATUS = '已派单'
+        WHERE TTR.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
 
     <select id="getMulInwardOrderMessageToApp" resultType="java.util.Map" parameterType="java.util.Map">
         SELECT DISTINCT
@@ -4385,4 +4442,65 @@
         SELECT DILV.VERSION_VALUE FROM DIL_VERSION DILV
         WHERE DILV.VERSION_ID = 7
     </select>
+    <select id="materialMesNewContinue" resultType="java.util.Map">
+        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",
+        (case
+        when OOM.ORDER_MATERIAL_NUMBER is not null
+        then OOM.ORDER_MATERIAL_NUMBER || '件/支'
+        end
+        ) || (
+        case
+        when OOM.ORDER_MATERIAL_WEIGHT is not null
+        then '-'||OOM.ORDER_MATERIAL_WEIGHT  || '吨'
+        end
+        ) ||  '-(八点前装的)'
+        AS                                                                   "weightNum",
+        (   SELECT
+        LISTAGG ( TWR.RESULT_NET_WEIGHT, '、' ) within GROUP ( ORDER BY TWR.GROSS_SEGMENT_SQE )
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = #{orderId} and TWR.MATERIAL_ID = OOM.MATERIAL_ID
+        )                                                                    "netWeight"
+        FROM OMSTRUCK_ORDER_MATERIAL OOM
+        LEFT JOIN OMSTRUCK_ORDER OO
+        ON OO.ORDER_ID = OOM.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID  = OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON twr.result_total_id = ttr.result_total_id
+        and oom.material_id = twr.material_id
+        or oom.sale_material_id is not null and oom.sale_material_id = twr.sale_material_id
+        <if test="steelJudge != null">
+            LEFT JOIN RMS_WAREHOUSE RW
+            ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+        </if>
+        WHERE
+        OO.ORDER_STATUS = 2
+        and twr.result_net_weight is not null
+        and  OO.order_ID  = #{orderId}
+        ORDER BY RM.MATERIAL_NAME
+    </select>
+    <select id="selectContinueOrderId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT OO.ORDER_ID FROM OMSTRUCK_ORDER OO
+        WHERE
+        OO.ORDER_STATUS = 2
+        AND OO.ORDER_NUMBER = (SELECT OO.ORDER_NUMBER FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId})
+    </select>
+    <update id="clsoePlanByPlan">
+        UPDATE AMSTRUCK_INWARD_PLAN AIP
+        SET AIP.PLAN_STATUS = 4
+        WHERE AIP.PLAN_ID = #{bigDecimal}
+    </update>
 </mapper>

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

@@ -605,6 +605,7 @@
         SET OO.ORDER_STATUS = 2,
             OO.INSERT_UPDATE_REMARK = '内转钢材到异地库关闭订单'
         WHERE OO.ORDER_ID = #{orderId}
+        and OO.ORDER_TYPE = 4
     </update>
 
   <update id="updateContinueStaus">

+ 76 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -466,6 +466,54 @@
         </if>
     </select>
 
+
+    <select id="getCapacityAllOrderTwo" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT
+        RM.MATERIAL_NAME || (
+        case
+        when OOM.MATERIAL_LUNO is not null
+        then '-' || oom.MATERIAL_LUNO
+        end
+        )
+        "materialName",
+        RM.MATERIAL_ID   "materialId",
+        OOM.MATERIAL_PRIORITY "materialPriority",
+        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+        CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
+        (case
+        when OOM.ORDER_MATERIAL_NUMBER is not null
+        then OOM.ORDER_MATERIAL_NUMBER || '件/支'
+        end
+        ) || (
+        case
+        when OOM.ORDER_MATERIAL_WEIGHT is not null
+        then '-'||OOM.ORDER_MATERIAL_WEIGHT  || '吨'
+        end
+        )
+        AS                                                                   "weightNum",
+        (   SELECT
+        LISTAGG ( TWR.RESULT_NET_WEIGHT, '、' ) within GROUP ( ORDER BY TWR.GROSS_SEGMENT_SQE )
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = OO.ORDER_ID and TWR.MATERIAL_ID = OOM.MATERIAL_ID
+        )                                                                    "netWeight"
+        FROM OMSTRUCK_ORDER OO
+        left join RMS_CAPACITY RC
+        on RC.CAPACITY_ID = OO.CAPACITY_ID
+        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_WAREHOUSE RW
+        ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+        WHERE CAPACITY_NUMBER = #{capacityNumber}
+        AND OO.ORDER_STATUS = 2
+        and to_char(OO.ORDER_RECEIVE_REFUSE_TIME,'YYYY-MM-DD') &gt;= #{startDate}
+        AND to_char(OO.ORDER_RECEIVE_REFUSE_TIME,'YYYY-MM-DD') &lt;= #{endDate}
+        ORDER BY RM.MATERIAL_NAME
+    </select>
+
 <!--  查询订单发货日期 (订单类型为2) -->
     <select id="getDeliveryDate" parameterType="object" resultType="int">
         select OO.ORDER_ID
@@ -963,4 +1011,32 @@
         LEFT JOIN RMS_GATEPOST RG ON RG.GATEPOST_ID = TER.GATEPOST_ID
     WHERE	TER.RESULT_ENTRY_GATE_TIME IS NOT NULL AND RG.SHIPPER_ID = 1 AND TTR.ORDER_ID = #{orderId}
     </select>
+    <select id="getPurOrderDelete" resultType="java.lang.Integer">
+    SELECT nvl(APO.DELETED,0) FROM OMSTRUCK_ORDER OO
+    LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+    ON ARP.PLAN_ID = OO.ORDER_PLAN_ID
+    LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+    ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+    LEFT JOIN AMS_PURCHASE_ORDER APO
+    ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+    WHERE OO.ORDER_ID = #{orderId}
+    </select>
+    <select id="getPurOrderDelete1" resultType="java.lang.Integer">
+        SELECT nvl(APO.DELETED,0) FROM OMSTRUCK_ORDER OO
+        LEFT JOIN AMS_PURCHASE_ORDER APO
+        ON APO.PURCHASE_ORDER_ID = OO.ORDER_PLAN_ID
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+    <select id="countNetWeight" resultType="java.lang.Integer" parameterType="decimal">
+        SELECT COUNT(TWR.WEIGHT_TASK_RESULT_ID) FROM TMSTRUCK_WEIGHT_RESULT TWR
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE	TWR.RESULT_NET_WEIGHT IS NOT NULL AND TTR.ORDER_ID = #{orderId}
+    </select>
+    <select id="getSendStaionName" resultType="java.lang.String">
+        SELECT RAS.ARRIVAL_NAME FROM TMSTRAIN_PLEASE_APPROVE_RESULT TPAR
+        LEFT JOIN RMSTRAIN_ARRIVAL_SEND RAS
+        ON RAS.ARRIVAL_ID = TPAR.SEND_STATION_ID
+        WHERE TPAR.RAIL_PLAN_ID = #{saleMaterialId}
+        FETCH FIRST 1 ROW ONLY
+    </select>
 </mapper>