| | |
| | | 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 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; |
| | |
| | | @Autowired |
| | | private ICustomerReceiveService iCustomerReceiveService; |
| | | |
| | | boolean b = false; |
| | | |
| | | |
| | | @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
| | | @ApiOperation(value = "通过id获取") |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | 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(); |
| | |
| | | @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); |
| | |
| | | return ResultUtil.error("已存在今日数据"); |
| | | }else { |
| | | QueryWrapper<OrderTaskOriginal> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.between("order_date",dateStringFormat(getDate(sendTime)),dateStringFormat2(getDate(sendTime))); |
| | | 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 { |
| | |
| | | } |
| | | iOrderDetailService.saveBatch(detailList); |
| | | }catch (Exception e){ |
| | | System.out.println("报错了"); |
| | | System.out.println(original.getId()+"报错了"); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |