kongdeqiang
2023-03-27 172c5525cbdba1c3b32b47cb60bd35bed707101c
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java
@@ -26,10 +26,9 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
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 +73,44 @@
    @Autowired
    private IOrderLogService iOrderLogService;
    @Autowired
    private IOrderTaskOriginalService iOrderTaskOriginalService;
    @Autowired
    private IOrderDetailOriginalService iOrderDetailOriginalService;
    @Autowired
    private ICustomerReceiveService iCustomerReceiveService;
    @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 +142,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();
            }
        }
    }
@@ -398,6 +443,162 @@
        return ResultUtil.success("批量通过id删除数据成功");
    }
    @RequestMapping(value = "/insertOrders", method = RequestMethod.GET)
    @ApiOperation(value = "解析订单")
    public Result<Object> insertOrders(String sendTime) {
        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",dateStringFormat(getDate(sendTime)),dateStringFormat2(getDate(sendTime)));
            List<OrderTaskOriginal> originals = iOrderTaskOriginalService.list(queryWrapper);
            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("报错了");
                }
            }
            OrderLog orderLog = new OrderLog();
            orderLog.setNum(sumNum);
            orderLog.setType(0);
            iOrderLogService.save(orderLog);
            System.out.println("处理订单结束");
            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 {