package com.stylefeng.guns.modular.system.controller.specialTrain;
|
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.service.ITCarService;
|
import com.stylefeng.guns.modular.system.service.ITDriverService;
|
import com.stylefeng.guns.modular.system.service.ITOrderLogisticsService;
|
import com.stylefeng.guns.modular.system.service.ITUserService;
|
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
|
import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
|
import com.stylefeng.guns.modular.system.util.PushURL;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.annotation.Resource;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 小件物流订单控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-09-24 14:20:41
|
*/
|
@Controller
|
@RequestMapping("/tOrderLogistics")
|
public class TOrderLogisticsController extends BaseController {
|
|
private String PREFIX = "/system/tOrderLogistics/";
|
|
@Autowired
|
private ITOrderLogisticsService tOrderLogisticsService;
|
|
@Autowired
|
private FleetEngineUtil fleetEngineUtil;
|
|
@Resource
|
private ITUserService userService;
|
|
@Resource
|
private OrderCancelMapper orderCancelMapper;
|
|
@Resource
|
private ITCarService carService;
|
@Autowired
|
private ITDriverService itDriverService;
|
|
/**
|
* 跳转到小件物流订单首页
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "tOrderLogistics.html";
|
}
|
|
/**
|
* 跳转到添加小件物流订单
|
*/
|
@RequestMapping("/tOrderLogistics_add")
|
public String tOrderLogisticsAdd() {
|
return PREFIX + "tOrderLogistics_add.html";
|
}
|
|
/**
|
* 跳转到查看小件物流订单
|
*/
|
@RequestMapping("/tOrderLogistics_detail/{tOrderLogisticsId}")
|
public String tOrderLogistics_detail(@PathVariable Integer tOrderLogisticsId, Model model) {
|
Map<String,Object> tOrderLogistics = tOrderLogisticsService.getLogisticsOrderDetailById(tOrderLogisticsId);
|
model.addAttribute("item",tOrderLogistics);
|
return PREFIX + "tOrderLogistics_detail.html";
|
}
|
|
/**
|
* 获取小件物流订单列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String insertTime,
|
String orderNum,
|
Integer type,
|
Integer orderSource,
|
String userName,
|
String userPhone,
|
String recipient,
|
String recipientPhone,
|
String driver,
|
Integer state) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
page.setRecords(tOrderLogisticsService.getLogisticsOrderList(page,beginTime,endTime,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),
|
orderNum,orderSource,type,userName,userPhone,recipient,recipientPhone,driver,state));
|
return super.packForBT(page);
|
}
|
|
/**
|
* 取消小件物流订单
|
*/
|
@RequestMapping(value = "/cancel")
|
@ResponseBody
|
public Object cancel(@RequestParam Integer tOrderLogisticsId) {
|
TOrderLogistics tOrderLogistics = tOrderLogisticsService.selectById(tOrderLogisticsId);
|
if(Arrays.asList(6, 7, 8, 9, 10).contains(tOrderLogistics.getState())){
|
return ERROR;
|
}
|
//修改之前司机状态 -- 空闲
|
if(null != tOrderLogistics.getDriverId()){
|
TDriver driver = itDriverService.selectById(tOrderLogistics.getDriverId());
|
driver.setState(2);
|
itDriverService.updateById(driver);
|
}
|
|
tOrderLogistics.setState(10);
|
tOrderLogisticsService.updateById(tOrderLogistics);
|
|
TUser tUser = userService.selectById(tOrderLogistics.getUserId());
|
Integer language = tUser.getLanguage();
|
OrderCancel orderCancel = new OrderCancel();
|
orderCancel.setOrderId(tOrderLogisticsId);
|
orderCancel.setOrderType(4);
|
orderCancel.setReason(language == 1 ? "平台取消订单" : language == 2 ? "The platform cancelled the order" : "La plateforme a annulé la commande");
|
orderCancel.setRemark(language == 1 ? "平台取消订单" : language == 2 ? "The platform cancelled the order" : "La plateforme a annulé la commande");
|
orderCancel.setUserType(2);
|
orderCancel.setState(2);
|
orderCancel.setInsertTime(new Date());
|
orderCancelMapper.insert(orderCancel);
|
|
//修改行程信息
|
TCar car = carService.selectById(tOrderLogistics.getCarId());
|
//修改行程信息
|
boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tOrderLogistics.getTripId(), null, null, null, null, tOrderLogistics.getId(), 4);
|
if(!updateTrip){
|
for (int i = 0; i < 5; i++) {
|
updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tOrderLogistics.getTripId(), null, null, null, null, tOrderLogistics.getId(), 4);
|
if(updateTrip){
|
tOrderLogistics.setIsover(1);
|
tOrderLogisticsService.updateById(tOrderLogistics);
|
break;
|
}
|
try {
|
Thread.sleep(3000L);
|
} catch (InterruptedException e) {
|
throw new RuntimeException(e);
|
}
|
}
|
}else{
|
tOrderLogistics.setIsover(1);
|
tOrderLogisticsService.updateById(tOrderLogistics);
|
}
|
|
|
//增加推送
|
Map<String,String> map = new HashMap<>();
|
map.put("id", tOrderLogistics.getId().toString());
|
map.put("orderType", tOrderLogistics.getType().toString());
|
String result = HttpRequestUtil.postRequest(PushURL.cancel_order_url, map);
|
System.out.println("小件物流取消:【orderId="+tOrderLogistics.getId().toString()+"】,调用接口:"+result);
|
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除小件物流订单
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
public Object delete(@RequestParam Integer tOrderLogisticsId) {
|
TOrderLogistics tOrderLogistics = tOrderLogisticsService.selectById(tOrderLogisticsId);
|
tOrderLogistics.setIsDelete(2);
|
tOrderLogisticsService.updateById(tOrderLogistics);
|
return SUCCESS_TIP;
|
}
|
|
}
|