Browse Source

零星多拼

txf 3 years ago
parent
commit
43fa0e27df

+ 0 - 10
src/main/java/com/steerinfo/dil/controller/TmstruckLoadResultController.java

@@ -125,16 +125,6 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
         return success(pageList);
     }
 
-    @ApiOperation(value="新增CG汽车装车实绩")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "mapValue", value = "", required = false, dataType = "Map"),
-    })
-    @PostMapping("/addCGLoadResult")
-    public RESTfulResult addCGLoadResult(@RequestBody(required=false) Map<String,Object> mapValue){
-        int i = tmstruckLoadResultService.addCGLoadResult(mapValue);
-        return success(i);
-    }
-
     @ApiOperation(value="销售新增钢材装车实绩 ")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "map", value = "", required = false, dataType = "Map"),

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

@@ -32,7 +32,7 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     Integer getReceiveIdByOrderId(BigDecimal orderId);
 
     //通过订单ID查询发货单位ID
-    Integer getShipperIdByOrderId(BigDecimal orderId);
+    Map<String, Object> getShipperIdByOrderId(BigDecimal orderId);
 
     //销售查询计毛
     Map<String, Object> selectMakesureGrossForSaleByOrderNumber(Map<String, Object> map);

+ 6 - 0
src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java

@@ -92,4 +92,10 @@ public interface UtilsMapper {
 
     //通过车牌号查询运力ID
     BigDecimal getCapacityIdByNum(String capacityNumber);
+
+    //查询最近进厂门岗
+    Integer getLastGatepostId(BigDecimal resultTotalId);
+
+    //查询零星是否多拼或没有净重的物资
+    Integer getNextMaterialId(BigDecimal orderId);
 }

+ 0 - 3
src/main/java/com/steerinfo/dil/service/ITmstruckLoadResultService.java

@@ -29,9 +29,6 @@ public interface ITmstruckLoadResultService{
     //生成装车实绩(销售)
     int addLoadResult(Map<String, Object> map);
 
-    //新增采购装车实绩
-    int addCGLoadResult(Map<String, Object> map);
-
     //修改销售装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
     int addXSLoadResult(Map<String, Object> map);
 

+ 10 - 12
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -120,6 +120,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 return tmstruckEnfactoryResultMapper.getInFactoryMaterialEnFactoryResult(map); //apiId:357
             case 12:
             case 13:
+            case 14:
             case 15:
             case 16:
             case 19:
@@ -156,10 +157,10 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
         String capacityNumber = (String) mesMap.get("capacityNumber");
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
-        Integer orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
         if(orderType == 11){
             //内转订单类型  没有生成实绩 直接新增
-            Integer sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
             sqe = sqe + 1;
             map.put("resultId", tmstruckEnfactoryResultMapper.selectMaxId());  //插入进厂实绩Id
             map.put("Sqe", sqe); //查询路段顺序号 + 1
@@ -183,8 +184,6 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
             }
         }
         map.putAll(selectMap);
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
         switch (orderType){
@@ -198,9 +197,6 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 break;
             case 2:
             case 3:
-                //通过物资ID查询订单ID(针对单拼)
-                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(orderId);
-                map.put("materialId", materialIdList.get(0));
                 checkMeasureCommission = tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
                 break;
             case 5:
@@ -226,17 +222,19 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 break;
             case 12:
             case 13:
-            case 16:
-            case 15:
-            case 20:
+            case 14:
                 //发送计量委托(查询物资顺序第一个装卸货的物资)
-                //拿到需要计量的物资ID
                 Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
                 map.put("materialId", materialId);
-                checkMeasureCommission += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
+                checkMeasureCommission += tmstruckMeasureCommissionService.sendMeasureCommissionByGatepost(map);
+                break;
+            case 20:
+                checkMeasureCommission += tmstruckMeasureCommissionService.sendMeasureCommissionByGatepost(map);
         }
         if(checkMeasureCommission == 0){
             throw new Exception("委托发送失败");
+        }else if (checkMeasureCommission == -2){
+            throw new Exception("没有获取到门岗");
         }
         i += tmstruckEnfactoryResultMapper.updateByPrimaryKeySelective(generateEnFactoryResult(map)); //添加进厂实绩
         //修改路段顺序号

+ 2 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -169,11 +169,11 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         orderNumber = orderNumber.substring(0, orderNumber.length() - 1);
         //通过订单号查询订单类型 及总实绩Id
         Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
