package cn.exrick.xboot.your.controller;
|
|
import cn.exrick.xboot.core.common.utils.PageUtil;
|
import cn.exrick.xboot.core.common.utils.ResultUtil;
|
import cn.exrick.xboot.core.common.utils.SecurityUtil;
|
import cn.exrick.xboot.core.common.vo.PageVo;
|
import cn.exrick.xboot.core.common.vo.Result;
|
import cn.exrick.xboot.core.entity.Department;
|
import cn.exrick.xboot.core.entity.User;
|
import cn.exrick.xboot.core.service.DepartmentService;
|
import cn.exrick.xboot.core.service.UserService;
|
import cn.exrick.xboot.your.entity.*;
|
import cn.exrick.xboot.your.service.*;
|
import cn.exrick.xboot.your.vo.OrderListVo;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.alibaba.excel.EasyExcel;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.math.BigDecimal;
|
import java.net.URLEncoder;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author whj
|
*/
|
@Slf4j
|
@RestController
|
@Api(tags = "订单接口")
|
@RequestMapping("/xboot/orderTask")
|
@Transactional
|
public class OrderTaskController {
|
|
@Autowired
|
private IOrderTaskService iOrderTaskService;
|
|
@Autowired
|
private IAreaService iAreaService;
|
|
@Autowired
|
private ICustomerService iCustomerService;
|
|
@Autowired
|
private IOrderDetailService iOrderDetailService;
|
|
@Autowired
|
private SecurityUtil securityUtil;
|
|
@Autowired
|
private UserService userService;
|
|
@Autowired
|
private IAreaSectionService iAreaSectionService;
|
|
@Autowired
|
private ICarService iCarService;
|
|
@Autowired
|
private DepartmentService departmentService;
|
|
@Autowired
|
private IEventLogService iEventLogService;
|
|
@Autowired
|
private IOrderLogService iOrderLogService;
|
|
@Autowired
|
private IOrderTaskOriginalService iOrderTaskOriginalService;
|
|
@Autowired
|
private IOrderDetailOriginalService iOrderDetailOriginalService;
|
|
|
@Autowired
|
private ICustomerReceiveService iCustomerReceiveService;
|
|
boolean b = false;
|
|
|
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
|
@ApiOperation(value = "通过id获取")
|
public Result<OrderTask> get(@PathVariable String id) {
|
|
OrderTask orderTask = iOrderTaskService.getById(id);
|
return new ResultUtil<OrderTask>().setData(orderTask);
|
}
|
|
@RequestMapping(value = "/getByPage2", method = RequestMethod.GET)
|
@ApiOperation(value = "分页获取")
|
public Result<IPage<OrderTask>> getByPage2(PageVo page,String sendDate,String userName,String customerName,Integer status) {
|
QueryWrapper<OrderTask> wrapper = new QueryWrapper<>();
|
if(StrUtil.isNotEmpty(sendDate)){
|
wrapper.eq("order_date",sendDate);
|
}
|
IPage<OrderTask> data = iOrderTaskService.page(PageUtil.initMpPage(page),wrapper);
|
List<OrderTask> records = data.getRecords();
|
for (OrderTask record : records) {
|
if(record.getAreaSectionId() != null){
|
AreaSection byId = iAreaSectionService.getById(record.getAreaSectionId());
|
if(byId != null){
|
record.setAreaSectionName(byId.getName());
|
}
|
}
|
}
|
data.setRecords(records);
|
return new ResultUtil<IPage<OrderTask>>().setData(data);
|
}
|
|
// public Area getArea(String userId){
|
// QueryWrapper<Area> wrapper = new QueryWrapper<Area>();
|
// wrapper.eq("user_id",userId);
|
// Area area = iAreaService.getOne(wrapper);
|
// if(area==null){
|
// QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
|
// carQueryWrapper.eq("user_id",userId);
|
// Car one = iCarService.getOne(carQueryWrapper);
|
// if(one==null){
|
// return null;
|
// }
|
// if(StrUtil.isEmpty(one.getFollowUserId())){
|
// return null;
|
// }
|
//
|
// QueryWrapper<Area> wrapper3 = new QueryWrapper<Area>();
|
// wrapper3.eq("user_id",one.getFollowUserId());
|
// area = iAreaService.getOne(wrapper3);
|
// return area;
|
// }
|
// return area;
|
// }
|
|
|
private String getFormatDate(String sendTime) {
|
if (StrUtil.isNotEmpty(sendTime)) {
|
return sendTime;
|
} else {
|
return DateUtil.format(new Date(), "yyyy-MM-dd");
|
}
|
}
|
|
private Date getDate(String sendTime){
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
if (StrUtil.isNotEmpty(sendTime)) {
|
return new Date();
|
} else {
|
try {
|
return format.parse(sendTime);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
return new Date();
|
}
|
}
|
}
|
|
public Area getArea(String userId) {
|
QueryWrapper<Car> carQueryWrapper = new QueryWrapper<Car>();
|
carQueryWrapper.eq("user_id", userId).or().eq("follow_user_id", userId);
|
Car one = iCarService.getOne(carQueryWrapper);
|
if (one == null) {
|
return null;
|
} else {
|
QueryWrapper<Area> wrapper = new QueryWrapper<Area>();
|
wrapper.eq("car_id", one.getId());
|
Area area = iAreaService.getOne(wrapper);
|
return area;
|
}
|
}
|
|
|
@RequestMapping(value = "/getByUserId", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日任务统计信息")
|
public Result<Object> getAll(String sendTime) {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
|
int sum = iOrderTaskService.sum(area.getId(), format);
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
map.put("count", list.size());
|
map.put("sum", sum);
|
String name = area.getName();
|
Map<String, List<OrderTask>> collect = list.stream().collect(Collectors.groupingBy(OrderTask::getAreaSectionId));
|
for (Map.Entry<String, List<OrderTask>> stringListEntry : collect.entrySet()) {
|
String key = stringListEntry.getKey();
|
List<OrderTask> value = stringListEntry.getValue();
|
if(value.size()>0){
|
AreaSection a = iAreaSectionService.getById(key);
|
name+=a.getName();
|
}
|
}
|
if(name.equals(area.getName())){
|
map.put("name", "");
|
}else {
|
map.put("name", name);
|
}
|
return new ResultUtil<Object>().setData(map);
|
}
|
|
@RequestMapping(value = "/getTodayCount", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日任务统计信息")
|
public Result<Object> getAllNew(String sendTime) {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
|
int sum = iOrderTaskService.sum(area.getId(), format);
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
map.put("count", list.size());
|
map.put("sum", sum);
|
map.put("name", "");
|
map.put("sectons", null);
|
if (list.size() > 0) {
|
List<String> temp = new ArrayList<>();
|
List<String> tempIds = new ArrayList<>();
|
List<AreaSection> areaSections = new ArrayList<>();
|
for(int i=0;i<list.size();i++){
|
if(!tempIds.contains(list.get(i).getAreaSectionId())){
|
tempIds.add(list.get(i).getAreaSectionId());
|
AreaSection a = iAreaSectionService.getById(list.get(i).getAreaSectionId());
|
temp.add(a.getName());
|
areaSections.add(a);
|
}
|
}
|
map.put("name", area.getName() + StringUtils.join(temp,"-"));
|
map.put("sectons",areaSections);
|
temp.clear();
|
tempIds.clear();
|
//areaSections.clear();
|
list.clear();
|
}
|
return new ResultUtil<Object>().setData(map);
|
}
|
|
/* @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日配送任务详情列表")
|
public Result<List<OrderTask>> getTodayOrder(String sendTime) {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
// wrapper2.eq("a.area_id",area.getId());
|
// wrapper2.eq("a.send_date",format);
|
// wrapper2.orderByAsc("a.seq").orderByAsc("a.status");
|
//List<OrderTask> list = iOrderTaskService.list2(wrapper2);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
wrapper2.orderByAsc("seq").orderByAsc("status");
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
for (OrderTask obj : list) {
|
obj.setCode(obj.getLinker());
|
}
|
return new ResultUtil<List<OrderTask>>().setData(list);
|
}*/
|
|
@RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日配送任务详情列表")
|
public Result<List<OrderTask>> getTodayOrder(String sendTime) {
|
|
//获取订单列表
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
// wrapper2.eq("a.area_id",area.getId());
|
// wrapper2.eq("a.send_date",format);
|
// wrapper2.orderByAsc("a.seq").orderByAsc("a.status");
|
//List<OrderTask> list = iOrderTaskService.list2(wrapper2);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
|
wrapper2.orderByAsc("area_section_id").orderByAsc("seq").orderByAsc("status");
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
|
return new ResultUtil<List<OrderTask>>().setData(list);
|
}
|
|
@RequestMapping(value = "/getTodayOrderByHulue", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日配送任务详情列表,忽略某订单,客户端专用接口")
|
public Result<OrderListVo> getTodayOrderFromHulue(String orderId, String sendTime,String areaSectionId) {
|
//忽略订单
|
if (!StrUtil.isEmpty(orderId)) {
|
OrderTask orderTask = iOrderTaskService.getById(orderId);
|
int seq = orderTask.getSeq();
|
orderTask.setSeq(1000+seq);
|
iOrderTaskService.saveOrUpdate(orderTask);
|
}
|
//获取订单列表
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
// wrapper2.eq("a.area_id",area.getId());
|
// wrapper2.eq("a.send_date",format);
|
// wrapper2.orderByAsc("a.seq").orderByAsc("a.status");
|
//List<OrderTask> list = iOrderTaskService.list2(wrapper2);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
if(!StrUtil.isEmpty(areaSectionId)){
|
wrapper2.eq("area_section_id", areaSectionId);
|
}
|
wrapper2.orderByAsc("area_section_id").orderByAsc("seq").orderByAsc("status");
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
int num = 0;
|
for (OrderTask obj : list) {
|
obj.setCode(obj.getLinker());
|
if(obj.getStatus()==1){
|
num++;
|
}
|
}
|
String percent = getPercent(num,list.size());
|
OrderListVo vo = new OrderListVo();
|
vo.setOrderTasks(list);
|
vo.setPercent(percent);
|
return new ResultUtil<OrderListVo>().setData(vo);
|
}
|
|
public String getPercent(int num,int totalNum){
|
if(totalNum>0){
|
BigDecimal number = new BigDecimal(0);
|
number=BigDecimal.valueOf((int)num);
|
BigDecimal total = new BigDecimal(0);
|
total=BigDecimal.valueOf((int)totalNum);
|
BigDecimal divide = number.divide(total,2,BigDecimal.ROUND_HALF_UP);
|
double bfb = divide.doubleValue();
|
int bfbInt = (int)(bfb*100);
|
return bfbInt+ "%";
|
}else{
|
return 0+ "%";
|
}
|
}
|
|
@RequestMapping(value = "/getOneMonthOrderPercent", method = RequestMethod.GET)
|
@ApiOperation(value = "获取本月配送百分比")
|
public Result<String> getMonthPercent(){
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
String todayFormat = DateUtil.format(new Date(), "yyyy-MM-dd");
|
String monthFormat = DateUtil.format(DateUtil.beginOfMonth(new Date()),"yyyy-MM-dd");
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.between("send_date",monthFormat,todayFormat);
|
int allOrders = iOrderTaskService.count(wrapper2);
|
|
wrapper2.eq("status",1);
|
int doOrders = iOrderTaskService.count(wrapper2);
|
|
return new ResultUtil<String>().setData(getPercent(doOrders,allOrders));
|
}
|
|
@RequestMapping(value = "/getTodayOrderDetail", method = RequestMethod.GET)
|
@ApiOperation(value = "获取当前配送商户详情")
|
public Result<OrderTask> getTodayOrderDetail(String orderId, String sendTime) {
|
OrderTask orderTask = new OrderTask();
|
if (!StrUtil.isEmpty(orderId)) {
|
orderTask = iOrderTaskService.getById(orderId);
|
if (orderTask.getStatus() != 0) {
|
return ResultUtil.error("此商户已配送");
|
}
|
} else {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
wrapper2.eq("status", 0);
|
//wrapper2.orderByAsc("seq");
|
|
PageVo page = new PageVo();
|
page.setSort("seq");
|
page.setOrder("asc");
|
page.setPageSize(1);
|
page.setPageNumber(0);
|
List<OrderTask> list = iOrderTaskService.page(PageUtil.initMpPage(page), wrapper2).getRecords();
|
//List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
if (list.size() > 0) {
|
orderTask = list.get(0);
|
} else {
|
return new ResultUtil<OrderTask>().setData(null);
|
}
|
}
|
|
orderTask.setCustomer(iCustomerService.getById(orderTask.getCustomerId()));
|
QueryWrapper<OrderDetail> wrapper3 = new QueryWrapper<OrderDetail>();
|
wrapper3.eq("order_id", orderTask.getId());
|
orderTask.setOrderDetails(iOrderDetailService.list(wrapper3));
|
|
return new ResultUtil<OrderTask>().setData(orderTask);
|
}
|
|
@RequestMapping(value = "/getTodayOrderDetailByAreaSection", method = RequestMethod.GET)
|
@ApiOperation(value = "获取当前配送商户详情")
|
public Result<OrderTask> getTodayOrderDetail(String orderId, String sendTime,String areaSectionId) {
|
OrderTask orderTask = new OrderTask();
|
if (!StrUtil.isEmpty(orderId)) {
|
orderTask = iOrderTaskService.getById(orderId);
|
if (orderTask.getStatus() != 0) {
|
return ResultUtil.error("此商户已配送");
|
}
|
} else {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
wrapper2.eq("status", 0);
|
if(!StrUtil.isEmpty(areaSectionId)){
|
wrapper2.eq("area_section_Id", areaSectionId);
|
}
|
//wrapper2.orderByAsc("seq");
|
|
PageVo page = new PageVo();
|
page.setSort("seq");
|
page.setOrder("asc");
|
page.setPageSize(1);
|
page.setPageNumber(0);
|
List<OrderTask> list = iOrderTaskService.page(PageUtil.initMpPage(page), wrapper2).getRecords();
|
//List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
if (list.size() > 0) {
|
orderTask = list.get(0);
|
} else {
|
return new ResultUtil<OrderTask>().setData(null);
|
}
|
}
|
|
orderTask.setCustomer(iCustomerService.getById(orderTask.getCustomerId()));
|
QueryWrapper<OrderDetail> wrapper3 = new QueryWrapper<OrderDetail>();
|
wrapper3.eq("order_id", orderTask.getId());
|
orderTask.setOrderDetails(iOrderDetailService.list(wrapper3));
|
|
return new ResultUtil<OrderTask>().setData(orderTask);
|
}
|
|
@RequestMapping(value = "/getTodayOtherInfo", method = RequestMethod.GET)
|
@ApiOperation(value = "获取其它信息")
|
public Result<Object> getTodayOtherInfo(String sendTime) {
|
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
String format = getFormatDate(sendTime);
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("send_date", format);
|
wrapper2.ne("status", 0);
|
wrapper2.orderByAsc("seq");
|
int count = iOrderTaskService.count(wrapper2);
|
|
|
QueryWrapper<OrderTask> wrapper4 = new QueryWrapper<OrderTask>();
|
wrapper4.eq("area_id", area.getId());
|
wrapper4.eq("send_date", format);
|
int count2 = iOrderTaskService.count(wrapper4);
|
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("num", count + "/" + count2);
|
|
QueryWrapper<OrderTask> wrapper5 = new QueryWrapper<OrderTask>();
|
wrapper5.ne("status", 0);
|
wrapper5.eq("send_date", format);
|
|
PageVo page = new PageVo();
|
page.setSort("updateTime");
|
page.setOrder("desc");
|
page.setPageSize(1);
|
page.setPageNumber(0);
|
IPage<OrderTask> data = iOrderTaskService.page(PageUtil.initMpPage(page), wrapper5);
|
String content = "";
|
if (data.getRecords().size() > 0) {
|
String userId = data.getRecords().get(0).getUserId();
|
User user = userService.get(userId);
|
|
QueryWrapper<OrderTask> wrapper6 = new QueryWrapper<OrderTask>();
|
wrapper6.eq("user_id", userId);
|
wrapper6.eq("send_date", format);
|
wrapper6.ne("status", 0);
|
int count6 = iOrderTaskService.count(wrapper6);
|
if (count6 > 0) {
|
content += user.getNickname() + "已配送" + count6 + "单";
|
}
|
}
|
map.put("content", content);
|
|
map.put("lng", "");
|
map.put("lat", "");
|
String deptId = securityUtil.getCurrUser().getDepartmentId();
|
if (StrUtil.isNotEmpty(deptId)) {
|
Department department = departmentService.get(deptId);
|
map.put("lng", department.getLng());
|
map.put("lat", department.getLat());
|
}
|
return new ResultUtil<Object>().setData(map);
|
}
|
|
@RequestMapping(value = "/addImg", method = RequestMethod.POST)
|
@ApiOperation(value = "上传门头照")
|
public Object saveOrUpdate(String orderId, String imgUrl) {
|
OrderTask orderTask = iOrderTaskService.getById(orderId);
|
orderTask.setImg(imgUrl);
|
iOrderTaskService.saveOrUpdate(orderTask);
|
return ResultUtil.success("添加成功");
|
}
|
|
@RequestMapping(value = "/signFor", method = RequestMethod.POST)
|
@ApiOperation(value = "签收")
|
public Object signFor(String orderId, int status, String content, String customerReceiveId, int time, String carId) {
|
if (status == 1) {
|
if (StrUtil.isEmpty(customerReceiveId)) {
|
return ResultUtil.error("正常签收,接货人id必填");
|
}
|
}
|
|
if (StrUtil.isEmpty(carId)) {
|
return ResultUtil.error("车辆id不能为空");
|
}
|
OrderTask orderTask = iOrderTaskService.getById(orderId);
|
orderTask.setStatus(status);
|
orderTask.setUserId(securityUtil.getCurrUser().getId());
|
orderTask.setTime(time);
|
orderTask.setCarId(carId);
|
if (StrUtil.isNotEmpty(customerReceiveId)) {
|
orderTask.setCustomerReceiveId(customerReceiveId);
|
}
|
|
if (!StrUtil.isEmpty(content)) {
|
orderTask.setRemarks(content);
|
} else {
|
if (status == 2) {
|
return ResultUtil.error("请填写异常签收原因");
|
}
|
}
|
iOrderTaskService.saveOrUpdate(orderTask);
|
|
Car car = iCarService.getById(orderTask.getCarId());
|
EventLog eventLog = new EventLog();
|
eventLog.setCarNo(car.getCarNo());
|
eventLog.setRefId(orderId);
|
eventLog.setType(6);//6:配送完成
|
iEventLogService.saveOrUpdate(eventLog);
|
|
saveLog();
|
return ResultUtil.success("添加成功");
|
}
|
|
@RequestMapping(value = "/signForX", method = RequestMethod.POST)
|
@ApiOperation(value = "签收")
|
public Object signForX(String orderId, int status, String content, String customerReceiveId, int time, String carId,String img) {
|
if (status == 1) {
|
if (StrUtil.isEmpty(customerReceiveId)) {
|
return ResultUtil.error("正常签收,接货人id必填");
|
}
|
}
|
|
if (StrUtil.isEmpty(carId)) {
|
return ResultUtil.error("车辆id不能为空");
|
}
|
OrderTask orderTask = iOrderTaskService.getById(orderId);
|
orderTask.setStatus(status);
|
orderTask.setUserId(securityUtil.getCurrUser().getId());
|
orderTask.setTime(time);
|
orderTask.setCarId(carId);
|
if (StrUtil.isNotEmpty(customerReceiveId)) {
|
orderTask.setCustomerReceiveId(customerReceiveId);
|
}
|
if(StrUtil.isNotEmpty(img)){
|
if(StrUtil.isNotEmpty(orderTask.getImg())){
|
String imgO = orderTask.getImg();
|
orderTask.setImg(imgO+","+img);
|
}else{
|
orderTask.setImg(img);
|
}
|
}
|
|
if (!StrUtil.isEmpty(content)) {
|
orderTask.setRemarks(content);
|
} else {
|
if (status == 2) {
|
return ResultUtil.error("请填写异常签收原因");
|
}
|
}
|
iOrderTaskService.saveOrUpdate(orderTask);
|
|
Car car = iCarService.getById(orderTask.getCarId());
|
EventLog eventLog = new EventLog();
|
eventLog.setCarNo(car.getCarNo());
|
eventLog.setRefId(orderId);
|
eventLog.setType(6);//6:配送完成
|
iEventLogService.saveOrUpdate(eventLog);
|
|
saveLog();
|
return ResultUtil.success("添加成功");
|
}
|
|
private void saveLog() {
|
QueryWrapper<OrderLog> wp = new QueryWrapper<>();
|
wp.eq("type", 2);
|
OrderLog one = iOrderLogService.getOne(wp);
|
if (one != null) {
|
one.setNum(one.getNum() + 1);
|
} else {
|
one = new OrderLog();
|
one.setNum(1);
|
one.setType(2);
|
}
|
iOrderLogService.saveOrUpdate(one);
|
}
|
|
@RequestMapping(value = "/getTaKan", method = RequestMethod.GET)
|
@ApiOperation(value = "获取踏勘商户")
|
public Result<List<Customer>> getTaKan() {
|
Area area = getArea(securityUtil.getCurrUser().getId());
|
if (area == null) {
|
return ResultUtil.error("请联系管理员绑定该车辆");
|
}
|
|
QueryWrapper<Customer> wrapper2 = new QueryWrapper<Customer>();
|
wrapper2.eq("area_id", area.getId());
|
wrapper2.eq("kstatus", 0);
|
List<Customer> list = iCustomerService.list(wrapper2);
|
return new ResultUtil<List<Customer>>().setData(list);
|
}
|
|
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
|
@ApiOperation(value = "分页获取")
|
public Result<IPage<OrderTask>> getByPage(PageVo page) {
|
|
IPage<OrderTask> data = iOrderTaskService.page2(PageUtil.initMpPage(page));
|
return new ResultUtil<IPage<OrderTask>>().setData(data);
|
}
|
|
@RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
|
@ApiOperation(value = "编辑或更新数据")
|
public Result<OrderTask> saveOrUpdate(OrderTask orderTask) {
|
|
if (iOrderTaskService.saveOrUpdate(orderTask)) {
|
return new ResultUtil<OrderTask>().setData(orderTask);
|
}
|
return new ResultUtil<OrderTask>().setErrorMsg("操作失败");
|
}
|
|
@RequestMapping(value = "/delByIds", method = RequestMethod.POST)
|
@ApiOperation(value = "批量通过id删除")
|
public Result<Object> delAllByIds(@RequestParam String[] ids) {
|
|
for (String id : ids) {
|
iOrderTaskService.removeById(id);
|
}
|
return ResultUtil.success("批量通过id删除数据成功");
|
}
|
|
@RequestMapping(value = "/insertOrders", method = RequestMethod.GET)
|
@ApiOperation(value = "解析订单")
|
public Result<Object> insertOrders(String sendTime) {
|
if(b){
|
return ResultUtil.error("正在处理");
|
}
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date parse = null;
|
try {
|
parse = sdf.parse(sendTime);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
String formatDate = getFormatDate(sendTime);
|
QueryWrapper<OrderTask> wrapper2 = new QueryWrapper<OrderTask>();
|
wrapper2.eq("order_date", formatDate);
|
List<OrderTask> list = iOrderTaskService.list(wrapper2);
|
if(list.size() > 0){
|
return ResultUtil.error("已存在今日数据");
|
}else {
|
QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>();
|
queryWrapper.between("order_date",DateUtil.beginOfDay(parse),DateUtil.endOfDay(parse));
|
List<OrderTaskOriginal> originals = iOrderTaskOriginalService.list(queryWrapper);
|
if(originals.size()>0){
|
b=true;
|
}
|
int sumNum = 0;
|
for(OrderTaskOriginal original:originals){
|
try {
|
OrderTask orderTask = new OrderTask();
|
orderTask.setCode(original.getCode());
|
Area area = getArea2(original.getAreaName());
|
orderTask.setAreaId(area.getId());
|
orderTask.setCarId(area.getCarId());
|
orderTask.setAreaSectionId(getAreaSection(orderTask.getAreaId(),original.getAreaSection()));
|
Customer customer = getCustomer(original.getCustomerCode(), original.getCustomerName(), original.getCustomerPhone(), original.getLinker(), orderTask.getAreaId(), orderTask.getAreaSectionId());
|
orderTask.setCustomerId(customer.getId());
|
orderTask.setCustomerName(customer.getName());
|
orderTask.setLinker(customer.getLinker());
|
orderTask.setEndDate(original.getPacketDate());
|
//orderTask.setSendDate(original.getSendDate());
|
orderTask.setSendDate(DateUtil.offsetDay(original.getOrderDate(),1));
|
orderTask.setOrderDate(original.getOrderDate());
|
if(original.getSeq()!=null){
|
orderTask.setSeq(original.getSeq());
|
}else{
|
orderTask.setSeq(999);
|
}
|
|
orderTask.setNum(original.getNum());
|
sumNum+=original.getNum();
|
|
iOrderTaskService.saveOrUpdate(orderTask);
|
|
updateCustomerRecive(orderTask.getCustomerId(),original.getLinker(),original.getCustomerPhone());
|
|
QueryWrapper<OrderDetailOriginal> wrapper = new QueryWrapper<>();
|
wrapper.eq("order_id",original.getId());
|
List<OrderDetailOriginal> list1 = iOrderDetailOriginalService.list(wrapper);
|
|
List<OrderDetail> detailList = new ArrayList<>();
|
for(OrderDetailOriginal o:list1){
|
OrderDetail orderDetail = new OrderDetail();
|
orderDetail.setNum(o.getNum());
|
orderDetail.setOrderId(orderTask.getId());
|
orderDetail.setProduct(o.getProductName());
|
detailList.add(orderDetail);
|
}
|
iOrderDetailService.saveBatch(detailList);
|
}catch (Exception e){
|
System.out.println(original.getId()+"报错了");
|
}
|
}
|
|
OrderLog orderLog = new OrderLog();
|
orderLog.setNum(sumNum);
|
orderLog.setType(0);
|
iOrderLogService.save(orderLog);
|
System.out.println("处理订单结束");
|
b=false;
|
|
|
return ResultUtil.success("导入成功");
|
}
|
|
|
}
|
public void updateCustomerRecive(String customerId,String linker,String phone){
|
QueryWrapper<CustomerReceive> wrapper = new QueryWrapper<>();
|
wrapper.eq("customer_id",customerId);
|
wrapper.eq("name",linker);
|
List<CustomerReceive> list = iCustomerReceiveService.list(wrapper);
|
if(list.size()==0){
|
CustomerReceive one = new CustomerReceive();
|
one.setCustomerId(customerId);
|
one.setFstatus(0);
|
one.setStatus(1);
|
one.setName(linker);
|
one.setPhone(phone);
|
iCustomerReceiveService.saveOrUpdate(one);
|
}
|
}
|
|
public Customer getCustomer(String customerCode,String customerName,String customerPhone,String linker,String areaId,String areaSectionId){
|
QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("licence",customerCode);
|
Customer one = iCustomerService.getOne(queryWrapper);
|
if(one==null){
|
Customer customer = new Customer();
|
customer.setLicence(customerCode);
|
customer.setName(customerName);
|
customer.setPhone(customerPhone);
|
customer.setLinker(linker);
|
customer.setAreaId(areaId);
|
customer.setAreaSectionId(areaSectionId);
|
customer.setKstatus(1);
|
iCustomerService.saveOrUpdate(customer);
|
return customer;
|
}
|
one.setAreaId(areaId);
|
one.setAreaSectionId(areaSectionId);
|
iCustomerService.saveOrUpdate(one);
|
return one;
|
}
|
|
public Area getArea2(String name){
|
QueryWrapper<Area> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("name",name);
|
Area one = iAreaService.getOne(queryWrapper);
|
if(one==null){
|
Area area = new Area();
|
area.setName(name);
|
iAreaService.saveOrUpdate(area);
|
return area;
|
}
|
return one;
|
}
|
|
public String getAreaSection(String areaId,String name){
|
QueryWrapper<AreaSection> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("name",name);
|
queryWrapper.eq("area_id",areaId);
|
AreaSection one = iAreaSectionService.getOne(queryWrapper);
|
if(one==null){
|
AreaSection area = new AreaSection();
|
area.setName(name);
|
area.setAreaId(areaId);
|
iAreaSectionService.saveOrUpdate(area);
|
return area.getId();
|
}
|
return one.getId();
|
}
|
|
|
public String dateStringFormat(Date strDate) {
|
if (strDate == null)
|
return "";
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
return sdf.format(strDate)+" 00:00:00";
|
}
|
|
|
public String dateStringFormat2(Date strDate) {
|
if (strDate == null)
|
return "";
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
return sdf.format(strDate)+" 23:59:59";
|
}
|
|
@GetMapping("/outExcel")// 导出的不是中间表
|
@ApiOperation(value = "导出签收统计信息表", notes = "导出签收统计信息表")
|
public void export1(OrderStatusCount orderStatusCount, HttpServletResponse response) throws IOException {
|
List<OrderStatusCount> orderStatus = this.iOrderTaskService.countStatus(orderStatusCount);
|
response.setContentType("application/vnd.ms-excel");
|
response.setCharacterEncoding("utf-8");
|
String fileName = URLEncoder.encode("签收数量统计报表", "UTF-8");
|
String fileName2 = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
|
// response.setHeader("Content-dispostion", "attachment;filename="+fileName+".xls");
|
response.setHeader("Content-disposition", "attachment;filename=" + fileName2 + ".xlsx");
|
EasyExcel.write(response.getOutputStream(), OrderStatusCount.class).
|
sheet(0).doWrite(orderStatus);
|
}
|
|
@GetMapping(value = "/count")
|
public Result<List<OrderStatusCount>> getAll(OrderStatusCount orderStatusCount) {
|
List<OrderStatusCount> data = this.iOrderTaskService.countStatus(orderStatusCount);
|
;
|
return new ResultUtil<List<OrderStatusCount>>().setData(data);
|
}
|
@Autowired
|
private ISignCountService iSignCountService;
|
|
@RequestMapping(value = "/getStatusCounts", method = RequestMethod.GET)
|
@ApiOperation(value = "获取今日任务统计信息")
|
public Result<Object> getStatusCounts() {
|
System.err.println("执行存储数据定时任务时间: " + LocalDateTime.now());
|
OrderStatusCount orderStatusCount = new OrderStatusCount();
|
List<OrderStatusCount> StatusCounts = new ArrayList<>();
|
List<OrderStatusCount> temps = iOrderTaskService.countStatus(orderStatusCount);
|
for (OrderStatusCount statusCount : temps) {
|
if("丰南02车".equals(statusCount.getLine())){
|
StatusCounts.add(statusCount);
|
}
|
}
|
if (StatusCounts != null && StatusCounts.size() != 0) {
|
List<SignCount> list = iSignCountService.list();
|
for (OrderStatusCount statusCount : StatusCounts) {
|
SignCount signCount = new SignCount();
|
boolean flag = false;
|
for (SignCount signCountS : list) {
|
if (signCountS.getTaskId().equals(statusCount.getId())) {
|
signCount.setId(signCountS.getId());
|
signCount.setCarName(statusCount.getCarName());
|
signCount.setAmount(statusCount.getAmount());
|
signCount.setSignCount(statusCount.getSignCount());
|
signCount.setAbnormalSign(statusCount.getAbnormalSign());
|
signCount.setBatch(statusCount.getBatch());
|
signCount.setLine(statusCount.getLine());
|
signCount.setNotSignCount(statusCount.getNotSignCount());
|
String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate());
|
signCount.setSendDate(SendDate);
|
signCount.setProportion(statusCount.getProportion());
|
signCount.setUserName(statusCount.getUserName());
|
signCount.setTaskId(statusCount.getId());
|
iSignCountService.saveOrUpdate(signCount);
|
System.out.println("更新成功");
|
flag = true;
|
break;
|
}
|
}
|
if (flag) {
|
continue;
|
}
|
signCount.setCarName(statusCount.getCarName());
|
signCount.setAmount(statusCount.getAmount());
|
signCount.setSignCount(statusCount.getSignCount());
|
signCount.setAbnormalSign(statusCount.getAbnormalSign());
|
signCount.setBatch(statusCount.getBatch());
|
signCount.setLine(statusCount.getLine());
|
signCount.setNotSignCount(statusCount.getNotSignCount());
|
|
String SendDate=getBeforeOneDayByStringDate(statusCount.getSendDate());
|
signCount.setSendDate(SendDate);
|
signCount.setProportion(statusCount.getProportion());
|
signCount.setUserName(statusCount.getUserName());
|
signCount.setTaskId(statusCount.getId());
|
if (iSignCountService.saveOrUpdate(signCount)) {
|
System.out.println("定时存储成功");
|
}
|
}
|
}
|
return null;
|
}
|
|
private String getBeforeOneDayByStringDate(String dateString) {
|
String times = "";
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
Date d;
|
try {
|
d = format.parse(dateString);
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(d);
|
calendar.add(Calendar.DAY_OF_MONTH, -1); // 在当前日基础上-1
|
String format1 = format.format(calendar.getTime());
|
times = format1;
|
//获取String类型的时间
|
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
return times;
|
}
|
}
|