liyg 2 年 前
コミット
55ceb8ba0d

+ 16 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -146,4 +146,20 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
     public RESTfulResult testJarSuccess() {
         return success("jar包发布成功");
     }
+
+    @PostMapping("/changeOrderNumber")
+    public RESTfulResult changeOrderNumber(@RequestBody(required = false) Map<String, Object> map) {
+        String s = null;
+        try {
+            s = tmstruckWeightResultServiceImpl.changeOrderNumber(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+            if(e.getMessage()==null || e.getMessage().contains("Exception")){
+                return failed("未知异常");
+            }else{
+                return failed(e.getMessage());
+            }
+        }
+        return success(s);
+    }
 }

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

@@ -17,6 +17,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     @Select("select seq_omstruck_order.nextval from dual")
     BigDecimal selectMaxId();
 
+    Map<String,Object> findOrderDetailByCapacityNumber(Map<String,Object> map);
 
     Map<String,Object> findCarNumberByOrderId(BigDecimal saleOrderMaterialId);
 

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

@@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.feign.TmstruckFeign;
 import com.steerinfo.dil.mapper.*;
+import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.model.TmstruckReceiveResult;
 import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.service.ITmstruckWeightResultService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.newFileTool;
 import org.apache.commons.lang.time.FastDateFormat;
+import org.apache.ibatis.exceptions.TooManyResultsException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -60,6 +62,9 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     @Autowired
     TmstruckReceiveResultMapper tmstruckReceiveResultMapper;
 
+    @Autowired
+    OmstruckOrderMapper omstruckOrderMapper;
+
 
     @Autowired
     TmstrainWeightResultServiceImpl tmstrainWeightResultService;
@@ -1014,6 +1019,31 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         return "success";
     }
 
-
-
+    @Transactional(rollbackFor = Exception.class)
+    public String changeOrderNumber(Map<String,Object> map) throws Exception{
+        //校验
+        if(map==null || map.get("capacityNumber")==null){
+            throw new Exception("缺乏车牌号:capacityNumber");
+        }
+        //查询车辆对应订单信息
+        Map<String,Object> details = null;
+        try{
+            details = omstruckOrderMapper.findOrderDetailByCapacityNumber(map);
+        }catch (TooManyResultsException e){
+            e.printStackTrace();
+            throw new Exception("查询到多个实绩");
+        }
+        if(details==null || details.get("orderId")==null){
+            throw new Exception("没有查询到正在执行的运单!");
+        }
+        //生成新的运输订单号
+        BigDecimal orderId=omstruckOrderMapper.selectMaxId();
+        String result=DataChange.generateEightDigitsNumber("WYSDD", orderId.intValue());
+        //更新
+        OmstruckOrder omstruckOrder=new OmstruckOrder();
+        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(details.get("orderId")));
+        omstruckOrder.setOrderNumber(result);
+        omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+        return result;
+    }
 }

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

@@ -1003,4 +1003,17 @@
         SET OOM.MATERIAL_PRIORITY = null
         WHERE OOM.ORDER_ID = #{orderId}
     </update>
+    <select id="findOrderDetailByCapacityNumber" resultType="java.util.Map">
+        SELECT DISTINCT
+            OO.order_ID "orderId",
+            RC.CAPACITY_NUMBER "capacityNumber",
+            OO.ORDER_NUMBER "orderNumber",
+            OO.ORDER_TYPE "orderType"
+        FROM
+            OMSTRUCK_ORDER OO
+                LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
+        WHERE
+            RC.CAPACITY_NUMBER = #{capacityNumber}
+          AND OO.order_status = 5
+    </select>
 </mapper>