first commit

This commit is contained in:
2025-02-20 15:14:38 +08:00
commit 70e3764011
1113 changed files with 107789 additions and 0 deletions
@@ -0,0 +1,183 @@
package lingtao.net.service;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import lingtao.net.bean.FinanceDifference;
import lingtao.net.bean.Msg;
import lingtao.net.bean.SysUser;
import lingtao.net.dao.FinanceDifferenceMapper;
import lingtao.net.util.ExcelUtils;
@Service
public class FinanceDifferenceService {
@Autowired
private FinanceDifferenceMapper differenceMapper;
public List<FinanceDifference> get(FinanceDifference difference) {
return differenceMapper.get(difference);
}
public Msg ajaxUploadExcel(MultipartFile file) throws Exception {
if (file.isEmpty()) {
throw new Exception("文件不存在!");
}
SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal();
InputStream in = null;
List<List<Object>> listob = null;
List<FinanceDifference> list = new ArrayList<FinanceDifference>(1000);
try {
in = file.getInputStream();
listob = new ExcelUtils().getBankListByExcel(in, file.getOriginalFilename());
} catch (IOException e) {
e.printStackTrace();
}
String openOrderNumber = "";
String filename = file.getOriginalFilename();
System.out.println(filename);
for (int i = 0; i < listob.size(); i++) {
synchronized (this) {
FinanceDifference vo = new FinanceDifference();
List<Object> lo = listob.get(i);
if (lo.size() == 0 || lo.size() == 1 || lo.get(4) == "") {
System.out.println("++++++++++++++");
continue;
}
String orderNumber = String.valueOf(lo.get(0)).trim();
String shopname = String.valueOf(lo.get(1)).trim();
String wangwang = String.valueOf(lo.get(2)).trim();
String payTime = String.valueOf(lo.get(3)).trim();
String price = String.valueOf(lo.get(4)).trim();
String remark = String.valueOf(lo.get(5)).trim();
String taobaoStatus = String.valueOf(lo.get(6)).trim();
SimpleDateFormat formatter = null;
if (payTime.contains("-")) {
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
} else if (payTime.contains("/")) {
formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
}
Date pay_time = formatter.parse(payTime);// 把字符串转为日期格式
vo.setOrderNumber(orderNumber);
vo.setShopname(shopname);
vo.setWangwang(wangwang);
vo.setPayTime(pay_time);
vo.setPrice(price);
vo.setRemark(remark);
vo.setTaobaoStatus(taobaoStatus);
try {
openOrderNumber = cutOrderNumber(remark);
} catch (Exception e) {
System.out.println(remark);
}
// openOrderNumber = remark.replaceAll("[^(0-9)]", "");
vo.setOpenOrderNumber(openOrderNumber);
vo.setFilename(filename);
vo.setCreator(user.getRealname());
list.add(vo);
}
}
if (list.size() > 0) {
differenceMapper.insertForeach(list);
}
in.close();
return Msg.success();
}
private String cutOrderNumber(String remark) {
// 获取字符串中的数字
// 这个15是指连续数字的最少个数
Pattern p = Pattern.compile("\\d{15,}");
Matcher m = p.matcher(remark);
String openOrder = "";
while (m.find()) {
openOrder = m.group();
}
if (remark.contains("S_")) {
if (remark.contains("C")) {
return "S_C1_" + openOrder;
} else {
return "S_" + openOrder;
}
}
return openOrder;
}
public List<String> getAllFilename(String creator) {
return differenceMapper.getAllFilename(creator);
}
@SuppressWarnings("resource")
public void excel(HttpServletResponse response, FinanceDifference difference) throws Exception {
response.setCharacterEncoding("UTF-8");
List<FinanceDifference> differencesList = new ArrayList<FinanceDifference>();
SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal();
difference.setCreator(user.getRealname());
differencesList = get(difference);
// 创建excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 创建sheet页
HSSFSheet sheet = wb.createSheet("总表");
String filename = "";
// 创建标题行
HSSFRow titleRow = sheet.createRow(0);
titleRow.createCell(0).setCellValue("订单号");
titleRow.createCell(1).setCellValue("店铺");
titleRow.createCell(2).setCellValue("旺旺");
titleRow.createCell(3).setCellValue("付款时间");
titleRow.createCell(4).setCellValue("金额");
titleRow.createCell(5).setCellValue("备注");
titleRow.createCell(6).setCellValue("淘宝状态");
titleRow.createCell(7).setCellValue("拆分订单");
titleRow.createCell(8).setCellValue("导入人");
titleRow.createCell(9).setCellValue("导入日期");
// 遍历将数据放到excel列中
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
for (FinanceDifference differences : differencesList) {
filename = difference.getFilename();
HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);
dataRow.createCell(0).setCellValue(differences.getOrderNumber());
dataRow.createCell(1).setCellValue(differences.getShopname());
dataRow.createCell(3).setCellValue("");
if (differences.getPayTime() != null) {
dataRow.createCell(3).setCellValue(formatter.format(differences.getPayTime()));
}
dataRow.createCell(2).setCellValue(differences.getWangwang());
dataRow.createCell(4).setCellValue(differences.getPrice());
dataRow.createCell(5).setCellValue(differences.getRemark());
dataRow.createCell(6).setCellValue(differences.getTaobaoStatus());
dataRow.createCell(7).setCellValue(differences.getOpenOrderNumber());
dataRow.createCell(8).setCellValue(differences.getCreator());
dataRow.createCell(9).setCellValue(formatter.format(differences.getCreateDate()));
}
// 设置下载时客户端Excel的名称
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition",
"attachment;filename=" + new String(filename.getBytes(), "iso-8859-1"));// + ".xls"
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
}
}