dev
parent
1351b0f357
commit
6329d2a3aa
|
|
@ -2,12 +2,18 @@ package com.cowr.ssjygl.invoice.log;
|
|||
|
||||
import com.cowr.common.Const;
|
||||
import com.cowr.common.base.BaseService;
|
||||
import com.cowr.common.utils.DataUtil;
|
||||
import com.cowr.common.utils.DateTimeUtil;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.model.InvoiceLog;
|
||||
import com.jfinal.kit.StrKit;
|
||||
import com.jfinal.plugin.activerecord.Db;
|
||||
import com.jfinal.plugin.activerecord.Page;
|
||||
import com.jfinal.plugin.activerecord.Record;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -94,4 +100,129 @@ public class InvoiceLogService extends BaseService {
|
|||
|
||||
return Db.paginateByFullSql(pp.getPage(), pp.getSize(), totalRowSql, findSql, paraList.toArray());
|
||||
}
|
||||
|
||||
public Workbook export(String invoice_number, Integer supermarket_id, Integer state, String order_sn, String stm, String etm, String code, Integer invoice_type) {
|
||||
String selectsql = "select t.*, r.supermarket_id, s.name supermarket_name, \n" +
|
||||
" tr.first_weight, tr.second_weight, \n" +
|
||||
" case when t.type = 1 then o.weight when t.type = 3 then p.weight end weight, \n" +
|
||||
" case when t.type = 1 then o.total_price when t.type = 3 then p.total_price end total_price, \n" +
|
||||
" case when t.type = 1 then o.create_time when t.type = 3 then p.create_time end order_create_time, \n" +
|
||||
" case when t.type = 1 then o.settlement_user_name when t.type = 3 then p.settlement_user_name end settlement_user_name, \n" +
|
||||
" case when t.type = 1 then o.truck_license when t.type = 3 then p.truck_license end truck_license, \n" +
|
||||
" case when t.type = 1 then o.customer_texpayer_name when t.type = 3 then p.customer_texpayer_name end customer_texpayer_name, \n"+
|
||||
" case when t.type = 1 then o.customer_texpayer_num when t.type = 3 then p.customer_texpayer_num end customer_texpayer_num, \n"+
|
||||
" case when t.type = 1 then o.customer_name when t.type = 3 then p.customer_name end customer_name ";
|
||||
String fromsql = "from invoice_log t \n" +
|
||||
" left join invoice_receive r on r.id = t.invoice_receive_id \n" +
|
||||
" left join supermarket s on s.id = r.supermarket_id \n" +
|
||||
" left join order_sale o on o.sn = t.order_sn \n" +
|
||||
" left join order_temp p on p.sn = t.order_sn \n" +
|
||||
" left join transport tr on tr.order_sn = t.order_sn \n" +
|
||||
" where 1=1 \n";
|
||||
List<Object> paraList = new ArrayList<>();
|
||||
|
||||
if (supermarket_id != null) {
|
||||
fromsql += " and r.supermarket_id = ? \n";
|
||||
paraList.add(supermarket_id);
|
||||
}
|
||||
|
||||
if (state != null) {
|
||||
fromsql += " and t.state = ? \n";
|
||||
paraList.add(state);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(order_sn)) {
|
||||
fromsql += " and t.order_sn like ? \n";
|
||||
paraList.add("%" + order_sn + "%");
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(invoice_number)) {
|
||||
fromsql += " and t.invoice_number like ? \n";
|
||||
paraList.add("%" + invoice_number + "%");
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(stm)) {
|
||||
fromsql += " and t.create_time >= ? \n";
|
||||
paraList.add(stm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(etm)) {
|
||||
fromsql += " and t.create_time <= ? \n";
|
||||
paraList.add(etm);
|
||||
}
|
||||
|
||||
if (StrKit.notBlank(code)) {
|
||||
fromsql += " and t.code like ? \n";
|
||||
paraList.add("%" + code + "%");
|
||||
}
|
||||
|
||||
if (invoice_type != null) {
|
||||
fromsql += " and t.invoice_type = ? \n";
|
||||
paraList.add(state);
|
||||
}
|
||||
|
||||
String totalRowSql = "select count(*) " + fromsql;
|
||||
String findSql = selectsql + fromsql + " order by t.create_time desc";
|
||||
List<Record> list = Db.find(findSql, paraList.toArray());
|
||||
|
||||
Workbook wb = new XSSFWorkbook();
|
||||
Sheet sheet = wb.createSheet("发票使用日志");
|
||||
|
||||
// 表头 start
|
||||
Row row = sheet.createRow(0);
|
||||
int a = 0;
|
||||
row.createCell(a++).setCellValue("序号");
|
||||
row.createCell(a++).setCellValue("发票代码");
|
||||
row.createCell(a++).setCellValue("发票编号");
|
||||
row.createCell(a++).setCellValue("发票类型");
|
||||
row.createCell(a++).setCellValue("开票名称");
|
||||
row.createCell(a++).setCellValue("开票税号");
|
||||
row.createCell(a++).setCellValue("订单号");
|
||||
row.createCell(a++).setCellValue("开票时间");
|
||||
row.createCell(a++).setCellValue("总价");
|
||||
row.createCell(a++).setCellValue("开票人");
|
||||
row.createCell(a++).setCellValue("作废人");
|
||||
row.createCell(a++).setCellValue("车牌号");
|
||||
row.createCell(a++).setCellValue("状态");
|
||||
row.createCell(a++).setCellValue("砂站");
|
||||
row.createCell(a++).setCellValue("数量(吨)");
|
||||
row.createCell(a++).setCellValue("皮重(吨)");
|
||||
row.createCell(a++).setCellValue("毛重(吨)");
|
||||
// 表头 end
|
||||
|
||||
int datalen = list.size();
|
||||
for (int i = 0; i < datalen; i++) {
|
||||
Record order = list.get(i);
|
||||
|
||||
row = sheet.createRow(i + 1);
|
||||
a = 0;
|
||||
row.createCell(a++).setCellValue(i + 1);
|
||||
row.createCell(a++).setCellValue(order.getStr("invoice_number"));
|
||||
row.createCell(a++).setCellValue(order.getStr("code"));
|
||||
row.createCell(a++).setCellValue(order.getInt("invoice_type") == 2 ? "专票" : "普票");
|
||||
row.createCell(a++).setCellValue(order.getStr("customer_texpayer_name"));
|
||||
row.createCell(a++).setCellValue(order.getStr("customer_texpayer_num"));
|
||||
row.createCell(a++).setCellValue(order.getStr("order_sn"));
|
||||
row.createCell(a++).setCellValue(DateTimeUtil.sdfhms.get().format(order.getDate("create_time")));
|
||||
row.createCell(a++).setCellValue(DataUtil.getDefaultByRecord(order, "total_price"));
|
||||
row.createCell(a++).setCellValue(order.getStr("settlement_user_name"));
|
||||
row.createCell(a++).setCellValue(order.getStr("invalid_user_name"));
|
||||
row.createCell(a++).setCellValue(order.getStr("truck_license"));
|
||||
switch (order.getInt("state")) {
|
||||
case 5:
|
||||
row.createCell(a++).setCellValue("已使用"); break;
|
||||
case 9:
|
||||
row.createCell(a++).setCellValue("已作废"); break;
|
||||
default:
|
||||
row.createCell(a++).setCellValue("");
|
||||
}
|
||||
|
||||
row.createCell(a++).setCellValue(order.getStr("supermarket_name"));
|
||||
row.createCell(a++).setCellValue(DataUtil.getDefaultByRecord(order, "weight"));
|
||||
row.createCell(a++).setCellValue(DataUtil.getDefaultByRecord(order, "first_weight"));
|
||||
row.createCell(a++).setCellValue(DataUtil.getDefaultByRecord(order, "second_weight"));
|
||||
}
|
||||
|
||||
return wb;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.cowr.local.ssjygl.invoice.log;
|
||||
|
||||
import com.cowr.common.validator.StartAndEndIntervalValidator;
|
||||
import com.cowr.common.view.ExcelRender;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
|
||||
|
|
@ -9,6 +11,7 @@ import com.cowr.ssjygl.invoice.log.InvoiceLogPKValidator;
|
|||
import com.cowr.ssjygl.invoice.log.InvoiceLogService;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.core.Controller;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Aug 13 23:09:29 CST 2020
|
||||
|
|
@ -46,6 +49,22 @@ public class InvoiceLogController extends Controller {
|
|||
renderJson(Result.object(InvoiceLogService.me.find(pp, invoice_number, supermarket_id, state, order_sn, stm, etm, code, invoice_type)));
|
||||
}
|
||||
|
||||
@Before(StartAndEndIntervalValidator.class)
|
||||
public void export() {
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer state = getInt("state");
|
||||
String invoice_number = get("invoice_number");
|
||||
String order_sn = get("order_sn");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
String code = get("code");
|
||||
Integer invoice_type = getInt("invoice_type");
|
||||
|
||||
Workbook wb = InvoiceLogService.me.export(invoice_number, supermarket_id, state, order_sn, stm, etm, code, invoice_type);
|
||||
|
||||
render(new ExcelRender("发票使用日志_" + System.currentTimeMillis() + ".xlsx", wb));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按主键查找单个对象 invoice_log 发票管理 - 发票使用记录
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ public class TransportQueryService {
|
|||
|
||||
// transobj.set("next_invoice_code", InvoiceReceiveService.me.nextInvoiceCode(transport.getSupermarketId())); // 2020-09-21 加了发票代码
|
||||
transobj.set("invoice_numbers", InvoiceReceiveService.me.nextInvoiceCode(transport.getSupermarketId())); // TODO 专票?
|
||||
transobj.set("req_receipt", ordercluster.getReqReceipt()); // TODO 2020-10-12 如果放开购买,连零散购砂都不做配额了,这里需要修改
|
||||
|
||||
return Result.success(transobj);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package com.cowr.service.ssjygl.invoice.log;
|
||||
|
||||
import com.cowr.common.validator.StartAndEndIntervalValidator;
|
||||
import com.cowr.common.view.ExcelRender;
|
||||
import com.cowr.common.view.PageParam;
|
||||
import com.cowr.common.view.Result;
|
||||
import com.cowr.model.InvoiceLog;
|
||||
|
|
@ -10,6 +12,7 @@ import com.cowr.ssjygl.invoice.log.InvoiceLogService;
|
|||
import com.cowr.ssjygl.invoice.log.InvoiceLogValidator;
|
||||
import com.jfinal.aop.Before;
|
||||
import com.jfinal.core.Controller;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
|
||||
/**
|
||||
* Generated by COWR Thu Aug 13 23:09:29 CST 2020
|
||||
|
|
@ -47,6 +50,22 @@ public class InvoiceLogController extends Controller {
|
|||
renderJson(Result.object(InvoiceLogService.me.find(pp, invoice_number, supermarket_id, state, order_sn, stm, etm, code, invoice_type)));
|
||||
}
|
||||
|
||||
@Before(StartAndEndIntervalValidator.class)
|
||||
public void export() {
|
||||
Integer supermarket_id = getInt("supermarket_id");
|
||||
Integer state = getInt("state");
|
||||
String invoice_number = get("invoice_number");
|
||||
String order_sn = get("order_sn");
|
||||
String stm = get("stm");
|
||||
String etm = get("etm");
|
||||
String code = get("code");
|
||||
Integer invoice_type = getInt("invoice_type");
|
||||
|
||||
Workbook wb = InvoiceLogService.me.export(invoice_number, supermarket_id, state, order_sn, stm, etm, code, invoice_type);
|
||||
|
||||
render(new ExcelRender("发票使用日志_" + System.currentTimeMillis() + ".xlsx", wb));
|
||||
}
|
||||
|
||||
/**
|
||||
* 按主键查找单个对象 invoice_log 发票管理 - 发票使用记录
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue