Browse Source

'汽运汽车衡'

HUJIANGUO 3 years ago
parent
commit
c1cc8cdbc7

+ 6 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckEnfactoryResultController.java

@@ -103,7 +103,12 @@ public class TmstruckEnfactoryResultController extends BaseRESTfulController {
     })
     @PostMapping("/enFactoryResultByPDA")
     public RESTfulResult enFactoryResultByPDA(@RequestBody(required=false) Map<String,Object> mapValue){
-        int i = tmstruckEnfactoryResultService.enFactoryResultByPDA(mapValue);
+        int i = 0;
+        try {
+            i = tmstruckEnfactoryResultService.enFactoryResultByPDA(mapValue);
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
         return success(i);
     }
 

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

@@ -17,8 +17,8 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     @Select("select seq_tmstruck_weight_result.nextval from dual")
     BigDecimal selectMaxId();
 
-    //通过物资ID或运输订单ID查询计量实绩ID
-    BigDecimal getWeightIdByMaterialIdAndOrderId(Map<String, Object> map);
+    //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
+    BigDecimal getWeightIdBySQEAndOrderId(Map<String, Object> map);
 
     //通过运输订单号和查询订单Id 和物资ID (针对单拼)
     Map<String, Object> getOrderIdAndMaterialIdByOrderNum(String orderNumber);

+ 1 - 1
src/main/java/com/steerinfo/dil/service/ITmstruckEnfactoryResultService.java

@@ -31,7 +31,7 @@ public interface ITmstruckEnfactoryResultService{
     Integer selectNodeNumber(String orderNumber);
 
     //进厂实绩
-    int enFactoryResultByPDA(Map<String, Object> map);
+    int enFactoryResultByPDA(Map<String, Object> map) throws Exception;
 
     //
     int enFactoryResultByMJ(Map<String, Object> map);

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

@@ -142,7 +142,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
      * @return
      */
     @Transactional
-    public int enFactoryResultByPDA(Map<String, Object> map){
+    public int enFactoryResultByPDA(Map<String, Object> map) throws Exception {
         int i = 0;
         //通过运输订单号查询订单类型
         String orderNumber = (String) map.get("orderNumber");
@@ -152,16 +152,20 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         i += updateEnFactoryResultByPDA(map); //添加进厂实绩
         //修改路段顺序号
         i += utilsService.updateOrderLineSequence(map);
+        //判断委托是否发送成功
+        int checkMeasureCommission = 0;
         switch (orderType.intValue()){
             case 1:
             case 4:
                 //查询未装车实绩
                 List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
                 if(mapList.size() == 1){
-                    //如果是单拼 不需要走计算 直接走钢材的汽车衡
+                    //如果是单拼 不需要走计算 直接走钢材的汽车衡(钢材)
                     Map<String, Object> mesMap = new HashMap<>();
                     mesMap.put("materialId",mapList.get(0).get("materialId"));
+                    map.put("materialId", mapList.get(0).get("materialId"));
                     mesMap.put("nature", 1);
+                    mesMap.put("orderId", map.get("orderId"));
                     //计算计皮汽车衡
                     int tarePlaceId = rulesService.calculateWeighbridge(mesMap);
                     mesMap.put("tarePlaceId", tarePlaceId);
@@ -181,7 +185,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                     //更新汽车衡
                     i += tmstruckWeightResultService.updateWeightResult(calculateMap);
                 }
-//                i += tmstruckMeasureCommissionService.addPiMeasureCommission(map); //添加计皮委托
+                checkMeasureCommission += tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
                 break;
             case 2:
             case 3:
@@ -201,7 +205,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 //通过物资ID查询物资Id
                 List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
                 map.put("materialId", materialIdList.get(0));
-                i += tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
+                checkMeasureCommission += tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
                 break;
             case 10: // 采购内转(老区-厂内) 没有进厂
                 break;
@@ -215,7 +219,10 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 map.put("materialId", materialIdByOrderId.get(0));
                 //默认收货单位为新厂区
 
-                i += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
+                checkMeasureCommission += tmstruckMeasureCommissionService.addLXMeasureCommission(map);
+        }
+        if(checkMeasureCommission == 0){
+            throw new Exception("委托发送失败");
         }
         utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "车辆进厂");
         return i;

+ 6 - 5
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -79,7 +79,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      * @return
      */
     public int addMaoMeasureCommission(Map<String, Object> map){
-        int i = addMeasureCommission(map); // 添加计毛委托
+        int i = 0;
+        addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
         //获取当前订单是属于哪个厂区订单
         Integer receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
@@ -100,7 +101,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      * @return
      */
     public int addXSMeasureCommission(Map<String, Object> map){
-        int i = addMeasureCommission(map); // 添加计毛委托
+        int i = 0;
+        addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
         //获取当前订单是属于哪个厂区订单
         Integer shipperId = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
@@ -121,9 +123,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
      * @return
      */
     public int addLXMeasureCommission(Map<String, Object> map){
-        int i = addMeasureCommission(map); // 添加计毛委托
-        i += sendDXMeasureCommissionMes(map);
-        return i;
+        addMeasureCommission(map); // 添加计毛委托
+        return sendDXMeasureCommissionMes(map);
     }
 
 

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

@@ -381,8 +381,8 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
      */
     public int updateWeightResult(Map<String, Object> map){
         TmstruckWeightResult tmstruckWeightResult = new TmstruckWeightResult();
-        //通过(物资ID)和运输订单Id修改查找计量实绩ID
-        BigDecimal id = tmstruckWeightResultMapper.getWeightIdByMaterialIdAndOrderId(map);
+        //通过订单Id 查询路段顺序号为最小的 且没有净重的计量实绩ID
+        BigDecimal id = tmstruckWeightResultMapper.getWeightIdBySQEAndOrderId(map);
         tmstruckWeightResult.setId(id);
         if(map.get("tarePlaceId") != null){ //如果皮重汽车衡不为空 更新皮重汽车衡
             tmstruckWeightResult.setResultTarePlaceId(DataChange.dataToBigDecimal(map.get("tarePlaceId")));

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

@@ -846,7 +846,6 @@
     <select id="saleDXMeasure" parameterType="map" resultType="map">
         select
                OO.ORDER_NUMBER          "orderId",
-               ASM.MATERIAL_ID          "item",
                RTC.TRUCK_CALCULATE_NUMBER                                                     "regionName",
                RC.CAPACITY_NUMBER                                                             "carNumber",
                RM.MATERIAL_ID || ''                                                           "item",
@@ -871,7 +870,7 @@
 
         from OMSTRUCK_ORDER OO
         left join AMS_SALE_ORDER_MATERIAL ASOM
-            on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_ID
+            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_TRUCKNO_MATERIAL ASTM            --获得分路主键ID

+ 14 - 12
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1378,18 +1378,20 @@
     </select>
 
     <!--   通过物资Id和运输订单id 查询计量实绩Id -->
-    <select id="getWeightIdByMaterialIdAndOrderId" parameterType="java.util.Map" resultType="DECIMAL">
-        select
-        TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId"
-        from OMSTRUCK_ORDER OO
-        left join TMSTRUCK_TOTAL_RESULT TTR
-        on OO.ORDER_ID = TTR.ORDER_ID
-        left join TMSTRUCK_WEIGHT_RESULT TWR
-        on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        where OO.ORDER_ID = #{orderId}
-        <if test="materialId != null">
-            and TWR.MATERIAL_ID = #{materialId}
-        </if>
+    <select id="getWeightIdBySQEAndOrderId" parameterType="java.util.Map" resultType="DECIMAL">
+        select *
+        from (
+                 select TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId"
+                 from OMSTRUCK_ORDER OO
+                          left join TMSTRUCK_TOTAL_RESULT TTR
+                                    on OO.ORDER_ID = TTR.ORDER_ID
+                          left join TMSTRUCK_WEIGHT_RESULT TWR
+                                    on TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                 where OO.ORDER_ID = #{orderId}
+                   and (TWR.RESULT_NET_WEIGHT is null or TWR.RESULT_NET_WEIGHT = 0)
+                 order by TWR.TARE_SEGMENT_SQE
+             )
+        where rownum = 1
     </select>
 
     <!--    通过运输订单号和查询订单Id 和物资ID (针对单拼)  -->