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.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @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; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result get(@PathVariable String id) { OrderTask orderTask = iOrderTaskService.getById(id); return new ResultUtil().setData(orderTask); } // public Area getArea(String userId){ // QueryWrapper wrapper = new QueryWrapper(); // wrapper.eq("user_id",userId); // Area area = iAreaService.getOne(wrapper); // if(area==null){ // QueryWrapper carQueryWrapper = new QueryWrapper(); // carQueryWrapper.eq("user_id",userId); // Car one = iCarService.getOne(carQueryWrapper); // if(one==null){ // return null; // } // if(StrUtil.isEmpty(one.getFollowUserId())){ // return null; // } // // QueryWrapper wrapper3 = new QueryWrapper(); // 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"); } } public Area getArea(String userId){ QueryWrapper carQueryWrapper = new QueryWrapper(); carQueryWrapper.eq("user_id",userId).or().eq("follow_user_id",userId); Car one = iCarService.getOne(carQueryWrapper); if(one==null){ return null; }else{ QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("car_id",one.getId()); Area area = iAreaService.getOne(wrapper); return area; } } @RequestMapping(value = "/getByUserId", method = RequestMethod.GET) @ApiOperation(value = "获取今日任务统计信息") public Result getAll(String sendTime) { Area area = getArea(securityUtil.getCurrUser().getId()); if(area==null){ return ResultUtil.error("请联系管理员绑定该车辆"); } QueryWrapper wrapper2 = new QueryWrapper(); String format = getFormatDate(sendTime); wrapper2.eq("area_id",area.getId()); wrapper2.eq("send_date",format); List list = iOrderTaskService.list(wrapper2); int sum = iOrderTaskService.sum(area.getId(),format); Map map = new HashMap(); map.put("count",list.size()); map.put("sum",sum); map.put("name",""); if(list.size()>0){ OrderTask orderTask = list.get(0); String areaSectionId = orderTask.getAreaSectionId(); AreaSection a = iAreaSectionService.getById(areaSectionId); Area area2 = iAreaService.getById(orderTask.getAreaId()); map.put("name",area2.getName()+a.getName()); list.clear(); } return new ResultUtil().setData(map); } @RequestMapping(value = "/getTodayOrder", method = RequestMethod.GET) @ApiOperation(value = "获取今日配送任务详情列表") public Result> getTodayOrder(String sendTime) { Area area = getArea(securityUtil.getCurrUser().getId()); if(area==null){ return ResultUtil.error("请联系管理员绑定该车辆"); } QueryWrapper wrapper2 = new QueryWrapper(); 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 list = iOrderTaskService.list2(wrapper2); return new ResultUtil>().setData(list); } @RequestMapping(value = "/getTodayOrderDetail", method = RequestMethod.GET) @ApiOperation(value = "获取当前配送商户详情") public Result 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 wrapper2 = new QueryWrapper(); String format = getFormatDate(sendTime); wrapper2.eq("area_id",area.getId()); wrapper2.eq("send_date",format); wrapper2.eq("status",0); wrapper2.orderByAsc("seq"); List list = iOrderTaskService.list(wrapper2); if(list.size()>0){ orderTask = list.get(0); }else{ return new ResultUtil().setData(null); } } orderTask.setCustomer(iCustomerService.getById(orderTask.getCustomerId())); QueryWrapper wrapper3 = new QueryWrapper(); wrapper3.eq("order_id",orderTask.getId()); orderTask.setOrderDetails(iOrderDetailService.list(wrapper3)); return new ResultUtil().setData(orderTask); } @RequestMapping(value = "/getTodayOtherInfo", method = RequestMethod.GET) @ApiOperation(value = "获取其它信息") public Result getTodayOtherInfo(String sendTime) { Area area = getArea(securityUtil.getCurrUser().getId()); if(area==null){ return ResultUtil.error("请联系管理员绑定该车辆"); } QueryWrapper wrapper2 = new QueryWrapper(); 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 wrapper4 = new QueryWrapper(); wrapper4.eq("area_id",area.getId()); wrapper4.eq("send_date",format); int count2 = iOrderTaskService.count(wrapper4); Map map = new HashMap<>(); map.put("num",count+"/"+count2); QueryWrapper wrapper5 = new QueryWrapper(); 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 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 wrapper6 = new QueryWrapper(); 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().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); return ResultUtil.success("添加成功"); } @RequestMapping(value = "/getTaKan", method = RequestMethod.GET) @ApiOperation(value = "获取踏勘商户") public Result> getTaKan() { Area area = getArea(securityUtil.getCurrUser().getId()); if(area==null){ return ResultUtil.error("请联系管理员绑定该车辆"); } QueryWrapper wrapper2 = new QueryWrapper(); wrapper2.eq("area_id",area.getId()); wrapper2.eq("kstatus",0); List list = iCustomerService.list(wrapper2); return new ResultUtil>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result> getByPage(PageVo page) { IPage data = iOrderTaskService.page2(PageUtil.initMpPage(page)); return new ResultUtil>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result saveOrUpdate(OrderTask orderTask) { if (iOrderTaskService.saveOrUpdate(orderTask)) { return new ResultUtil().setData(orderTask); } return new ResultUtil().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iOrderTaskService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } }