فهرست منبع

钢材订单异常处理,销售订单进厂审核移至truck

txf 3 سال پیش
والد
کامیت
aa19f93f38

+ 7 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.controller;
 import com.steerinfo.dil.feign.ESFeign;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
 
+import com.steerinfo.dil.service.impl.TmstruckWeightResultServiceImpl;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.ColumnDataUtil;
 import com.steerinfo.dil.util.PageListAdd;
@@ -38,7 +39,7 @@ import java.util.Map;
 public class TmstruckWeightResultController extends BaseRESTfulController {
 
     @Autowired
-    ITmstruckWeightResultService tmstruckWeightResultService;
+    TmstruckWeightResultServiceImpl tmstruckWeightResultService;
 
     @Autowired
     ESFeign esFeign;
@@ -136,6 +137,11 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         int i =0;
         return  success(i);
     }
+
+    @PostMapping("/update")
+    public RESTfulResult update(@RequestBody(required = false) Map<String, Object> map){
+        return  success(tmstruckWeightResultService.updateSteelTruckWeightResult(map));
+    }
 }
 
   

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.java

@@ -86,4 +86,6 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
     //修改排队实绩表添加排队结束时间
     int updateQQR(Object resultId);
 
+    Integer getSaleOrderStatus(BigDecimal orderId);
+
 }

+ 20 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.mapper;
 
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import io.swagger.models.auth.In;
@@ -93,5 +94,24 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //通过总实绩ID查询订单类型
     Integer getOrderTypeByTotalId(BigDecimal resultTotalId);
 
+    //通过订单ID查询总实绩ID以及计量实绩最后一拼的毛重路段顺序号
+    Map<String, Object> getOldWeightMes(BigDecimal orderId);
 
+    //通过总实绩ID修改出厂实绩路段顺序号
+    int updateLeaveFactorySqe(TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult);
+
+    BigDecimal getOutBoundResult(BigDecimal orderId);
+
+    int deleteWeightResult(@Param("resultTotalId")BigDecimal resultTotalId,@Param("sqe") int sqe);
+
+    int deleteLoadResult(@Param("resultTotalId")BigDecimal resultTotalId,@Param("sqe") int sqe);
+
+    int deleteOutBoundResult(@Param("boundResultId")BigDecimal boundResultId,@Param("deleteMaterialId") BigDecimal deleteMaterialId);
+
+    int addOutBoundResult(Map<String, Object> addMap);
+
+    @Select("select seq__WMSP_OUTBOUND_RESUL_TMATRIAL.nextval from dual")
+    BigDecimal getOutBoundMaterialMaxId();
+
+    int updateOutBoundResult(Map<String, Object> updateMap);
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -164,6 +164,13 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         else if (orderType == 21){//调用计时作业方法
             return orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
         }
+        //如果订单类型为2 则需要财务公司审核才能进厂
+        if(orderType == 2 || orderType == 1){
+            Integer saleOrderStatus = tmstruckEnfactoryResultMapper.getSaleOrderStatus(DataChange.dataToBigDecimal(mesMap.get("orderId")));
+            if(saleOrderStatus != 4){
+               throw new Exception("审批未通过不能进厂!");
+            }
+        }
         Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(resultTotalId);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");

+ 224 - 72
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -2,10 +2,9 @@ package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.QmsFeign;
-import com.steerinfo.dil.mapper.RulesMapper;
-import com.steerinfo.dil.mapper.TmstruckReceiptResultMapper;
-import com.steerinfo.dil.mapper.TmstruckWeightResultMapper;
-import com.steerinfo.dil.mapper.UtilsMapper;
+import com.steerinfo.dil.mapper.*;
+import com.steerinfo.dil.model.TmstruckLeaveFactoryResult;
+import com.steerinfo.dil.model.TmstruckLoadResult;
 import com.steerinfo.dil.model.TmstruckReceiptResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
@@ -39,8 +38,6 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     @Autowired
     private TmstruckWeightResultMapper tmstruckWeightResultMapper;
 