-        Integer orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
         String capacityNumber = (String) mesMap.get("capacityNumber");
         if(orderType == 11){
             //内转订单类型 没有生成实绩 直接新增
-            Integer sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
             sqe = sqe + 1;
             map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());//出厂实绩ID
             map.put("Sqe",sqe);//查询路段顺序号+1

+ 2 - 61
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -120,63 +120,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
 
 
-    /**
-     * 新增采购装车实绩  / 内转装车实绩
-     * @param map  resultMeasuredTonnage :计量吨位  portId:港口ID
-     *             resultLoadStartTime:装车时间 resultIsclear:是否清场
-     */
-    @Transactional
-    public int addCGLoadResult(Map<String,Object> map){
-        //通过运输订单号 或 运单Id 查询实绩总表ID  此方法在 进厂作业mapper中
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal totalId = (BigDecimal) orderMap.get("resultTotalId");
-        //通过实绩总表ID查询装车实绩ID
-        BigDecimal loadResultId = tmstruckLoadResultMapper.getResultId(totalId);
-
-        TmstruckLoadResult tmstruckLoadResult = tmstruckLoadResultMapper.selectByPrimaryKey(loadResultId);
-        //添加主键Id
-//        tmstruckLoadResult.setResultId(tmstruckLoadResultMapper.selectMaxId());
-        //新增计量吨位 装车所装的重量
-        BigDecimal resultMeasuredTonnage = DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage"));
-        tmstruckLoadResult.setResultMeasuredTonnage(resultMeasuredTonnage);
-        tmstruckLoadResult.setStatus(new BigDecimal(0));
-//        tmstruckLoadResult.setResultTotalId(totalId);
-        String resultIsclear = (String) (map.get("resultIsclear"));
-        tmstruckLoadResult.setResultIsclear(resultIsclear);
-        tmstruckLoadResult.setResultLoadEndTime(new Date((long) map.get("resultLoadStartTime")));
-        tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        //根据订单ID查询订单类型
-        Integer orderType = tmstruckLoadResultMapper.getOrderType(totalId);
-        if(orderType == 8){
-            tmstruckLoadResult.setSegmentSqe(new BigDecimal(1));
-        }
-        Object portId = map.get("portId"); //获取港口
-        if(portId != null){
-            //通过订单ID获取批次Id
-            BigDecimal batchId = tmstruckLoadResultMapper.getBatchIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            if(batchId != null){
-                Map<String, Object> hashMap = new HashMap<>();
-                hashMap.put("batchId", batchId);
-                hashMap.put("portId", portId);
-                hashMap.put("resultTonnage",resultMeasuredTonnage);
-                hashMap.put("isClean", resultIsclear);
-                wmshBoundFeign.addResult(hashMap);
-                // 通过港口ID查询仓库表中的港存库ID
-                BigDecimal warehouseId = tmstruckLoadResultMapper.getWarehouseIdByPortId(DataChange.dataToBigDecimal(portId));
-                tmstruckLoadResult.setLoadingId(warehouseId); // 添加装货点为港口
-            }
-        }
-        int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
-        String capacityNumber = (String) orderMap.get("capacityNumber");
-        utilsService.pushMesToWebsocket(capacityNumber,"装货!");
-        //修改订单状态为执行中 1
-//        int i1 = utilsService.updateOrderStatus(map, 1);
-        //修改运力状态为执行中 1
-//        int i2 = utilsService.updateCapacityStatus(map, 1);
-        return i ;
-    }
-
-
     /**
      * 更新装车实绩表
      * @return
@@ -265,7 +208,7 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         BigDecimal orderType = DataChange.dataToBigDecimal(mesMap.get("orderType"));
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
         if(orderType.intValue() == 11){
-            Integer sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            int sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
             sqe = sqe + 1;
             map.put("resultId",tmstruckLoadResultMapper.selectMaxId());
             map.put("Sqe",sqe);//查询路段顺序号+1
@@ -278,8 +221,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
             utilsService.pushMesToWebsocket(capacityNumber, "装货");
             return i;
         }
-        //通过运输订单号 查询 总实绩ID、订单类型
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
         //查询装车实绩ID
         map.putAll(tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null));
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
@@ -310,7 +251,7 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         if (map.get("insertUpdateRemark")!=null) {
             String insertUpdateRemark = (String) map.get("insertUpdateRemark");
             if("未装货".equals(insertUpdateRemark) && orderType.intValue() != 11){
-                loadJudge(orderMap);
+                loadJudge(mesMap);
             }
             tmstruckLoadResult.setInsertUpdateRemark(insertUpdateRemark);
         }

+ 76 - 42
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -12,6 +12,7 @@ import com.steerinfo.dil.service.ITmstruckMeasureCommissionService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.HTTPRequestUtils;
 import com.sun.java.swing.plaf.motif.MotifMenuBarUI;
+import io.swagger.models.auth.In;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.net.Inet4Address;
 import java.util.*;
 
 /**
@@ -61,6 +63,30 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     //给达兴发委托
     private static final List<Integer> judgeDaXinNum = Arrays.asList(7, 18);
 
+    private static final String judgeCoke = "一厂焦炭库";
+
+    //根据门来判断委托发送依据
+    private static final List<Integer> daGangGatepost = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 14);
+    private static final List<Integer> daXingGatepost = Arrays.asList(8, 9, 10, 11, 12, 13);
+
+    /**
+     * 根据门岗发送委托
+     * @Author TXF
+     * @Date 2022/3/15 11:14
+     * @param map
+     * @return
+     **/
+    public int sendMeasureCommissionByGatepost(Map<String, Object> map){
+        int gatepostId = DataChange.dataToBigDecimal(map.get("gatepostId")).intValue();
+        if(daGangGatepost.contains(gatepostId)){ //给达钢发送委托
+            return sendMeasureCommissionMes(map);
+        }else if(daXingGatepost.contains(gatepostId)){  //给达兴发送委托
+            return sendDXMeasureCommissionMes(map);
+        }
+        return -2; //返回-2为没有获取到门岗ID
+    }
+
+
     /**
      * 查询计量委托 0 :计皮     1:计毛
      * @param map orderTypee 订单类型   type 是计皮还是计毛
@@ -111,7 +137,13 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         int i = 0;
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
         //获取当前订单是属于哪个厂区订单
-        Integer shipperId = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        Map<String, Object> mesMap = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        if(map.get("saleWarehouse") != null){
+            if(judgeCoke.equals(map.get("saleWarehouse"))){ //如果是一厂焦炭库则向达钢发送委托
+                return sendMeasureCommissionMes(map);
+            }
+        }
+        int shipperId = DataChange.dataToBigDecimal(mesMap.get("shipperId")).intValue();
         if(shipperId == 1){
             //发送委托给达州钢铁
             i += sendMeasureCommissionMes(map);
@@ -129,7 +161,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      * @return
      */
     public int addLXMeasureCommission(Map<String, Object> map){
-        Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         int i = 0;
         if(orderType == 12) {
@@ -216,7 +248,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     public int sendMeasureCommissionMes(Map<String, Object> map){
         Map<String, Object> measureCommission = null;
         //查询计量委托
-        Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
         switch (orderType){
             case 1:
                 break;
@@ -269,48 +301,26 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 measureCommission.put("packagesNum", 0);
                 break;
             case 12:
-            case 13:
-                 //内转零星进厂(老厂区)
-                //零星计量委托(老厂区)
-                measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
-                if(measureCommission == null){
-                    return 0;
-                }
-                measureCommission.put("isRelationEAS",false);
-                measureCommission.put("flowTo","进厂");
-                measureCommission.put("isDel", false);
-                measureCommission.put("isInsert", true);
-                measureCommission.put("IsAssembly", false);
-                measureCommission.put("deliveryMethod", "磅重交货");
-                measureCommission.put("packagesNum", 0);
-                break;
-            case 15:
-                //零星计量委托(老厂区)  会有多拼
+            case 13:     //零星进厂、出厂
+            case 14:
                 measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
                 if(measureCommission == null){
                     return 0;
                 }
+                measureCommission.put("steelyardNum", "null");
+                measureCommission.put("demo", "无");
                 measureCommission.put("isRelationEAS",false);
-                measureCommission.put("flowTo","进厂");
-                measureCommission.put("isDel", false);
-                measureCommission.put("isInsert", true);
-                measureCommission.put("deliveryMethod", "磅重交货");
-                measureCommission.put("packagesNum", 0);
-                System.out.println(measureCommission);
-                break;
-            case 16:
-                //零星计量委托(老厂区)  会有多拼
-                measureCommission = tmstruckMeasureCommissionMapper.sproadicMeasure(map);
-                if(measureCommission == null){
-                    return 0;
+                if(orderType == 12){
+                    measureCommission.put("flowTo","进厂");
+                }else if(orderType == 13){
+                    measureCommission.put("flowTo","出厂");
+                }else {
+                    measureCommission.put("flowTo","中转");
                 }
-                measureCommission.put("isRelationEAS",false);
-                measureCommission.put("flowTo","出厂");
                 measureCommission.put("isDel", false);
                 measureCommission.put("isInsert", true);
                 measureCommission.put("deliveryMethod", "磅重交货");
                 measureCommission.put("packagesNum", 0);
-                System.out.println(measureCommission);
                 break;
             case 20://采购内转委托总厂区
                 measureCommission=tmstruckMeasureCommissionMapper.purchaseXqCgNzMeasure(map);
@@ -327,9 +337,10 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         if(measureCommission != null)
             map.put("materialId", measureCommission.get("materialId"));
         addMeasureCommission(map); // 添加计量委托
-
+        System.out.println(measureCommission);
+        return 1;
         /*访问接口发送数据*/
-        return sendMesToMeasure(measureCommission);
+//        return sendMesToMeasure(measureCommission);
 
     }
 
@@ -387,10 +398,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 }
                 measureCommission.put("ended", "0");
                 break;
-            case 12:
+            case 12: // 零星订单
             case 13:
-            case 15:
-            case 16:
+            case 14:
                 measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
                 if(measureCommission == null)
                     return 0;
@@ -407,8 +417,10 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         if(measureCommission != null)
             map.put("materialId", measureCommission.get("item"));
         addMeasureCommission(map); // 添加计量委托
+        System.out.println(measureCommission);
+        return 1;
         /*访问接口发送数据*/
-        return sendMesToDXMeasure(measureCommission);
+//        return sendMesToDXMeasure(measureCommission);
     }
 
     /**
@@ -479,7 +491,9 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         int i=0;
         //获取订单类型
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        map.putAll(utilsMapper.getOrderMesByOrderId(orderId));
+        if(map.get("materialId") == null){
+            map.putAll(utilsMapper.getOrderMesByOrderId(orderId));
+        }
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
         //根据运输订单id查找运输订单号
         switch (orderType.intValue()){
@@ -495,6 +509,26 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 break;
             case 12:
             case 13:
+                //如果是自动发送委托 查询最近进厂的门岗
+                if(map.get("materialId") != null){
+                    Integer gatepostId = utilsMapper.getLastGatepostId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+                    if(gatepostId == null){
+                        map.put("gatepostId", 1); //一般零星多拼只存在于老厂
+                    }else {
+                        map.put("gatepostId", gatepostId);
+                    }
+                }else {
+                    //手动发送委托
+                    Integer materialId = utilsMapper.getNextMaterialId(orderId);
+                    if(materialId == null) {
+                        return 0;
+                    }else {
+                        map.put("materialId", materialId);
+                        map.put("gatepostId", 1);
+                    }
+                }
+                i+=sendMeasureCommissionByGatepost(map);
+                break;
             case 15:
             case 20:
             case 16: //发送计量委托(查询物资顺序第一个装卸货的物资)

+ 1 - 13
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -172,30 +172,18 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         //路段顺序号 + 1
         i += utilsService.updateOrderLineSequence(map);
         switch (orderType.intValue()){
-            case 1:
-                break;
-            case 2:
-                break;
-            case 3:
-                break;
-            case 4:
-                break;
             case 5:
             case 6:
             case 7:
             case 8:
             case 9:
             case 10:
-            case 15:
+            case 12:
             case 17:
             case 18:
             case 20:
                 i += tmstruckReceiptResultService.addReceiptResult(map); //新增完卸车实绩后新增一条收货实绩
                 break;
-            case 12:
-                //判断是否还有物资,如果还有物资就执行发送计量委托
-//                materialIdIsNorWeight(map);
-                break;
         }
         //卸货成功后推送消息给websocket
         utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "卸货");

+ 1 - 1
src/main/resources/application-dev.yml

@@ -31,7 +31,7 @@ openfeign:
   WMSFeign:
     url: ${WMSFEIGN_URL:172.16.33.162:8012}
   OmsFeign:
-    url: ${OMSFEIGN_URL:172.16.33.162:8016}
+    url: ${OMSFEIGN_URL:192.168.1.116:8016}
   JoinFeign:
     url: ${JOINFEIGN_URL:172.16.33.162:8006}
   QmsFeign:

+ 7 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -1117,15 +1117,19 @@
 
   <!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
   <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.util.Map">
+    select
+    *
+    from(
     select TLR.RESULT_ID "resultId",
     TLR.SEGMENT_SQE "segmentSqe"
     from TMSTRUCK_LOAD_RESULT TLR
-    <where>
-      TLR.RESULT_TOTAL_ID = #{resultTotalId}
+    where TLR.RESULT_TOTAL_ID = #{resultTotalId} and TLR.RESULT_LOAD_END_TIME is null
       <if test="materialId != null">
         and TLR.MATERIAL_ID = #{materialId}
       </if>
-    </where>
+     order by TLR.SEGMENT_SQE
+    )
+    where rownum = 1
   </select>
 
   <!--    通过物资唯一编码 查找物资ID -->

+ 28 - 32
src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml

@@ -902,13 +902,15 @@
                 and rownum = 1
     </select>
 <!--  通过订单ID查询发货单位ID  -->
-    <select id="getShipperIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
-        select ASO.SHIPPER_ID
+    <select id="getShipperIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select ASO.SHIPPER_ID "shipperId",
+               ASM.SALE_WAREHOUSE   "saleWarehouse"
         from OMSTRUCK_ORDER OO
         left join AMS_SALE_ORDER_MATERIAL ASOM
             on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
         left join AMS_SALE_ORDER ASO
             on ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        left join AMS_SALE_MATERIAL ASM on ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
         where OO.ORDER_ID = #{orderId}
     </select>
 
@@ -935,37 +937,31 @@
         where oo.order_id = #{orderId} and oom.material_id = #{materialId}
     </select>
     <select id="sproadicMeasure" parameterType="map" resultType="java.util.Map">
-        select RM.MATERIAL_NAME "materiaName",
-               OO.ORDER_NUMBER "transportNum",
-               RC.CAPACITY_NUMBER "carNum",
-               RS.SUPPLIER_NAME "sendUnit",
-               RC2.CONSIGNEE_COMPANY_NAME "ReceivUnit",
-               RM.MATERIAL_ID "materialId",
-               CONCAT(RM.MATERIAL_SPECIFICATION,RM.MATERIAL_MODEL) "goodsType",
-               TWR.INSERT_UPDATE_REMARK    "demo",
-               RC2.CONSIGNEE_COMPANY_NAME  "unloadPlace",
-               RTC.TRUCK_CALCULATE_NUMBER  "steelyardNum"
+        select RM.MATERIAL_NAME                                     "materiaName",
+               OO.ORDER_NUMBER                                      "transportNum",
+               RC.CAPACITY_NUMBER                                   "carNum",
+               RS.SUPPLIER_NAME                                     "sendUnit",
+               RC2.CONSIGNEE_COMPANY_NAME                           "ReceivUnit",
+               RM.MATERIAL_ID                                       "materialId",
+               CONCAT(RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL) "goodsType",
+               RC2.CONSIGNEE_COMPANY_NAME                           "unloadPlace"
 
         from OMSTRUCK_ORDER OO
-        left join TMSTRUCK_TOTAL_RESULT TTR
-        ON TTR.ORDER_ID=OO.ORDER_ID
-        left join TMSTRUCK_WEIGHT_RESULT TWR
-        on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
-        left join RMS_TRUCK_CALCULATE RTC
-        on RTC.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
-        LEFT JOIN OMSTRUCK_ORDER_MATERIAL oom
-        ON OO.ORDER_ID=oom.ORDER_ID
-        LEFT JOIN RMS_CAPACITY RC
-        ON RC.CAPACITY_ID=OO.CAPACITY_ID
-        LEFT JOIN RMS_MATERIAL RM
-        ON RM.MATERIAL_ID=oom.MATERIAL_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 RC2
-         ON RC2.CONSIGNEE_ID=ASO.RECEIVE_UNIT_ID
-         WHERE OO.ORDER_ID=#{orderId} and  TWR.RESULT_NET_WEIGHT is null
+                 left join TMSTRUCK_TOTAL_RESULT TTR
+                           ON TTR.ORDER_ID = OO.ORDER_ID
+                 LEFT JOIN OMSTRUCK_ORDER_MATERIAL oom
+                           ON OO.ORDER_ID = oom.ORDER_ID
+                 LEFT JOIN RMS_CAPACITY RC
+                           ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                 LEFT JOIN RMS_MATERIAL RM
+                           ON RM.MATERIAL_ID = oom.MATERIAL_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 RC2
+                           ON RC2.CONSIGNEE_ID = ASO.RECEIVE_UNIT_ID
+        WHERE OO.ORDER_ID = #{orderId} and oom.MATERIAL_ID = #{materialId}
     </select>
 
 
@@ -1101,7 +1097,7 @@
         where OO.ORDER_ID = #{orderId}
     </select>
 <!--  老厂区采购内转计量委托 -->
-    <select id="purchaseXqCgNzMeasure" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+    <select id="purchaseXqCgNzMeasure" resultType="java.util.Map" parameterType="java.util.Map">
         SELECT
             *
         FROM

+ 21 - 14
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -656,20 +656,27 @@
 
     <!--  通过运输订单号 查询实绩Id、总实绩ID -->
     <select id="selectTotalIdByOrderNo" parameterType="java.lang.String" resultType="java.util.Map">
-        select OO.ORDER_ID         "orderId",
-               OO.ORDER_TYPE       "orderTypee",
-               TUR.RESULT_ID       "resultId",
-               TTR.RESULT_TOTAL_ID "resultTotalId",
-               RC.CAPACITY_NUMBER "capacityNumber",
-               TUR.SEGMENT_SQE      "segmentSqe"
-        from OMSTRUCK_ORDER OO
-                 left join TMSTRUCK_TOTAL_RESULT TTR
-                           on OO.ORDER_ID = TTR.ORDER_ID
-                 left join TMSTRUCK_UNLOAD_RESULT TUR
-                           on TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
-                 left join RMS_CAPACITY RC
-                           on RC.CAPACITY_ID = OO.CAPACITY_ID
-        where OO.ORDER_NUMBER = #{orderNumber}
+        select *
+        from (
+                 select OO.ORDER_ID         "orderId",
+                        OO.ORDER_TYPE       "orderTypee",
+                        TUR.RESULT_ID       "resultId",
+                        TTR.RESULT_TOTAL_ID "resultTotalId",
+                        RC.CAPACITY_NUMBER  "capacityNumber",
+                        TUR.SEGMENT_SQE     "segmentSqe"
+
+                 from OMSTRUCK_ORDER OO
+                          left join TMSTRUCK_TOTAL_RESULT TTR
+                                    on OO.ORDER_ID = TTR.ORDER_ID
+                          left join TMSTRUCK_UNLOAD_RESULT TUR
+                                    on TTR.RESULT_TOTAL_ID = TUR.RESULT_TOTAL_ID
+                          left join RMS_CAPACITY RC
+                                    on RC.CAPACITY_ID = OO.CAPACITY_ID
+                 where OO.ORDER_NUMBER = #{orderNumber}
+                   and TUR.RESULT_END_TIME is null
+                 order by TUR.SEGMENT_SQE
+             )
+        where rownum = 1
     </select>
 
     <!--  通过卸货地点查询 仓库ID-->

+ 33 - 0
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -199,8 +199,10 @@
     <select id="getOrderTypeByOrderNumber" parameterType="string" resultType="map">
         select OO.ORDER_TYPE "orderType",
                TTR.RESULT_TOTAL_ID "totalId",
+               TTR.RESULT_TOTAL_ID "resultTotalId",
                OO.ORDER_ID      "orderId",
                OO.ORDER_LINE_SEQUENCE "Sqe",
+               OO.LINE_ID           "lineId",
                RC.CAPACITY_NUMBER   "capacityNumber"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR
@@ -219,4 +221,35 @@
     <select id="getCapacityIdByNum" parameterType="string" resultType="java.math.BigDecimal">
         select RC.CAPACITY_ID from RMS_CAPACITY RC where RC.CAPACITY_NUMBER = #{capacityNumber}
     </select>
+
+
+    <select id="getLastGatepostId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select *
+        from (
+                 select TER.GATEPOST_ID
+                 from TMSTRUCK_ENFACTORY_RESULT TER
+                 where TER.RESULT_TOTAL_ID = #{resultTotalId}
+                   and TER.RESULT_ENTRY_GATE_TIME is not null
+                 order by TER.SEGMEN_SQE DESC
+             )
+        where rownum = 1
+    </select>
+    <select id="getNextMaterialId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select *
+        from (
+                 select OOM.MATERIAL_ID
+                 from OMSTRUCK_ORDER_MATERIAL OOM
+                 where OOM.ORDER_ID = #{orderId}
+                   AND NOT EXISTS(select TWR.MATERIAL_ID
+                                  from TMSTRUCK_TOTAL_RESULT TTR
+                                           left join TMSTRUCK_WEIGHT_RESULT TWR
+                                                     on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                                  where TTR.ORDER_ID = OOM.ORDER_ID
+                                    and OOM.MATERIAL_ID = TWR.MATERIAL_ID
+                     )
+                 order by OOM.MATERIAL_PRIORITY
+             )
+        where rownum = 1
+    </select>
+
 </mapper>