|
@@ -1221,10 +1221,12 @@ public class AwaitSendController {
|
|
|
*/
|
|
|
@RequestMapping("/download_order_statistics")
|
|
|
@RequiresPermissions("salesOrder:order_statistics:deliver")
|
|
|
- public ModelAndView downloadOrderExcel(HttpServletRequest request,SalesOrder so) throws Exception {
|
|
|
+ public ModelAndView downloadOrderExcel(HttpServletRequest request,SalesOrder so) {
|
|
|
+ // 不查询客诉添加的订单
|
|
|
so.setIsCustmerAddOrder(2);
|
|
|
- List<SalesOrder> temporarySalesOrderList = new ArrayList<>();
|
|
|
-
|
|
|
+ // 准备接受数据的对象
|
|
|
+ List<SalesOrder> temporarySalesOrderList = null;
|
|
|
+ // 根据用户权限判断能够下载的订单数据
|
|
|
if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
|
|
|
Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
|
|
|
if(storeIds.length > 0){
|
|
@@ -1234,17 +1236,15 @@ public class AwaitSendController {
|
|
|
}else{
|
|
|
temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
|
|
|
}
|
|
|
-
|
|
|
- if(temporarySalesOrderList.size() > 20000){
|
|
|
- return new ModelAndView().addObject("下载出错,下载数量过大");
|
|
|
+ // 判断数据
|
|
|
+ if(temporarySalesOrderList == null || temporarySalesOrderList.isEmpty() || temporarySalesOrderList.size() > 20000){
|
|
|
+ throw new RuntimeException("下载出错,下载数量过大 或者 下载数据为空");
|
|
|
}
|
|
|
-
|
|
|
// 准备model
|
|
|
- Map<String, Object> model = new HashMap<String, Object>();
|
|
|
- model.put("fileName", "订单列表"); // 下载文件名称
|
|
|
-
|
|
|
+ Map<String, Object> model = new HashMap<String, Object>(3);
|
|
|
+ model.put("fileName", "订单列表");
|
|
|
// 标题
|
|
|
- List<String> titles = new ArrayList<String>();
|
|
|
+ List<String> titles = new ArrayList<String>(26);
|
|
|
titles.add("订单创建日期");
|
|
|
titles.add("订单编号");
|
|
|
titles.add("交易号");
|
|
@@ -1269,124 +1269,128 @@ public class AwaitSendController {
|
|
|
titles.add("打单日期");
|
|
|
titles.add("是否出库");
|
|
|
titles.add("出库日期");
|
|
|
+ titles.add("发货仓库");
|
|
|
model.put("titles", titles);
|
|
|
- PtsBatch ptsBatch = new PtsBatch();
|
|
|
- List<List<Object>> countexts = new ArrayList<List<Object>>();
|
|
|
- if(temporarySalesOrderList != null && temporarySalesOrderList.size() >0){
|
|
|
- for (SalesOrder salesOrder : temporarySalesOrderList) {
|
|
|
- List<Object> row = new ArrayList<Object>();
|
|
|
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
|
|
|
- row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
|
|
|
- row.add(salesOrder.getSalesOrderId() == null ? null:salesOrder.getSalesOrderId());
|
|
|
- row.add(salesOrder.getSalesDealCode() == null ? null:salesOrder.getSalesDealCode());
|
|
|
- row.add(salesOrder.getSalesExOrderId() == null ? null:salesOrder.getSalesExOrderId());
|
|
|
- if(salesOrder.getSalesCustomerId() == null){
|
|
|
- row.add("正常订单");
|
|
|
- }else{
|
|
|
- String typeName = salesOrder.getProcTypeName() == null ? "":salesOrder.getProcTypeName();
|
|
|
- row.add("售后订单("+ typeName +")");
|
|
|
- }
|
|
|
- row.add(salesOrder.getSalesAddressName() == null ? null:salesOrder.getSalesAddressName());
|
|
|
- row.add(salesOrder.getSalesAddressTel() == null ? null:salesOrder.getSalesAddressTel());
|
|
|
- String pro="",city="";
|
|
|
- try{
|
|
|
- //分割省市
|
|
|
- if(salesOrder.getSalesAddressInfo() == null){
|
|
|
- pro = "";
|
|
|
- city = "";
|
|
|
+ List<List<Object>> countexts = new ArrayList<List<Object>>(temporarySalesOrderList.size());
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
|
|
|
+ temporarySalesOrderList.forEach((salesOrder -> {
|
|
|
+ List<Object> row = new ArrayList<Object>();
|
|
|
+ row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
|
|
|
+ row.add(salesOrder.getSalesOrderId());
|
|
|
+ row.add(salesOrder.getSalesDealCode());
|
|
|
+ row.add(salesOrder.getSalesExOrderId());
|
|
|
+ if(salesOrder.getSalesCustomerId() == null){
|
|
|
+ row.add("正常订单");
|
|
|
+ }else{
|
|
|
+ String typeName = salesOrder.getProcTypeName() == null ? "":salesOrder.getProcTypeName();
|
|
|
+ row.add("售后订单("+ typeName +")");
|
|
|
+ }
|
|
|
+ row.add(salesOrder.getSalesAddressName());
|
|
|
+ row.add(salesOrder.getSalesAddressTel());
|
|
|
+ String pro="",city="";
|
|
|
+ try{
|
|
|
+ //分割省市
|
|
|
+ if(salesOrder.getSalesAddressInfo() != null){
|
|
|
+ String[] strarray;
|
|
|
+ strarray = salesOrder.getSalesAddressInfo().split(" ");
|
|
|
+ if(strarray.length > 3){
|
|
|
+ pro = strarray[0];
|
|
|
+ city = strarray[1];
|
|
|
}else{
|
|
|
- String[] strarray;
|
|
|
- strarray = salesOrder.getSalesAddressInfo().split(" ");
|
|
|
- if(strarray != null && strarray.length > 3){
|
|
|
+ strarray = salesOrder.getSalesAddressInfo().split("_");
|
|
|
+ if(strarray.length > 3){
|
|
|
pro = strarray[0];
|
|
|
city = strarray[1];
|
|
|
}else{
|
|
|
- strarray = salesOrder.getSalesAddressInfo().split("_");
|
|
|
- if(strarray != null && strarray.length > 3){
|
|
|
+ strarray = salesOrder.getSalesAddressInfo().split("-");
|
|
|
+ if(strarray.length > 3){
|
|
|
pro = strarray[0];
|
|
|
city = strarray[1];
|
|
|
- }else{
|
|
|
- strarray = salesOrder.getSalesAddressInfo().split("-");
|
|
|
- if(strarray != null && strarray.length > 3){
|
|
|
- pro = strarray[0];
|
|
|
- city = strarray[1];
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
}
|
|
|
- row.add(pro);
|
|
|
- row.add(city);
|
|
|
-
|
|
|
- row.add(salesOrder.getSalesAddressInfo() == null ? null:salesOrder.getSalesAddressInfo());
|
|
|
- String frim = replace(salesOrder.getSalesPostFirm());
|
|
|
- row.add(frim);
|
|
|
- row.add(salesOrder.getSalesPostNum() == null ? null:salesOrder.getSalesPostNum());
|
|
|
- row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
|
|
|
- row.add(salesOrder.getItemProductColor() == null ? null:salesOrder.getItemProductColor());
|
|
|
- row.add(salesOrder.getItemNum() == null ? null:salesOrder.getItemNum());
|
|
|
- row.add(salesOrder.getItemReturnNum() == null ? null:salesOrder.getItemReturnNum());
|
|
|
- row.add(salesOrder.getItemTotal() == null ? null:salesOrder.getItemTotal()/100);
|
|
|
- row.add(salesOrder.getCompanyName() == null ? null:salesOrder.getCompanyName());
|
|
|
- row.add(salesOrder.getStoreName() == null ? null:salesOrder.getStoreName());
|
|
|
-
|
|
|
-
|
|
|
- String salesShoppingStatus = "";
|
|
|
- if(salesOrder.getSalesShippingStatus() == null){
|
|
|
- salesShoppingStatus = "未打单";
|
|
|
- }else{
|
|
|
- // 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
|
|
|
- switch (salesOrder.getSalesShippingStatus()){
|
|
|
- case 0:
|
|
|
- salesShoppingStatus = "未打单";
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- salesShoppingStatus = "已打单";
|
|
|
- break;
|
|
|
- case 11:
|
|
|
- salesShoppingStatus = "通知配货";
|
|
|
- break;
|
|
|
- default:
|
|
|
- salesShoppingStatus = "其他状态";
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- row.add(salesShoppingStatus);
|
|
|
- if(salesOrder.getSalesDistributionTime() != null && salesOrder.getSalesSendTime() != null){
|
|
|
- row.add(salesOrder.getSalesDistributionTime() == null ? formatter.format(salesOrder.getSalesSendTime()):formatter.format(salesOrder.getSalesDistributionTime())); //salesDistributionTime
|
|
|
- }else{
|
|
|
- row.add("未通知配货");
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ row.add(pro);
|
|
|
+ row.add(city);
|
|
|
+ row.add(salesOrder.getSalesAddressInfo());
|
|
|
+ String frim = replace(salesOrder.getSalesPostFirm());
|
|
|
+ row.add(frim);
|
|
|
+ row.add(salesOrder.getSalesPostNum());
|
|
|
+ row.add(salesOrder.getItemProductName() == null ? null:salesOrder.getItemProductName()+(salesOrder.getItemProductColor() == null ? null:"-"+salesOrder.getItemProductColor()));
|
|
|
+ row.add(salesOrder.getItemProductColor());
|
|
|
+ row.add(salesOrder.getItemNum());
|
|
|
+ row.add(salesOrder.getItemReturnNum());
|
|
|
+ row.add(salesOrder.getItemTotal() == null ? null:salesOrder.getItemTotal()/100);
|
|
|
+ row.add(salesOrder.getCompanyName());
|
|
|
+ row.add(salesOrder.getStoreName());
|
|
|
+ String salesShoppingStatus = "";
|
|
|
+ if(salesOrder.getSalesShippingStatus() == null){
|
|
|
+ salesShoppingStatus = "未打单";
|
|
|
+ }else{
|
|
|
+ // 0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货) 11(已通知配货,后加)
|
|
|
+ switch (salesOrder.getSalesShippingStatus()){
|
|
|
+ case 0:
|
|
|
+ salesShoppingStatus = "未打单";
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ salesShoppingStatus = "已打单";
|
|
|
+ break;
|
|
|
+ case 11:
|
|
|
+ salesShoppingStatus = "通知配货";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ salesShoppingStatus = "其他状态";
|
|
|
+ break;
|
|
|
}
|
|
|
- row.add(salesOrder.getSalesSendTime() == null ? "未发货":formatter.format(salesOrder.getSalesSendTime()));
|
|
|
+ }
|
|
|
+ row.add(salesShoppingStatus);
|
|
|
+ if(salesOrder.getSalesDistributionTime() != null && salesOrder.getSalesSendTime() != null){
|
|
|
+ row.add(salesOrder.getSalesDistributionTime() == null ? formatter.format(salesOrder.getSalesSendTime()):formatter.format(salesOrder.getSalesDistributionTime()));
|
|
|
+ }else{
|
|
|
+ row.add("未通知配货");
|
|
|
+ }
|
|
|
+ row.add(salesOrder.getSalesSendTime() == null ? "未发货":formatter.format(salesOrder.getSalesSendTime()));
|
|
|
|
|
|
- String salesDeliver = "";
|
|
|
- if(salesOrder.getSalesDeliver() == null){
|
|
|
- salesDeliver = "未出库";
|
|
|
- }else{
|
|
|
- ///出库状态 1:未出库 2:已出库
|
|
|
- switch (salesOrder.getSalesDeliver()){
|
|
|
- case 1:
|
|
|
- salesDeliver = "未出库";
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- salesDeliver = "已出库";
|
|
|
- break;
|
|
|
- default:
|
|
|
- salesDeliver = "未出库";
|
|
|
- break;
|
|
|
+ String salesDeliver = "";
|
|
|
+ if(salesOrder.getSalesDeliver() == null){
|
|
|
+ salesDeliver = "未出库";
|
|
|
+ }else{
|
|
|
+ ///出库状态 1:未出库 2:已出库
|
|
|
+ switch (salesOrder.getSalesDeliver()){
|
|
|
+ case 1:
|
|
|
+ salesDeliver = "未出库";
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ salesDeliver = "已出库";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ salesDeliver = "未出库";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ row.add(salesDeliver);
|
|
|
+ row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
|
|
|
+ String temp = "京东仓";
|
|
|
+ if (salesOrder.getSalesSendType() != 3) {
|
|
|
+ // 方式sendType=3表示京东仓发货,不等于3表示自有仓库发货,需要根据warehouseId判断是哪个仓库发货
|
|
|
+ if (salesOrder.getSalesWarehouseId() == null) {
|
|
|
+ temp = null;
|
|
|
+ } else {
|
|
|
+ if (salesOrder.getSalesWarehouseId() == 1) {
|
|
|
+ temp = "正常仓库";
|
|
|
+ } else {
|
|
|
+ temp = "维修仓库";
|
|
|
}
|
|
|
}
|
|
|
- row.add(salesDeliver);
|
|
|
- row.add(salesOrder.getSalesDeliverTime() == null ? null:formatter.format(salesOrder.getSalesDeliverTime()));
|
|
|
- countexts.add(row);
|
|
|
}
|
|
|
- }
|
|
|
+ row.add(temp);
|
|
|
+ countexts.add(row);
|
|
|
+ }));
|
|
|
model.put("varList", countexts);
|
|
|
- ObjectExcelView erv = new ObjectExcelView();
|
|
|
- ModelAndView mv = new ModelAndView(erv,model);
|
|
|
- return mv;
|
|
|
+ return new ModelAndView(new ObjectExcelView(),model);
|
|
|
}
|
|
|
|
|
|
/**物流名称替换**/
|