-    @Autowired
-    private TmstruckReceiptResultMapper tmstruckReceiptResultMapper;
 
     @Autowired
     private UtilsServiceImpl utilsService;
@@ -49,7 +46,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     private UtilsMapper utilsMapper;
 
     @Autowired
-    private RulesServiceImpl rulesService;
+    private TmstruckLoadResultMapper tmstruckLoadResultMapper;
 
 
     @Autowired
@@ -185,93 +182,248 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return null;
     }
 
+    /**
+     * 修改钢材计量实绩。
+     * @param map orderId, oldMaterialMapList, newMaterialMapList
+     * @return
+     */
+    public int updateSteelTruckWeightResult(Map<String, Object> map){
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        List<Map<String, Object>> newMaterialMapList = (List<Map<String, Object>>) map.get("newMaterialMapList");
+        List<Map<String, Object>> oldMaterialMapList = (List<Map<String, Object>>) map.get("oldMaterialMapList");
+        int newSize = newMaterialMapList.size();
+        int oldSize = oldMaterialMapList.size();
+        //这是新增的情况
+        if(newSize != oldSize){
+            Map<String, Object> mapOne = tmstruckWeightResultMapper.getOldWeightMes(orderId);
+            BigDecimal resultTotalId = DataChange.dataToBigDecimal(mapOne.get("resultTotalId"));
+            int maxGrossSqe = DataChange.dataToBigDecimal(mapOne.get("maxGrossSqe")).intValue();
+            int outFactorySqe = 0;
+            if(newSize > oldSize){
+                //新增计量装货和修改出厂实绩
+                outFactorySqe = insertSomeResult(newSize, oldSize, maxGrossSqe, resultTotalId);
+            }else{
+                outFactorySqe = deleteSomeResult(newSize, oldSize, maxGrossSqe, resultTotalId);
+            }
+            //修改出厂实绩路段顺序号
+            TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
+            tmstruckLeaveFactoryResult.setResultTotalId(resultTotalId);
+            tmstruckLeaveFactoryResult.setSegmentSqe(new BigDecimal(outFactorySqe));
+            tmstruckWeightResultMapper.updateLeaveFactorySqe(tmstruckLeaveFactoryResult);
+        }
+        //查询是否已经生成过出库实绩
+        BigDecimal boundResultId = tmstruckWeightResultMapper.getOutBoundResult(orderId);
+        if(boundResultId != null){//如果已经扫过出库,则需要对出库表物资子表进行操作
+            Map<String, Object> changeMap = checkMaterial(oldMaterialMapList, newMaterialMapList);
+            if(changeMap.get("delete")!= null){
+                //如果有删除的记录,需要对出库实绩物资表中进行删除
+                List<BigDecimal> delete = (List<BigDecimal>) changeMap.get("delete");
+                for (BigDecimal deleteMaterialId : delete) {
+                    tmstruckWeightResultMapper.deleteOutBoundResult(boundResultId, deleteMaterialId);
+                }
+            }
+            if(changeMap.get("add")!= null){
+                //如果有添加的记录,需要进行添加操作
+                List<Map<String, Object>> add = (List<Map<String, Object>>) changeMap.get("add");
+                for (Map<String, Object> addMap : add) {
+                    addMap.put("boundResultId", boundResultId);
+                    addMap.put("resultMaterialId",tmstruckWeightResultMapper.getOutBoundMaterialMaxId());
+                    tmstruckWeightResultMapper.addOutBoundResult(addMap);
+                }
+            }
+            if(changeMap.get("update") != null){
+                //如果有修改的记录,需要进行修改操作
+                List<Map<String, Object>> update = (List<Map<String, Object>>) changeMap.get("update");
+                for (Map<String, Object> updateMap : update) {
+                    updateMap.put("boundResultId", boundResultId);
+                    tmstruckWeightResultMapper.updateOutBoundResult(updateMap);
+                }
+            }
+        }
+        //读取新的物资map对比数据
+        return 0;
+    }
+
+
+
+    public int insertSomeResult(int newSize, int oldSize, int maxGrossSqe, BigDecimal resultTotalId){
+        //根据新增的物资情况去新增计量实绩与装货实绩并修改最终出厂路段顺序号
+        for (int i = 0; i < newSize - oldSize; i++) {
+            TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+            tmstruckWeightResult.setId(tmstruckWeightResultMapper.selectMaxId());
+            tmstruckWeightResult.setResultTotalId(resultTotalId);
+            tmstruckWeightResult.setTareSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckWeightResult.setInsertTime(new Date());
+            //新增装车实绩
+            TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+            tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
+            tmstruckLoadResult.setResultTotalId(resultTotalId);
+            tmstruckLoadResult.setSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckLoadResult.setInsertTime(new Date());
+            tmstruckLoadResultMapper.insertSelective(tmstruckLoadResult);
+            //新增计量实绩 毛重顺序要卡在装车之后
+            tmstruckWeightResult.setGrossSegmentSqe(new BigDecimal(++ maxGrossSqe));
+            tmstruckWeightResultMapper.insertSelective(tmstruckWeightResult);
+        }
+        return ++ maxGrossSqe;
+    }
 
     /**
-     * 更新计量实绩  计皮点  计毛点  皮重
-     * @param map
+     * 删除计量实绩及装车实绩
+     * @param newSize
+     * @param oldSize
+     * @param maxGrossSqe
+     * @param resultTotalId
+     * @return
      */
-    public int updateWeightResult(Map<String, Object> map){
-        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
-        BigDecimal id = tmstruckWeightResultMapper.getWeightIdBySQEAndOrderId(map);
-        tmstruckWeightResult.setId(id);
-        if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
-            tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
+    public int deleteSomeResult(int newSize, int oldSize, int maxGrossSqe, BigDecimal resultTotalId ){
+        for (int i = 0; i < oldSize - newSize; i++) {
+            tmstruckWeightResultMapper.deleteWeightResult(resultTotalId, maxGrossSqe--);//删除计量实绩
+            //装车在计毛顺序之前
+            tmstruckWeightResultMapper.deleteLoadResult(resultTotalId, maxGrossSqe--);//删除装车实绩
+            //计量实绩中有两个路段顺序所以需要再次减1
+            maxGrossSqe --;
         }
-        if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
-            tmstruckWeightResult.setResultGrossPlaceId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
+        //出厂需要 + 1
+        return maxGrossSqe + 1;
+    }
+
+    /**
+     * 遍历两次物资集合,找出哪些修改哪些新增哪些删除的物资
+     * @param newMaterialMapList
+     * @param oldMaterialMapList
+     * @return
+     */
+    public Map<String, Object> checkMaterial(List<Map<String, Object>> oldMaterialMapList, List<Map<String, Object>> newMaterialMapList){
+        Map<String, Object> returnMap = new HashMap<>();
+        List<BigDecimal> delete = new ArrayList<>(); //存放删除的物资ID
+        List<Map<String, Object>> add = new ArrayList<>(); //存放添加的物资ID及件数
+        List<Map<String, Object>> update = new ArrayList<>(); // 存放修改的物资Id及件数
+        //先遍历old中的物资 查找有没有相同的物资     找到修改和删除的物资
+        for (Map<String, Object> map : oldMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));//拿到key
+            //通过这个key去新物资集合中获取是否包含这个key
+            Map<String, Object> newMap = getNewMap(materialId, newMaterialMapList);
+            if(newMap == null){
+                //如果在新物资中没有找到,则代表此物资已删除
+                delete.add(DataChange.dataToBigDecimal(map.get("materialId")));
+            }else{ //如果找到了,取出件数进行对比
+                BigDecimal newNumber = DataChange.dataToBigDecimal(newMap.get("materialNumber")); //拿到新物资中的件数
+                BigDecimal oldNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
+                int i = newNumber.compareTo(oldNumber);
+                if(i != 0){ //如果件数不相等,则需要进行修改,添加进修改list中
+                    Map<String, Object> updateMap = new HashMap<>();
+                    updateMap.put("materialId", materialId);
+                    updateMap.put("materialNumber", newNumber);
+                    update.add(updateMap);
+                }
+            }
         }
-        if(map.get("resultTareWeight")!= null){ //如果皮重不为空 更新皮重
-            tmstruckWeightResult.setResultTareWeight(DataChange.dataToBigDecimal(map.get("resultTareWeight")));
+        //再次遍历new中的物资 查找 新增 的物资
+        for (Map<String, Object> map : newMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));
+            Map<String, Object> oldMaps = getNewMap(materialId, oldMaterialMapList);
+            if(oldMaps == null){
+                //如果在旧map中没有找到,则代表是新增的物资,将新增的物资存放到新增列表中
+                add.add(map);
+            }
         }
-        return tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+        if(add.size() != 0)    returnMap.put("add", add);
+        if(delete.size() != 0) returnMap.put("delete", delete);
+        if(update.size() != 0) returnMap.put("update", update);
+        return returnMap;
     }
 
     /**
-     * 自动签收
+     * 遍历list查看里面的map是否包含这个值
+     * @param key
+     * @param mapList
      * @return
      */
-    public int autoReceipt(BigDecimal resultTotalId){
-        TmstruckReceiptResult tmstruckReceiptResult = new TmstruckReceiptResult();
-        tmstruckReceiptResult.setResultTotalId(resultTotalId);
-        tmstruckReceiptResult.setStatus(new BigDecimal(1));
-        tmstruckReceiptResult.setInsertUsername("admin");
-        tmstruckReceiptResult.setInsertTime(new Date());
-        return tmstruckReceiptResultMapper.updateByTotalResultId(tmstruckReceiptResult);
+    public Map<String, Object> getNewMap(String key, List<Map<String, Object>> mapList){
+        for (Map<String, Object> map : mapList) {
+            if(map.containsValue(key)){
+                return map;
+            }
+        }
+        return null;
     }
 
+    /**
+     * 更新计量实绩  计皮点  计毛点  皮重
+     * @param map
+     */
+//    public int updateWeightResult(Map<String, Object> map){
+//        TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
+//        //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
+//        BigDecimal id = tmstruckWeightResultMapper.getWeightIdBySQEAndOrderId(map);
+//        tmstruckWeightResult.setId(id);
+//        if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
+//            tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));
+//        }
+//        if(map.get("grossPlaceId") != null){//如果毛重汽车衡不为空 更新毛重汽车衡
+//            tmstruckWeightResult.setResultGrossPlaceId(DataChange.dataToBigDecimal(map.get("grossPlaceId")));
+//        }
+//        if(map.get("resultTareWeight")!= null){ //如果皮重不为空 更新皮重
+//            tmstruckWeightResult.setResultTareWeight(DataChange.dataToBigDecimal(map.get("resultTareWeight")));
+//        }
+//        return tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+//    }
+
+
+
 
     /**
      * 多拼计算计毛汽车衡
      * @param map
      */
-    public int calculateTruckCalculate(Map<String, Object> map, Integer resultTotalId){
-        //通过总实绩ID查询订单Id
-        Integer orderId = utilsService.getOrderIdByTotalId(resultTotalId);
-        //查询未装车的装车实绩
-        List<Map<String, Object>> list = rulesService.judgeLastMaterial(new BigDecimal(orderId));
-        Map<String, Object> mesMap = new HashMap<>(); //用于查询更新存放数据map
-        mesMap.put("orderId", orderId);
-        int i = 0;
-        if(list.size() == 0){
-            //如果是最后一拼则走出厂称 计算出厂称
-            mesMap.put("materialId", map.get("materialId"));
-            mesMap.put("nature", 1);
-            Integer calculate = rulesService.calculateWeighbridge(mesMap);
-            //更新汽车衡
-            mesMap.put("grossPlaceId", calculate);
-            i += updateWeightResult(mesMap);
-        }else {
-            //如果后面还有物资未装车 则走拼装秤 10号秤 (固定数据)
-            mesMap.put("materialId", map.get("materialId"));
-            mesMap.put("grossPlaceId", 10);
-            i += updateWeightResult(mesMap);
-        }
-        return i;
-    }
+//    public int calculateTruckCalculate(Map<String, Object> map, Integer resultTotalId){
+//        //通过总实绩ID查询订单Id
+//        Integer orderId = utilsService.getOrderIdByTotalId(resultTotalId);
+//        //查询未装车的装车实绩
+//        List<Map<String, Object>> list = rulesService.judgeLastMaterial(new BigDecimal(orderId));
+//        Map<String, Object> mesMap = new HashMap<>(); //用于查询更新存放数据map
+//        mesMap.put("orderId", orderId);
+//        int i = 0;
+//        if(list.size() == 0){
+//            //如果是最后一拼则走出厂称 计算出厂称
+//            mesMap.put("materialId", map.get("materialId"));
+//            mesMap.put("nature", 1);
+//            Integer calculate = rulesService.calculateWeighbridge(mesMap);
+//            //更新汽车衡
+//            mesMap.put("grossPlaceId", calculate);
+//            i += updateWeightResult(mesMap);
+//        }else {
+//            //如果后面还有物资未装车 则走拼装秤 10号秤 (固定数据)
+//            mesMap.put("materialId", map.get("materialId"));
+//            mesMap.put("grossPlaceId", 10);
+//            i += updateWeightResult(mesMap);
+//        }
+//        return i;
+//    }
 
     /**
      * 单拼销售计算汽车衡
      * @return
      */
-    public int calculateTruckCalculateByOne(Map<String, Object> map, Integer type){
-        String orderNumber = (String) map.get("orderNumber");
-        //通过运输订单号查找物资ID、订单ID
-        Map<String, Object> oIdAndMidMap = tmstruckWeightResultMapper.getOrderIdAndMaterialIdByOrderNum(orderNumber);
-        //通过物资ID计算汽车衡
-        if(type == 1){
-            //1:进厂
-            oIdAndMidMap.put("nature", type); //1: 进厂秤
-            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
-            oIdAndMidMap.put("tarePlaceId", calculateId);
-
-        }else if(type == 2){
-            //2:出厂
-            oIdAndMidMap.put("nature", type); //2: 出厂称
-            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
-            oIdAndMidMap.put("grossPlaceId", calculateId);
-        }
-        return updateWeightResult(oIdAndMidMap);
-    }
+//    public int calculateTruckCalculateByOne(Map<String, Object> map, Integer type){
+//        String orderNumber = (String) map.get("orderNumber");
+//        //通过运输订单号查找物资ID、订单ID
+//        Map<String, Object> oIdAndMidMap = tmstruckWeightResultMapper.getOrderIdAndMaterialIdByOrderNum(orderNumber);
+//        //通过物资ID计算汽车衡
+//        if(type == 1){
+//            //1:进厂
+//            oIdAndMidMap.put("nature", type); //1: 进厂秤
+//            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
+//            oIdAndMidMap.put("tarePlaceId", calculateId);
+//
+//        }else if(type == 2){
+//            //2:出厂
+//            oIdAndMidMap.put("nature", type); //2: 出厂称
+//            int calculateId = rulesService.calculateWeighbridge(oIdAndMidMap);
+//            oIdAndMidMap.put("grossPlaceId", calculateId);
+//        }
+//        return updateWeightResult(oIdAndMidMap);
+//    }
 
 }

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

