From 5c12c5a4490898f20259e9de83767c4dadff10ba Mon Sep 17 00:00:00 2001 From: wjli <591616088@qq.com> Date: 星期二, 16 五月 2023 15:42:05 +0800 Subject: [PATCH] 1.根据区域进行模糊查询 --- xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java | 397 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 393 insertions(+), 4 deletions(-) diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java index 9d2c8e4..3b5ff7f 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java @@ -11,6 +11,7 @@ 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; @@ -19,17 +20,18 @@ 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.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; /** * @author whj @@ -74,12 +76,46 @@ @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){ @@ -111,6 +147,20 @@ 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(); + } } } @@ -159,6 +209,49 @@ 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) { @@ -183,6 +276,86 @@ 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) { @@ -203,6 +376,53 @@ 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(); @@ -398,6 +618,175 @@ return ResultUtil.success("鎵归噺閫氳繃id鍒犻櫎鏁版嵁鎴愬姛"); } + @RequestMapping(value = "/insertOrders", method = RequestMethod.GET) + @ApiOperation(value = "瑙f瀽璁㈠崟") + public Result<Object> insertOrders(String sendTime) { + if(b){ + return ResultUtil.error("姝e湪澶勭悊"); + } + 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 { -- Gitblit v1.9.1