|
@@ -1014,6 +1014,114 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception {
|
|
|
+ int result = 0;
|
|
|
+ // 遍历每一行
|
|
|
+ for (Map<String,Object> map : mapList) {
|
|
|
+ List<OmstruckOrder> orders=omstruckOrderMapper.selectByParameters(map);
|
|
|
+ if(orders==null || orders.size()<=0){
|
|
|
+ throw new Exception("没有对应的运输订单");
|
|
|
+ }
|
|
|
+ OmstruckOrder omstruckOrder=orders.get(0);
|
|
|
+ // 得到车序号表主键
|
|
|
+ BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
|
|
|
+ // 得到承运商
|
|
|
+ BigDecimal carrierId = omstruckOrder.getCarrierId();
|
|
|
+ //查询车序号表物资
|
|
|
+ List<Map<String, Object>> materialList = amsSaleOrderMaterialMapper.getMaterial(saleOrderMaterialId);
|
|
|
+ if(materialList==null||materialList.size()<=0){
|
|
|
+ throw new Exception("车序号没有剩余物资");
|
|
|
+ }
|
|
|
+ // 程序根据剩余多少拼生成运输线路id 110001 到 110010(单拼到十拼)
|
|
|
+ BigDecimal lineId = DataChange.dataToBigDecimal(110000+materialList.size());
|
|
|
+ /*
|
|
|
+ 定向派单表
|
|
|
+ */
|
|
|
+ // 通过车序号主键确认定向派单是否已存在
|
|
|
+ BigDecimal dispatchId0 = amsDispatchSaleOrderMapper.isDispatchExist(saleOrderMaterialId);
|
|
|
+ if (dispatchId0 == null || dispatchId0.toString().length() == 0) {
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
|
|
|
+ // 主键
|
|
|
+ BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
|
|
|
+ amsDispatchSaleOrder.setDispatchId(dispatchId);
|
|
|
+ // 车序号表id
|
|
|
+ amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
|
|
|
+ // 承运商id
|
|
|
+ amsDispatchSaleOrder.setCarrierId(carrierId);
|
|
|
+ // 派单时间和成交时间
|
|
|
+ amsDispatchSaleOrder.setDispatchTime(new Date());
|
|
|
+ amsDispatchSaleOrder.setDispatchDealTime(new Date());
|
|
|
+ // 成交类型
|
|
|
+ amsDispatchSaleOrder.setDispatchType(new BigDecimal(2));
|
|
|
+ // 车序号状态
|
|
|
+ amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
|
|
|
+ result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
|
|
|
+ }
|
|
|
+ // 如果已经匹配过承运商或者给某个承运商授权过,则派车时做修改承运商操作
|
|
|
+ else {
|
|
|
+ AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId0);
|
|
|
+ amsDispatchSaleOrder.setCarrierId(carrierId);
|
|
|
+ result += amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ 运输订单
|
|
|
+ */
|
|
|
+ // 运输订单主键
|
|
|
+ BigDecimal orderId = omstruckOrderMapper.selectMaxId();
|
|
|
+ omstruckOrder.setOrderId(orderId);
|
|
|
+ // 车序号主键
|
|
|
+ omstruckOrder.setOrderPlanId(saleOrderMaterialId);
|
|
|
+ // 是否可作业
|
|
|
+ omstruckOrder.setCanWork(new BigDecimal(0));
|
|
|
+ // 下发时间
|
|
|
+ omstruckOrder.setOrderIssueTime(new Date());
|
|
|
+ // 运单状态
|
|
|
+ if(omstruckOrder.getOrderReceiveRefuseTime()!=null){
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(7));
|
|
|
+ }else{
|
|
|
+ omstruckOrder.setOrderStatus(new BigDecimal(4));
|
|
|
+ }
|
|
|
+ //路段顺序号
|
|
|
+ //omstruckOrder.setOrderLineSequence(new BigDecimal(2));
|
|
|
+ // 运输线路id
|
|
|
+ omstruckOrder.setLineId(lineId);
|
|
|
+ omstruckOrder.setInsertTime(new Date());
|
|
|
+ omstruckOrder.setInsertUsername("continue");
|
|
|
+ result += omstruckOrderMapper.insertSelective(omstruckOrder);
|
|
|
+ for (Map<String, Object> materialMap : materialList) {
|
|
|
+ BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
|
|
|
+ BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
|
|
|
+ BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
|
|
|
+ /*
|
|
|
+ 运输订单物资子表
|
|
|
+ */
|
|
|
+ OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
|
|
|
+ // 主键
|
|
|
+ BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
|
|
|
+ omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
|
|
|
+ // 运输订单id
|
|
|
+ omstruckOrderMaterial.setOrderId(omstruckOrder.getOrderId());
|
|
|
+ // 物资id
|
|
|
+ omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
+ // 物资重量
|
|
|
+ omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
|
|
|
+ // 物资件数
|
|
|
+ omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
|
|
|
+ // 新增运输订单子表
|
|
|
+ result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
|
|
|
+ }
|
|
|
+ // 调用websocket
|
|
|
+ Map<String, Object> orderIdMap = new HashMap<>();
|
|
|
+ orderIdMap.put("orderId", omstruckOrder.getOrderId());
|
|
|
+ amsSaleOrderMaterialService.pushMesToWebsocket(orderIdMap);
|
|
|
+ orderIdMap.put("orderIdOld", map.get("orderId"));
|
|
|
+ orderIdMap.put("resultTotalIdOld",map.get("resultTotalId"));
|
|
|
+ // 生成所有实绩
|
|
|
+ result += tmsTruckFeign.copyAllResult(orderIdMap);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
/**
|
|
|
* 根据详细地址匹配承运商
|
|
|
* @param placeId
|