@@ -1368,7 +1368,7 @@
         LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN AMSTRUCK_SPORADIC_ORDER ASO ON ASO.SPORADIC_ORDER_ID = OO.ORDER_PLAN_ID
         LEFT JOIN RMS_SUPPLIER RS ON RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
-        LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = ASO.SPORADIC_ORDER_ID
+        LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
         LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
         LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER1  ON TER1.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN RMS_GATEPOST RG1 ON RG1.GATEPOST_ID = TER1.GATEPOST_ID

+ 11 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -1490,4 +1490,15 @@
         update QMS_QUEUE_RESULT QQR set QQR.RESULT_END_TIME = SYSDATE where QQR.RESULT_ID = #{resultId}
     </update>
 
+
+    <select id="getSaleOrderStatus" parameterType="DECIMAL" resultType="java.lang.Integer">
+        SELECT ASO.SALE_ORDER_STATUS AS "saleOrderStatus"
+        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
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
+
 </mapper>

+ 54 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -549,6 +549,7 @@
         #{item.tareSegmentSqe,jdbcType=DECIMAL} from dual
     </foreach> )
     </insert>
+
     <update id="batchUpdate" parameterType="java.util.List">
         update TMSTRUCK_WEIGHT_RESULT
         set
@@ -645,6 +646,7 @@
             #{item.weightTaskResultId,jdbcType=DECIMAL}
         </foreach>
     </update>
