|
|
@@ -322,66 +322,95 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
//创建一个对象,用来存储数据
|
|
|
List<TemporaryReceivablesBo> list=new ArrayList<>();
|
|
|
if(workbook != null){
|
|
|
- for(int sheetNum = 0;sheetNum < workbook.getNumberOfSheets();sheetNum++){
|
|
|
//获得当前sheet工作表
|
|
|
- Sheet sheet = workbook.getSheetAt(sheetNum);
|
|
|
- if(sheet == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获得当前sheet的开始行
|
|
|
- int firstRowNum = sheet.getFirstRowNum();
|
|
|
- //获得当前sheet的结束行
|
|
|
- int lastRowNum = sheet.getLastRowNum();
|
|
|
- //循环除了第2行的所有行
|
|
|
- for(int rowNum = firstRowNum+2;rowNum <= lastRowNum;rowNum++){
|
|
|
- //获得当前行
|
|
|
- Row row = sheet.getRow(rowNum);
|
|
|
- if(row == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
- //获得当前行的开始列
|
|
|
- int firstCellNum = row.getFirstCellNum();
|
|
|
- //获得当前行的列数
|
|
|
- int lastCellNum = row.getLastCellNum();
|
|
|
- //循环当前行 cellNum = (firstCellNum+1) 则是除开第一例
|
|
|
- TemporaryReceivablesBo trb=new TemporaryReceivablesBo();
|
|
|
- for(int cellNum = (firstCellNum); cellNum < lastCellNum;cellNum++){
|
|
|
- Cell cell = row.getCell(cellNum);
|
|
|
- try {
|
|
|
- switch (cellNum) {
|
|
|
- case 0:
|
|
|
- trb.setFinancialPayNo(getCellValue(cell));
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- trb.setOrderNo(getCellValue(cell));
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- trb.setCorporateName(getCellValue(cell));
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- trb.setAmount(new BigDecimal((null==getCellValue(cell)?"0":getCellValue(cell))));
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- trb.setReceivablesTime(DateUtils.StringToDate(getCellValue(cell), AFTConstants.YYYYMMDD));
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- trb.setRemarks(getCellValue(cell));
|
|
|
- break;
|
|
|
- }
|
|
|
- } catch (ParseException e) {
|
|
|
- throw new BusinessException(new Error("表格第"+(rowNum+1)+"行输入内容不正确。"));
|
|
|
- }
|
|
|
- }
|
|
|
- trb.setAid(TokenManager.getAdminId());
|
|
|
- trb.setCreateTime(new Date());
|
|
|
- trb.setStatus(0);
|
|
|
- list.add(trb);
|
|
|
- }
|
|
|
- }
|
|
|
+ Sheet sheet = workbook.getSheetAt(0);
|
|
|
+ if(sheet == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //获得当前sheet的开始行
|
|
|
+ int firstRowNum = sheet.getFirstRowNum();
|
|
|
+ //获得当前sheet的结束行
|
|
|
+ int lastRowNum = sheet.getLastRowNum();
|
|
|
+ //处理空白行
|
|
|
+ for (int i = firstRowNum; i <= sheet.getLastRowNum();i++) {
|
|
|
+ Row r = sheet.getRow(i);
|
|
|
+ if(r == null){
|
|
|
+ // 如果是空行(即没有任何数据、格式),直接把它以下的数据往上移动
|
|
|
+ sheet.shiftRows(i+1, sheet.getLastRowNum(),-1);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ boolean flag = false;
|
|
|
+ for(Cell c:r){
|
|
|
+ if(c.getCellType() != Cell.CELL_TYPE_BLANK){
|
|
|
+ flag = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+ i++;
|
|
|
+ continue;
|
|
|
+ } else{//如果是空白行(即可能没有数据,但是有一定格式)
|
|
|
+ if(i == sheet.getLastRowNum())//如果到了最后一行,直接将那一行remove掉
|
|
|
+ sheet.removeRow(r);
|
|
|
+ else//如果还没到最后一行,则数据往上移一行
|
|
|
+ sheet.shiftRows(i+1, sheet.getLastRowNum(),-1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lastRowNum=sheet.getLastRowNum();
|
|
|
+ if (lastRowNum<2) {
|
|
|
+ throw new BusinessException(new Error("未找到正确的参数。"));
|
|
|
+ }
|
|
|
+ //循环除了第2行的所有行
|
|
|
+ for(int rowNum = firstRowNum+2;rowNum <= lastRowNum;rowNum++){
|
|
|
+ //获得当前行
|
|
|
+ Row row = sheet.getRow(rowNum);
|
|
|
+ if(row == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //获得当前行的开始列
|
|
|
+ int firstCellNum = row.getFirstCellNum();
|
|
|
+ //获得当前行的列数
|
|
|
+ int lastCellNum = row.getLastCellNum();
|
|
|
+ //循环当前行 cellNum = (firstCellNum+1) 则是除开第一例
|
|
|
+ TemporaryReceivablesBo trb=new TemporaryReceivablesBo();
|
|
|
+ for(int cellNum = (firstCellNum); cellNum < lastCellNum;cellNum++){
|
|
|
+ Cell cell = row.getCell(cellNum);
|
|
|
+ try {
|
|
|
+ switch (cellNum) {
|
|
|
+ case 0:
|
|
|
+ trb.setFinancialPayNo(getCellValue(cell));
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ trb.setOrderNo(getCellValue(cell));
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ trb.setCorporateName(getCellValue(cell));
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ trb.setAmount(new BigDecimal((null==getCellValue(cell)?"0":getCellValue(cell))));
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ trb.setReceivablesTime(DateUtils.StringToDate(getCellValue(cell), AFTConstants.YYYYMMDD));
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ trb.setRemarks(getCellValue(cell));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new BusinessException(new Error("表格第"+(rowNum+1)+"行输入内容不正确。"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ trb.setAid(TokenManager.getAdminId());
|
|
|
+ trb.setCreateTime(new Date());
|
|
|
+ trb.setStatus(0);
|
|
|
+ list.add(trb);
|
|
|
+ }
|
|
|
+ }
|
|
|
temporaryReceivablesMapper.insertBatch(list);
|
|
|
//计算重复的单
|
|
|
temporaryReceivablesMapper.updateRepeatOrderNo(TokenManager.getAdminId());
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public static Workbook getWorkBook(MultipartFile file) {
|
|
|
@@ -445,7 +474,8 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
order.setOrderStatus(2);//营销管理员审核通过
|
|
|
if(pageSize==null||pageSize<0)pageSize=9999;
|
|
|
if(pageNo==null||pageNo<0)pageNo=1;
|
|
|
- List<OrderListBo> list=(List<OrderListBo>) fundManageOrderService.financeList(order, pageNo, pageSize).getList();
|
|
|
+ Pagination<OrderListBo> p=(Pagination<OrderListBo>) fundManageOrderService.financeList(order, pageNo, pageSize).get("pagination");
|
|
|
+ List<OrderListBo> list=(List<OrderListBo>)p.getList() ;
|
|
|
if(list.isEmpty())throw new BusinessException(new Error("数据是空的。"));
|
|
|
try {
|
|
|
//设计表头
|
|
|
@@ -478,11 +508,11 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
if(pageSize==null||pageSize<0)pageSize=9999;
|
|
|
if(pageNo==null||pageNo<0)pageNo=1;
|
|
|
List<TOrderInvoiceBo>list=(List<TOrderInvoiceBo>) orderInvoiceService.salesmanOrderInvoiceList( orderNo, pageNo,pageSize).getList();
|
|
|
- if(list.isEmpty())throw new BusinessException(new Error("数据是空的。"));
|
|
|
+// if(list.isEmpty())throw new BusinessException(new Error("数据是空的。"));
|
|
|
try {
|
|
|
//设计表头
|
|
|
String[] comment = {"编号","订单编号","开票金额(万元)","申请时间","开票状态"};
|
|
|
- String fileName = "开票记录列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
+ String fileName = orderNo+"开票记录列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
//type 0 收款 1开票 2流水
|
|
|
XSSFWorkbook wb =exportTemplateInfoS(comment,"开票记录",list,1);
|
|
|
//根据列表编写文档
|
|
|
@@ -511,11 +541,12 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
if(pageSize==null||pageSize<0)pageSize=9999;
|
|
|
if(pageNo==null||pageNo<0)pageNo=1;
|
|
|
TOrderBillNew billNew=new TOrderBillNew();
|
|
|
+ billNew.setOrderNo(orderNo);
|
|
|
List<TOrderBillNew>list=(List<TOrderBillNew>) orderBillService.myBillList(billNew, pageNo, pageSize).getList();
|
|
|
try {
|
|
|
//设计表头
|
|
|
- String[] comment = {"收款时间","财务流水时间","财务流水号","金额(万元)","收款方","付款方","流水科目","平台流水号","收款类型","备注"};
|
|
|
- String fileName = "流水记录列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
+ String[] comment = {"订单编号","合同编号","收款时间","财务流水时间","财务流水号","金额(万元)","收款方","付款方","流水科目","平台流水号","收款类型","备注"};
|
|
|
+ String fileName = orderNo+"流水记录列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
//type 0 收款 1开票 2流水
|
|
|
XSSFWorkbook wb =exportTemplateInfoS(comment,"流水记录",list,2);
|
|
|
//根据列表编写文档
|
|
|
@@ -593,7 +624,9 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
//当前列的只
|
|
|
String o = "";
|
|
|
switch (comment[i]) {
|
|
|
-// String[] comment = {"收款时间","财务流水时间","财务流水号","金额(万元)","收款方","付款方","流水科目","平台流水号","收款类型","备注"};
|
|
|
+// String[] comment = {"订单编号","合同编号","收款时间","财务流水时间","财务流水号","金额(万元)","收款方","付款方","流水科目","平台流水号","收款类型","备注"};
|
|
|
+ case "订单编号": o = ob.getOrderNo(); break;
|
|
|
+ case "合同编号": o = ob.getContractNo(); break;
|
|
|
case "收款时间": o = ob.getCreateTimes(); break;
|
|
|
case "财务流水时间": o = ob.getFinancialPayTimes(); break;
|
|
|
case "财务流水号": o = ob.getFinancialPayNo(); break;
|