|
|
@@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
|
+import org.apache.poi.ss.formula.functions.T;
|
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
|
import org.apache.poi.ss.usermodel.Row;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
|
@@ -59,6 +60,7 @@ import com.goafanti.order.bo.OrderListBo;
|
|
|
import com.goafanti.order.bo.OrderReportBo;
|
|
|
import com.goafanti.order.bo.ReceivablesListBo;
|
|
|
import com.goafanti.order.bo.TOrderBonusBo;
|
|
|
+import com.goafanti.order.bo.TOrderInvoiceBo;
|
|
|
import com.goafanti.order.bo.TemporaryReceivablesBo;
|
|
|
import com.goafanti.order.enums.ApprovalNewState;
|
|
|
import com.goafanti.order.enums.BonusSubject;
|
|
|
@@ -66,7 +68,10 @@ import com.goafanti.order.enums.LiquidationNewState;
|
|
|
import com.goafanti.order.enums.OrderNewState;
|
|
|
import com.goafanti.order.enums.ProcessStatus;
|
|
|
import com.goafanti.order.enums.ProjectNewStage;
|
|
|
+import com.goafanti.order.enums.TransactionSubject;
|
|
|
import com.goafanti.order.service.FundManageOrderService;
|
|
|
+import com.goafanti.order.service.OrderBillService;
|
|
|
+import com.goafanti.order.service.OrderInvoiceService;
|
|
|
import com.goafanti.order.service.OrderReceivablesService;
|
|
|
|
|
|
@Service
|
|
|
@@ -87,6 +92,11 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
|
|
|
@Resource
|
|
|
private FundManageOrderService fundManageOrderService;
|
|
|
+ @Resource
|
|
|
+ private OrderInvoiceService orderInvoiceService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private OrderBillService orderBillService;
|
|
|
|
|
|
@Override
|
|
|
public int addReceivables(TemporaryReceivablesBo t) {
|
|
|
@@ -420,7 +430,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
}
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Override
|
|
|
- public void exportTemplate(HttpServletResponse response,OrderListBo order, Integer pageSize, Integer pageNo) throws Exception {
|
|
|
+ public void exportReceivables(HttpServletResponse response,OrderListBo order, Integer pageSize, Integer pageNo) throws Exception {
|
|
|
OutputStream out = response.getOutputStream();
|
|
|
// 财务专员自己的id
|
|
|
order.setFinanceId(TokenManager.getAdminId());
|
|
|
@@ -429,12 +439,13 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
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();
|
|
|
+ if(list.isEmpty())throw new BusinessException(new Error("数据是空的。"));
|
|
|
try {
|
|
|
//设计表头
|
|
|
String[] comment = {"订单编号", "合同编号","客户名称","订单部门","订单负责人","签单日期","下单日期",
|
|
|
"签单金额(万元)", "已开票金额(万元)", "已收金额(万元)","最近收款(万元)","最近收款时间","结算状态","订单流程","是否特批"};
|
|
|
String fileName = "收款结算列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
- XSSFWorkbook wb =exportTemplateInfoS(comment,"收款结算",list);
|
|
|
+ XSSFWorkbook wb =exportTemplateInfoS(comment,"收款结算",list,0);
|
|
|
//根据列表编写文档
|
|
|
|
|
|
//返回名称及参数
|
|
|
@@ -452,14 +463,84 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public void exportInvoice(HttpServletResponse response, String orderNo, Integer pageSize, Integer pageNo)throws Exception {
|
|
|
+
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
+ 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("数据是空的。"));
|
|
|
+ try {
|
|
|
+ //设计表头
|
|
|
+ String[] comment = {"编号","订单编号","开票金额(万元)","申请时间","开票状态"};
|
|
|
+ String fileName = "开票记录列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
+ //type 0 收款 1开票 2流水
|
|
|
+ XSSFWorkbook wb =exportTemplateInfoS(comment,"开票记录",list,1);
|
|
|
+ //根据列表编写文档
|
|
|
+
|
|
|
+ //返回名称及参数
|
|
|
+ response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
|
|
|
+ response.setContentType("application/octet-stream;charset=utf-8");
|
|
|
+ // 返回数据流
|
|
|
+ wb.write(out);
|
|
|
+ out.flush();
|
|
|
+ out.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BusinessException(new Error("表格生成错误。"));
|
|
|
+ }finally {
|
|
|
+ out.flush();
|
|
|
+ out.close();
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- public static XSSFWorkbook exportTemplateInfoS(String[] comment,String fileName,List<OrderListBo> list){
|
|
|
+ }
|
|
|
+
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public void exportMyBill(HttpServletResponse response, String orderNo, Integer pageSize, Integer pageNo)throws Exception {
|
|
|
+
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
+ if(pageSize==null||pageSize<0)pageSize=9999;
|
|
|
+ if(pageNo==null||pageNo<0)pageNo=1;
|
|
|
+ TOrderBillNew billNew=new TOrderBillNew();
|
|
|
+ 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";
|
|
|
+ //type 0 收款 1开票 2流水
|
|
|
+ XSSFWorkbook wb =exportTemplateInfoS(comment,"流水记录",list,2);
|
|
|
+ //根据列表编写文档
|
|
|
+
|
|
|
+ //返回名称及参数
|
|
|
+ response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
|
|
|
+ response.setContentType("application/octet-stream;charset=utf-8");
|
|
|
+ // 返回数据流
|
|
|
+ wb.write(out);
|
|
|
+ out.flush();
|
|
|
+ out.close();
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BusinessException(new Error("表格生成错误。"));
|
|
|
+ }finally {
|
|
|
+ out.flush();
|
|
|
+ out.close();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param comment
|
|
|
+ * @param fileName
|
|
|
+ * @param list
|
|
|
+ * @param type 0收款 1开票 2流水
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static XSSFWorkbook exportTemplateInfoS(String[] comment,String fileName,List<?> list,Integer type){
|
|
|
|
|
|
//map 数据 ,comment表头 (列名称)
|
|
|
//1,创建一个workbook,对应的是一个excel文件
|
|
|
XSSFWorkbook wb = new XSSFWorkbook();
|
|
|
- int count = 0;
|
|
|
//遍历map
|
|
|
XSSFSheet sheet = wb.createSheet(fileName);
|
|
|
//3。创建一个row
|
|
|
@@ -481,11 +562,84 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
c.setCellValue(comment[i]);
|
|
|
c.setCellStyle(style2);
|
|
|
}
|
|
|
- addSettlementReceivablesList(comment, list, sheet);
|
|
|
+ switch (type) {
|
|
|
+ case 0:
|
|
|
+ addSettlementReceivablesList(comment, list, sheet);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ addSettlementInvoiceList(comment, list, sheet);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ addSettlementMyBillList(comment, list, sheet);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
return wb;
|
|
|
}
|
|
|
- private static void addSettlementReceivablesList(String[] comment, List<OrderListBo> list, XSSFSheet sheet) {
|
|
|
- for (OrderListBo ob : list) {
|
|
|
+
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ private static void addSettlementMyBillList(String[] comment, List<?> list, XSSFSheet sheet) {
|
|
|
+ for (TOrderBillNew ob : (List<TOrderBillNew>)list) {
|
|
|
+ //新增一行
|
|
|
+ XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
|
|
|
+ for (int i = 0; i < comment.length; i++) {
|
|
|
+ //当前列的只
|
|
|
+ String o = "";
|
|
|
+ switch (comment[i]) {
|
|
|
+// String[] comment = {"收款时间","财务流水时间","财务流水号","金额(万元)","收款方","付款方","流水科目","平台流水号","收款类型","备注"};
|
|
|
+ case "收款时间": o = ob.getCreateTimes(); break;
|
|
|
+ case "财务流水时间": o = ob.getFinancialPayTimes(); break;
|
|
|
+ case "财务流水号": o = ob.getFinancialPayNo(); break;
|
|
|
+ case "金额(万元)": o = ob.getTransactionAmount().toString(); break;
|
|
|
+ case "收款方": o = ob.getPayeeName(); break;
|
|
|
+ case "付款方": o = ob.getPayerName(); break;
|
|
|
+ case "流水科目": o = TransactionSubject.getValueByCode(ob.getTransactionSubject()); break;
|
|
|
+ case "平台流水号": o = ob.getBillNo(); break;
|
|
|
+ case "收款类型":
|
|
|
+ if(ob.getType()==0) {
|
|
|
+ o = "手工收款"; break;
|
|
|
+ }else if(ob.getType()==1) {
|
|
|
+ o = "批量收款"; break;
|
|
|
+ }
|
|
|
+ case "备注": o = ob.getRemarks(); break;
|
|
|
+ default: o = ""; break;
|
|
|
+ }
|
|
|
+ XSSFCell c = r.createCell(i);
|
|
|
+ c.setCellValue(o);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ private static void addSettlementInvoiceList(String[] comment, List<?> list, XSSFSheet sheet) {
|
|
|
+ for (TOrderInvoiceBo ob : (List<TOrderInvoiceBo>)list) {
|
|
|
+ //新增一行
|
|
|
+ XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
|
|
|
+ for (int i = 0; i < comment.length; i++) {
|
|
|
+ //当前列的只
|
|
|
+ String o = "";
|
|
|
+ switch (comment[i]) {
|
|
|
+// String[] comment = {"编号","订单编号","开票金额(万元)","申请时间","开票状态"};
|
|
|
+ case "编号": o = ob.getId().toString(); break;
|
|
|
+ case "订单编号": o = ob.getOrderno(); break;
|
|
|
+ case "开票金额(万元)": o = ob.getAmount().toString(); break;
|
|
|
+ case "申请时间": o = ob.getCreateTime(); break;
|
|
|
+ case "开票状态":
|
|
|
+// 状态 0未提交 1处理中 2通过 3拒绝 4 撤销
|
|
|
+ switch(ob.getStatus()) {
|
|
|
+ case 1 :o = "处理中"; break;
|
|
|
+ case 2 :o = "通过"; break;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default: o = ""; break;
|
|
|
+ }
|
|
|
+ XSSFCell c = r.createCell(i);
|
|
|
+ c.setCellValue(o);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ private static void addSettlementReceivablesList(String[] comment, List<?> list, XSSFSheet sheet) {
|
|
|
+ for (OrderListBo ob : (List<OrderListBo>)list) {
|
|
|
//新增一行
|
|
|
XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
|
|
|
for (int i = 0; i < comment.length; i++) {
|
|
|
@@ -516,6 +670,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|