kongdeqiang
2023-03-17 33b45f4ce71e89b9dd5d01d37c79628c0a3fbb23
增加功能
6个文件已修改
268 ■■■■ 已修改文件
xboot-admin/test-output/test-report.html 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-core/src/main/java/cn/exrick/xboot/core/common/aop/SystemLogAspect.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-core/src/main/java/cn/exrick/xboot/core/config/security/jwt/AuthenticationSuccessHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/OrderTaskController.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/TaskController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xboot-admin/test-output/test-report.html
@@ -35,7 +35,7 @@
<a href="#"><span class="badge badge-primary">XBoot</span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">10月 27, 2020 11:47:26</span></a>
<a href="#"><span class="badge badge-primary">三月 17, 2023 17:20:08</span></a>
</li>
</ul>
</div>
@@ -78,22 +78,23 @@
          author=""
          tag=""
          device="">
          <div class="status-avatar pass-bg">
            <i class="fa fa-check text-white"></i>
          </div>
          <div class="test-detail">
            <span class="meta text-white badge badge-sm"></span>
            <p class="name">passTest</p>
            <p class="text-sm">
              <span>11:47:26 上午</span> / <span>00:00:007</span>
              <span class="badge pass-bg log float-right">Pass</span>
            </p>
            <p class="text-sm"><span>17:20:09 下午</span> / <span>0.014 secs</span></p>
          </div>
          <div class="test-contents d-none">
<div class="detail-head">
<div class="p-v-10">
<div class="info">
<div class='float-right'><span class='badge badge-default'>#test-id=1</span></div>
<h5 class="test-status text-pass">passTest</h5>
<span class='badge badge-success'>10.27.2020 11:47:26</span>
<span class='badge badge-danger'>10.27.2020 11:47:26</span>
<span class='badge badge-default'>00:00:007</span>
&middot; <span class='uri-anchor badge badge-default'>#test-id=1</span>
<span class='badge badge-success'>03.17.2023 17:20:09</span>
<span class='badge badge-danger'>03.17.2023 17:20:09</span>
<span class='badge badge-default'>0.014 secs</span>
</div>
<div class="m-t-10 m-l-5"></div>
</div>
@@ -103,7 +104,7 @@
  <tbody>
      <tr class="event-row">
        <td><span class="badge log pass-bg">Pass</span></td>
        <td>上午11:47:26</td>
        <td>17:20:09</td>
        <td>
          Test passed
        </td>
@@ -127,13 +128,13 @@
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>10月 27, 2020 11:47:26</h3>
<h3>三月 17, 2023 17:20:08</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>10月 27, 2020 11:47:26</h3>
<h3>三月 17, 2023 17:20:09</h3>
</div></div>
</div>
<div class="col-md-3">
@@ -194,18 +195,6 @@
</div>
</div>
</div>
<div class="row"><div class="col-md-12">
<div class="card"><div class="card-header"><p>Timeline</p></div>
<div class="card-body pt-0"><div>
<canvas id="timeline" height="120"></canvas>
</div></div>
</div>
</div></div>
<script>
var timeline = {
"passTest":0.007
};
</script>
<div class="row">
</div>
</div>
xboot-core/src/main/java/cn/exrick/xboot/core/common/aop/SystemLogAspect.java
@@ -123,7 +123,7 @@
                esLog.setRequestType(request.getMethod());
                // 请求参数
                esLog.setMapToParams(logParams);
                ipInfoUtil.getInfo(request, ObjectUtil.mapToStringAll(request.getParameterMap()));
               // ipInfoUtil.getInfo(request, ObjectUtil.mapToStringAll(request.getParameterMap()));
                // 请求IP
                esLog.setIp(ipInfoUtil.getIpAddr(request));
                // IP地址
@@ -154,7 +154,7 @@
                log.setRequestType(request.getMethod());
                // 请求参数
                log.setMapToParams(logParams);
                ipInfoUtil.getInfo(request, ObjectUtil.mapToStringAll(request.getParameterMap()));
                //ipInfoUtil.getInfo(request, ObjectUtil.mapToStringAll(request.getParameterMap()));
                // 请求IP
                log.setIp(ipInfoUtil.getIpAddr(request));
                // IP地址
xboot-core/src/main/java/cn/exrick/xboot/core/config/security/jwt/AuthenticationSuccessHandler.java
@@ -66,7 +66,7 @@
        for (GrantedAuthority g : authorities) {
            list.add(g.getAuthority());
        }
        ipInfoUtil.getInfo(request, "");
        //ipInfoUtil.getInfo(request, "");
        // 登陆成功生成token
        String token;
        if (tokenProperties.getRedis()) {
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,34 @@
    @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);
        return new ResultUtil<IPage<OrderTask>>().setData(data);
    }
//    public Area getArea(String userId){
@@ -111,6 +132,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 +433,163 @@
        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 {
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/wx/TaskController.java
@@ -1,33 +1,28 @@
package cn.exrick.xboot.your.controller.wx;
import cn.exrick.xboot.core.common.utils.ObjectUtil;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.your.entity.OrderStatusCount;
import cn.exrick.xboot.your.entity.SignCount;
import cn.exrick.xboot.your.entity.Suggest;
import cn.exrick.xboot.your.service.IOrderTaskService;
import cn.exrick.xboot.your.service.ISignCountService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.rmi.CORBA.Util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Component
@Configuration      //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling
//@Configuration      //1.主要用于标记配置类,兼备Component的效果。
//@EnableScheduling
@AllArgsConstructor
public class TaskController {
    private IOrderTaskService iOrderTaskService;
@@ -37,7 +32,7 @@
//    @Scheduled(cron = "0/5 * * * * ?")
//    @Scheduled(cron = "0 */1 * * * ?")
//    @Scheduled(cron = "0 0 2 * * ?")//每天凌晨两点执行一次
    @Scheduled(cron = " 0 0 */1 * * ?")//每小时执行一次
    //@Scheduled(cron = " 0 30 2 * * ?")//每天2.30执行一次
    //或直接指定时间间隔,例如:5秒
    //@Scheduled(fixedRate=5000)
    private void configureTasks() {
@@ -111,4 +106,4 @@
        }
        return times;
    }
}
}
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/schedulings/OrderSynScheduleImpl.java
@@ -1,6 +1,7 @@
package cn.exrick.xboot.your.schedulings;
import cn.exrick.xboot.your.entity.*;
import cn.exrick.xboot.your.service.*;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@@ -42,7 +43,7 @@
    @Autowired
    private IOrderLogService iOrderLogService;
    @Scheduled(cron="0 30 23 * * ?")//每晚凌晨1点执行
    @Scheduled(cron="0 40 15 * * ?")//每晚凌晨1点执行
    //@Scheduled(cron="0 11 15 * * ?")//每晚凌晨1点执行
    public void execute(){
        System.out.println("开始处理订单");
@@ -64,7 +65,8 @@
                orderTask.setCustomerName(customer.getName());
                orderTask.setLinker(customer.getLinker());
                orderTask.setEndDate(original.getPacketDate());
                orderTask.setSendDate(original.getSendDate());
                //orderTask.setSendDate(original.getSendDate());
                orderTask.setSendDate(DateUtil.offsetDay(original.getOrderDate(),1));
                orderTask.setOrderDate(original.getOrderDate());
                if(original.getSeq()!=null){
                    orderTask.setSeq(original.getSeq());