+
     <delete id="batchDelete" parameterType="java.util.List">
         delete from TMSTRUCK_WEIGHT_RESULT
         where WEIGHT_TASK_RESULT_ID in
@@ -2797,5 +2799,57 @@
               (select TTR.ORDER_ID from TMSTRUCK_TOTAL_RESULT TTR where TTR.RESULT_TOTAL_ID = #{resultTotalId})
     </select>
 
+    <select id="getOldWeightMes" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select MAX(TWR.GROSS_SEGMENT_SQE)   "maxGrossSqe",
+               TTR.RESULT_TOTAL_ID  "resultTotalId"
+        from TMSTRUCK_TOTAL_RESULT TTR
+                 left join TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        where TTR.ORDER_ID = #{orderId}
+        group by TTR.RESULT_TOTAL_ID
+    </select>
+
+    <update id="updateLeaveFactorySqe" parameterType="com.steerinfo.dil.model.TmstruckLeaveFactoryResult">
+        update TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
+        set TLFR.SEGMENT_SQE = #{segmentSqe}
+        where TLFR.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
 
+
+    <select id="getOutBoundResult" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        select WOR.RESULT_ID
+        from WMSP_OUTBOUND_RESULT WOR
+        WHERE WOR.BILL_LADING_ID = #{orderId}
+    </select>
+
+    <delete id="deleteWeightResult">
+        delete
+        from TMSTRUCK_WEIGHT_RESULT TWR
+        where TWR.RESULT_TOTAL_ID = #{resultTotalId}
+          and TWR.GROSS_SEGMENT_SQE = #{sqe}
+    </delete>
+    <delete id="deleteLoadResult">
+        delete
+        from TMSTRUCK_LOAD_RESULT TLR
+        where TLR.RESULT_TOTAL_ID = #{resultTotalId}
+          and TLR.SEGMENT_SQE = #{sqe}
+    </delete>
+
+    <delete id="deleteOutBoundResult">
+        delete
+        from WMSP_OUTBOUND_RESULT_MATERIAL
+        where OUTBOUND_RESULT_ID = #{boundResultId}
+          and MATERIAL_ID = #{deleteMaterialId}
+    </delete>
+
+    <insert id="addOutBoundResult" parameterType="map">
+        insert into WMSP_OUTBOUND_RESULT_MATERIAL (RESULT_MATERIAL_ID, OUTBOUND_RESULT_ID, INSERT_USERNAME, INSERT_TIME,
+                                                   MATERIAL_ID, MATERIAL_NUMBER, STATUS)
+                    values (#{resultMaterialId}, #{boundResultId}, 'admin', SYSDATE,#{materialId}, #{materialNumber}, 1)
+    </insert>
+
+    <update id="updateOutBoundResult" parameterType="map">
+        update WMSP_OUTBOUND_RESULT_MATERIAL
+        set MATERIAL_NUMBER = #{materialNumber}
+        where OUTBOUND_RESULT_ID = #{boundResultId} and MATERIAL_ID = #{materialId}
+    </update>
 </mapper>