|
|
@ -2,10 +2,14 @@ package com.glxp.api.service.collect;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
|
|
|
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
|
|
|
|
|
|
import com.alibaba.excel.event.AnalysisEventListener;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
@ -39,6 +43,7 @@ import com.glxp.api.http.sync.SpGetHttpClient;
|
|
|
|
import com.glxp.api.req.basic.FilterUdiRelRequest;
|
|
|
|
import com.glxp.api.req.basic.FilterUdiRelRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
|
|
|
|
|
|
import com.glxp.api.req.collect.IoCollectOrderUploadVo;
|
|
|
|
import com.glxp.api.req.collect.PostCollectOrderRequest;
|
|
|
|
import com.glxp.api.req.collect.PostCollectOrderRequest;
|
|
|
|
import com.glxp.api.req.inout.*;
|
|
|
|
import com.glxp.api.req.inout.*;
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
@ -56,6 +61,7 @@ import com.glxp.api.service.auth.CustomerService;
|
|
|
|
import com.glxp.api.service.auth.DeptService;
|
|
|
|
import com.glxp.api.service.auth.DeptService;
|
|
|
|
import com.glxp.api.service.auth.SysWorkplaceService;
|
|
|
|
import com.glxp.api.service.auth.SysWorkplaceService;
|
|
|
|
import com.glxp.api.service.basic.*;
|
|
|
|
import com.glxp.api.service.basic.*;
|
|
|
|
|
|
|
|
import com.glxp.api.service.collect.down.ThrOrderDownload;
|
|
|
|
import com.glxp.api.service.inout.*;
|
|
|
|
import com.glxp.api.service.inout.*;
|
|
|
|
import com.glxp.api.service.inout.impl.IoCodeService;
|
|
|
|
import com.glxp.api.service.inout.impl.IoCodeService;
|
|
|
|
import com.glxp.api.service.sync.HeartService;
|
|
|
|
import com.glxp.api.service.sync.HeartService;
|
|
|
@ -69,8 +75,11 @@ import org.springframework.context.annotation.Lazy;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
@ -132,6 +141,10 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
SpGetHttpClient spGetHttpClient;
|
|
|
|
SpGetHttpClient spGetHttpClient;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
DownloadFactory downloadFactory;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
ThrOrderDownload thrOrderDownload;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IoCollectOrder getByBillNo(String billNo) {
|
|
|
|
public IoCollectOrder getByBillNo(String billNo) {
|
|
|
@ -1087,4 +1100,67 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void xlsxUpload(MultipartFile file) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
String fileName = file.getOriginalFilename();
|
|
|
|
|
|
|
|
String suffix = FileUtil.getSuffix(fileName);
|
|
|
|
|
|
|
|
if (!"xlsx".equals(suffix)) {
|
|
|
|
|
|
|
|
throw new JsonException("仅支持.xlsx,文件类型错误" + suffix);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (file.getSize() > 5 * 1024 * 1024) {
|
|
|
|
|
|
|
|
throw new JsonException("上传文件超过5M");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
throw new JsonException("上传失败:" + e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<IoCollectOrder> list = getList(file);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
|
|
|
|
|
throw new JsonException("文件数据为空");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
|
|
|
|
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
collectOrderRequest.setBusType("YPCF002");
|
|
|
|
|
|
|
|
collectOrderRequest.setCreateUser(String.valueOf(customerService.getUserId()));
|
|
|
|
|
|
|
|
collectOrderRequest.setWorkPlaceCode(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
thrOrderDownload.importThrOrder(list, collectOrderRequest);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<IoCollectOrder> getList(MultipartFile file) {
|
|
|
|
|
|
|
|
List<IoCollectOrder> entities = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try (InputStream inputStream = file.getInputStream()) {
|
|
|
|
|
|
|
|
EasyExcel.read(inputStream, IoCollectOrderUploadVo.class, new AnalysisEventListener<IoCollectOrderUploadVo>() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void invoke(IoCollectOrderUploadVo data, AnalysisContext context) {
|
|
|
|
|
|
|
|
// 每次读取到一行数据,都会调用这个方法
|
|
|
|
|
|
|
|
IoCollectOrder ioCollectOrder = new IoCollectOrder();
|
|
|
|
|
|
|
|
BeanUtils.copyProperties(data,ioCollectOrder);
|
|
|
|
|
|
|
|
entities.add(ioCollectOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void doAfterAllAnalysed(AnalysisContext context) {
|
|
|
|
|
|
|
|
// 所有数据解析完成后的操作,可以在这里进行后续处理
|
|
|
|
|
|
|
|
// 比如:保存数据到数据库
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 可以选择性地覆盖其他方法,比如处理表头、异常等
|
|
|
|
|
|
|
|
}).sheet().doRead();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return entities;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|