liyg 2 년 전
부모
커밋
eaa4b4423a

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

@@ -436,6 +436,7 @@ public class OmstruckOrderController extends BaseRESTfulController {
         try {
              i = omstruckOrderService.undoOrder(mapValue);
         } catch (Exception e) {
+            e.printStackTrace();
             return failed(e.getMessage());
         }
         return success(i);

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

@@ -116,6 +116,11 @@ public interface OmstruckOrderSeparateMapper {
     //根据订单ID查询信息
     Map<String, Object> getOrderMesByOrderId(BigDecimal orderId);
 
+    //查询是否已经过磅
+    int countWeight(BigDecimal orderId);
+    //查询老区进厂数量
+    int countEnFactory(BigDecimal orderId);
+
     int updateSporadicStatus(BigDecimal orderPlanId,int sporadicStatus);
 
     //查询计时进程

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

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.service.impl;
 
 import com.alibaba.druid.support.json.JSONUtils;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.api.R;
 import com.steerinfo.dil.feign.AmsFeign;
 import com.steerinfo.dil.feign.IMFeign;
@@ -587,21 +588,36 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         int result=0;
         BigDecimal orderId =DataChange.dataToBigDecimal(map.get("orderId"));
         Map<String, Object> mesMap = omstruckOrderSeparateMapper.getOrderMesByOrderId(orderId);
+        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
         //if((DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue() == 1||DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue() == 4)
         //        && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0){
         //    throw new Exception("钢材订单不允许撤销!");
         //}
-        if(DataChange.dataToBigDecimal(mesMap.get("lineSqe")).intValue() >= 1 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0){
-            throw new Exception("撤单失败");
+        //已计量,则不允许撤单
+        if(omstruckOrderSeparateMapper.countWeight(orderId) > 0 && DataChange.dataToBigDecimal(map.get("isAdmin")).intValue() == 0){
+            throw new Exception("已过磅,撤单失败!");
+        }
+        //如果是老区已进场或者内转,则删除计量委托
+        if(omstruckOrderSeparateMapper.countEnFactory(orderId) > 0 || orderType==11){
+            //获取运输订单号
+            String orderNumber = (String) mesMap.get("orderNumber");
+            //撤销订单的同时删除计量数据
+            String url = "http://172.16.33.122:44325/api/logistics/delEntrust";
+            String sendUrl = url + "?orderNumber=" + orderNumber;
+            String jsonData = getRequestUtils.doGet(sendUrl);
+            System.out.println(jsonData);
+            JSONObject jsonObject=null;
+            try{
+                jsonObject=JSONObject.parseObject(jsonData);
+            }catch (Exception e){
+                System.out.println("删除计量:回传解析失败");
+                e.printStackTrace();
+            }
+            //校验是否成功删除,失败则不允许撤单
+            if(jsonObject==null || "false".equals(jsonObject.getString("success"))){
+                throw new Exception("计量委托删除失败!");
+            }
         }
-        int orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
-        //获取运输订单号
-        String orderNumber = (String) mesMap.get("orderNumber");
-        //撤销订单的同时删除计量数据
-        String url = "http://172.16.33.122:44325/api/logistics/delEntrust";
-        String sendUrl = url + "?orderNumber=" + orderNumber;
-        String jsonData = getRequestUtils.doGet(sendUrl);
-        System.out.println(jsonData);
         BigDecimal orderPlanId = DataChange.dataToBigDecimal(mesMap.get("orderPlanId"));
         BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("resultTotalId"));
         OmstruckOrder omstruckOrder = new OmstruckOrder();
@@ -625,7 +641,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         }
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String dateStr = sdf.format(new Date());
-        omstruckOrder.setInsertUpdateRemark(map.get("capacityNumber") + "司机撤销订单将订单删除," + "撤销时间:" + dateStr + "撤销时路段顺序号为:" + mesMap.get("lineSqe"));
+        omstruckOrder.setInsertUpdateRemark(map.get("capacityNumber") + "司机撤销订单将订单删除;撤单原因:"+map.get("reason") + ";撤销时间:" + dateStr + ";撤销时路段顺序号为:" + mesMap.get("lineSqe"));
         //讲路段顺序号设为空,适应进厂以后扫码
         omstruckOrder.setOrderLineSequence(new BigDecimal(0));
         result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);

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

@@ -950,4 +950,17 @@
         SELECT DILV.VERSION_VALUE FROM DIL_VERSION DILV
         WHERE DILV.VERSION_ID = 7
     </select>
+    <select id="countWeight" resultType="java.lang.Integer">
+    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_TARE_WEIGHT IS NOT NULL OR TWR.RESULT_GROSS_WEIGHT IS NOT NULL) AND TTR.ORDER_ID = #{orderId}
+    </select>
+    <select id="countEnFactory" resultType="java.lang.Integer">
+    SELECT
+        COUNT(TER.RESULT_ID)
+    FROM TMSTRUCK_ENFACTORY_RESULT TER
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        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>
 </mapper>