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