| 
					
				 | 
			
			
				@@ -0,0 +1,644 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.fs.hisStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.bean.BeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.util.StrUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.annotation.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.core.controller.BaseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.core.domain.AjaxResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.core.domain.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.core.page.TableDataInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.enums.BusinessType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.utils.ParseUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.utils.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.common.utils.poi.ExcelUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.company.service.ICompanyMoneyLogsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.company.vo.CompanyStoreOrderMoneyLogsVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.erp.domain.ErpDeliverys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.erp.domain.ErpOrderQuery; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.erp.dto.ErpOrderQueryRequert; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.erp.dto.ErpOrderQueryResponse; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.erp.service.IErpOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.his.domain.FsUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.his.service.IFsExpressService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.his.service.IFsUserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.his.utils.ConfigUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.config.FsErpConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.domain.FsStoreOrderItemScrm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.domain.FsStoreOrderScrm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.domain.FsStoreOrderStatusScrm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.domain.FsStorePaymentScrm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.his.dto.ExpressInfoDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.dto.StoreOrderExpressExportDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.dto.StoreOrderProductDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.enums.ShipperCodeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.param.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.hisStore.vo.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Qualifier; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.validation.annotation.Validated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Collections; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 订单Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author fs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @date 2022-03-15 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RequestMapping("/store/store/storeOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class FsStoreOrderScrmController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsExpressService expressService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsStoreOrderScrmService fsStoreOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsStoreOrderItemScrmService orderItemService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsUserService userService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsStoreOrderStatusScrmService orderStatusService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    IFsStorePaymentScrmService paymentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ICompanyMoneyLogsService moneyLogsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Qualifier("erpOrderServiceImpl") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IErpOrderService gyOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Qualifier("wdtErpOrderServiceImpl") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IErpOrderService wdtOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Qualifier("k9OrderScrmServiceImpl") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IErpOrderService k9OrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ConfigUtil configUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IFsStoreOrderAuditLogScrmService orderAuditLogService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IErpOrderService getErpService(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //判断是否开启erp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IErpOrderService erpOrderService = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsErpConfig erpConfig = configUtil.getErpConfig(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer erpOpen = erpConfig.getErpOpen(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (erpOpen != null && erpOpen == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //判断erp类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer erpType = erpConfig.getErpType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (erpType != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (erpType == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //管易 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    erpOrderService = gyOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else if (erpType == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //旺店通 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    erpOrderService = wdtOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else if (erpType == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //旺店通 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    erpOrderService = k9OrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return erpOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 查询订单列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:list')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TableDataInfo list(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        startPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.setNotHealth(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsStoreOrderListVO(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStoreOrderVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(vo.getPhone()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return getDataTable(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:payRemainList')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/payRemainList") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TableDataInfo payRemainList(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        startPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderVO> list = fsStoreOrderService.selectPayRemainListVO(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStoreOrderVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(vo.getPhone()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return getDataTable(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 导出付尾款订单列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "付尾款订单", businessType = BusinessType.EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/payRemainExport") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult payRemainExport(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStorePayRemainOrderExportVO> list = fsStoreOrderService.selectFsStorePayRemainOrderListVOByExport(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //对手机号脱敏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStorePayRemainOrderExportVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getPhone() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserPhone() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserAddress()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<FsStorePayRemainOrderExportVO> util = new ExcelUtil<FsStorePayRemainOrderExportVO>(FsStorePayRemainOrderExportVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return util.exportExcel(list, "付尾款订单数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 导出订单列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:export')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单", businessType = BusinessType.EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/export") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult export(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (param.getBeginTime().equals("") && param.getEndTime().equals("")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setBeginTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setEndTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fsStoreOrderService.isEntityNull(param)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.error("请筛选数据导出"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.setNotHealth(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderExportVO> list = fsStoreOrderService.selectFsStoreOrderListVOByExport(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //对手机号脱敏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStoreOrderExportVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getPhone() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserPhone() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserAddress()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<FsStoreOrderExportVO> util = new ExcelUtil<FsStoreOrderExportVO>(FsStoreOrderExportVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return util.exportExcel(list, "订单数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:exportItems')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单明细导出", businessType = BusinessType.EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/exportItems") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult exportItems(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (param.getBeginTime().equals("") && param.getEndTime().equals("")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setBeginTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setEndTime(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (fsStoreOrderService.isEntityNull(param)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.error("请筛选数据导出"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.setNotHealth(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //对手机号脱敏 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStoreOrderItemExportVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserPhone() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(phone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (vo.getUserAddress()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!StringUtils.isEmpty(vo.getJsonInfo())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        BeanUtil.copyProperties(orderProductDTO, vo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return util.exportExcel(list, "订单明细数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/orderItemsNum") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R orderItemsNum(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setCreateTimeList(param.getCreateTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getPayTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setPayTimeList(param.getPayTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliveryImportTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliveryImportTimeList(param.getDeliveryImportTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!StringUtils.isEmpty(param.getDeliverySendTimeRange())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            param.setDeliverySendTimeList(param.getDeliverySendTimeRange().split("--")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        param.setNotHealth(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long orderItemsNum = orderItemService.countFsStoreOrderItemListExportVO(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("orderItemsNum","订单明细数目:"+orderItemsNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 获取订单详细信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:query')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getInfo(@PathVariable("id") Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        order.setUserPhone(ParseUtils.parsePhone(order.getUserPhone())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        order.setUserAddress(ParseUtils.parseAddress(order.getUserAddress())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUser user = userService.selectFsUserById(order.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (user != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user.setPhone(ParseUtils.parsePhone(user.getPhone())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderItemScrm itemMap = new FsStoreOrderItemScrm(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        itemMap.setOrderId(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderItemScrm> items = orderItemService.selectFsStoreOrderItemList(itemMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderStatusScrm statusMap = new FsStoreOrderStatusScrm(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        statusMap.setOrderId(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderStatusScrm> logs = orderStatusService.selectFsStoreOrderStatusList(statusMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStorePaymentScrm> payments=paymentService.selectFsStorePaymentByOrderId(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CompanyStoreOrderMoneyLogsVO> tuiMoneyLogs=new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(order.getCompanyId()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CompanyStoreOrderMoneyLogsListParam moneyLogsMap=new CompanyStoreOrderMoneyLogsListParam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            moneyLogsMap.setCompanyId(order.getCompanyId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            moneyLogsMap.setBusinessId(order.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tuiMoneyLogs=moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderAuditLogVO> auditLogs = orderAuditLogService.selectStoreOrderAuditLogVOByOrderId(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments",payments).put("tuiMoneyLogs",tuiMoneyLogs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .put("auditLogs",auditLogs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryAddress/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryAddress')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getAddress(@PathVariable("id") Long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String address = order.getUserAddress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("address",address); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/queryPhone/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "查看电话", businessType = BusinessType.GRANT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:queryPhone')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getPhone(@PathVariable("id") Long id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String userPhone = order.getUserPhone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("userPhone",userPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:express')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping(value = "/getExpress/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getExpress(@PathVariable("id") Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExpressInfoDTO expressInfoDTO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (StringUtils.isNotEmpty(order.getDeliveryId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String lastFourNumber = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (order.getDeliverySn().equals(ShipperCodeEnum.SF.getValue())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                lastFourNumber = order.getUserPhone(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (lastFourNumber.length() == 11) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            expressInfoDTO = expressService.getExpressInfo(order.getOrderCode(), order.getDeliverySn(), order.getDeliveryId(), lastFourNumber); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("data", expressInfoDTO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 新增订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:add')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单", businessType = BusinessType.INSERT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult add(@RequestBody FsStoreOrderScrm fsStoreOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return toAjax(fsStoreOrderService.insertFsStoreOrder(fsStoreOrder)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 修改订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:edit')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PutMapping 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult edit(@RequestBody FsStoreOrderScrm fsStoreOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 修改物流 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param fsStoreOrder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "修改物流", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:editDeliveryId')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PutMapping("/editDeliveryId") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult editDeliveryId(@RequestBody FsStoreOrderScrm fsStoreOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return toAjax(fsStoreOrderService.updateFsStoreOrder(fsStoreOrder)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "同步管易物流单号", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateErpOrder')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/updateErpOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R updateErpOrder(@Validated @RequestBody FsStoreOrderExpressEditParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order = fsStoreOrderService.selectFsStoreOrderById(param.getOrderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsErpConfig erpConfig = configUtil.getErpConfig(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> noErpCompany = erpConfig.getNoErpCompany(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (noErpCompany.contains(order.getCompanyId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info("订单:{},相关公司不推送erp", order.getOrderCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return R.ok("订单:"+ order.getOrderCode()+"相关公司不推送erp"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IErpOrderService erpOrderService = getErpService(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ErpOrderQueryRequert request = new ErpOrderQueryRequert(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setCode(order.getExtendOrderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ErpOrderQueryResponse response = erpOrderService.getOrder(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(response.getOrders()!=null&&response.getOrders().size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(ErpOrderQuery orderQuery : response.getOrders()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(orderQuery.getDeliverys()!=null&&orderQuery.getDeliverys().size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    for(ErpDeliverys delivery:orderQuery.getDeliverys()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(delivery.getDelivery()&& StringUtils.isNotEmpty(delivery.getMail_no())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //更新商订单状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            fsStoreOrderService.updateDeliveryOrder(param.getOrderId(), delivery.getMail_no(),delivery.getExpress_code(),delivery.getExpress_name()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return R.ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.error("未查询到快递信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 删除订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:remove')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单", businessType = BusinessType.DELETE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @DeleteMapping("/{ids}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult remove(@PathVariable Long[] ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return toAjax(fsStoreOrderService.deleteFsStoreOrderByIds(ids)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/createUserOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R createUserOrder(@Validated @RequestBody FsStoreOrderCreateUserParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.createUserOrder(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "确认订单", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:finishOrder')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/finishOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R finishOrder(@Validated @RequestBody FsStoreOrderFinishParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.finishOrder(param.getOrderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:auditPayRemain')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/auditPayRemain") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R auditPayRemain(@Validated @RequestBody FsStoreOrderAuditPayRemainParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.auditPayRemain(param.getOrderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "导入", businessType = BusinessType.IMPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:importExpress')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/importExpress") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<StoreOrderExpressExportDTO> list = util.importExcel(file.getInputStream()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String message = fsStoreOrderService.importExpress(list, updateSupport); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success(message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //下载模板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/importTemplate") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult importTemplate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<StoreOrderExpressExportDTO> util = new ExcelUtil<StoreOrderExpressExportDTO>(StoreOrderExpressExportDTO.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return util.importTemplateExcel("物流回单数据"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/getStoreOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getStoreOrder(@RequestParam("orderCode") String orderCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderVO vo = fsStoreOrderService.selectFsStoreOrderVOByOrderCode(orderCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("data", vo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "冻结、解冻佣金", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:editTuiMoney')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/editTuiMoney") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R editTuiMoney(@Validated @RequestBody FsStoreOrderEditTuiMoneyParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.editTuiMoney(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "退款", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:refundOrderMoney')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/refundOrderMoney") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public synchronized R refundOrderMoney(@Validated @RequestBody FsStoreOrderRefundParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.refundOrderMoney(param.getOrderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:getEroOrder')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/getEroOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R getEroOrder(@RequestParam("extendOrderId") String extendOrderId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IErpOrderService erpOrderService = getErpService(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ErpOrderQueryRequert request = new ErpOrderQueryRequert(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.setCode(extendOrderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ErpOrderQueryResponse response = erpOrderService.getOrder(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok().put("data",response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:updateExpress')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/updateExpress") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R updateExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.updateExpress(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "同步物流", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:syncExpress')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/syncExpress") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R syncExpress(@Validated @RequestBody FsStoreOrderExpressEditParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.syncExpress(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "分佣", businessType = BusinessType.UPDATE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:addTuiMoney')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/addTuiMoney") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R addTuiMoney(@Validated @RequestBody FsStoreOrderAddTuiMoneyParam param, HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.addTuiMoney(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/getCustomerOrderList") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TableDataInfo getCustomerOrderList(FsStoreOrderParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        startPage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsStoreOrderVO> list = fsStoreOrderService.selectFsCustomerStoreOrderListVO(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FsStoreOrderVO vo : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(vo.getPhone()!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setPhone(vo.getPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return getDataTable(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "手动推管易", businessType = BusinessType.INSERT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation("创建ERP订单") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PreAuthorize("@ss.hasPermi('store:storeOrder:createErpOrder')") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/createErpOrder") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R createErpOrder(@RequestParam("orderCode") String orderCode) throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.info("手动推管易订单号:{}",orderCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsStoreOrderScrm order=fsStoreOrderService.selectFsStoreOrderByOrderCode(orderCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fsStoreOrderService.createOmsOrder(order.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 订单维度分页查询接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param param 查询条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return AjaxResult 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/orderDimensionStatisticsList") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public TableDataInfo orderDimensionStatisticsList(OrderStatisticsParam param){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return getDataTable(fsStoreOrderService.selectOrderDimensionStatisticsList(param)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 导出订单维度统计接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param param 查询条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return AjaxResult 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Log(title = "订单维度统计", businessType = BusinessType.EXPORT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/orderDimensionStatisticsExport") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult orderDimensionStatisticsExport(OrderStatisticsParam param){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<OrderStatisticsVo> list = fsStoreOrderService.selectOrderDimensionStatisticsList(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        switch (param.getGroupType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                List<OrderCateStatisticsVo> cateStatisticsVoList = convertTo(list,OrderCateStatisticsVo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                ExcelUtil<OrderCateStatisticsVo> cateUtil = new ExcelUtil<>(OrderCateStatisticsVo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                return cateUtil.exportExcel(cateStatisticsVoList, "订单标签维度统计"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                List<OrderProductStatisticsVo> productStatisticsVoList =  convertTo(list,OrderProductStatisticsVo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                ExcelUtil<OrderProductStatisticsVo> productUtil = new ExcelUtil<>(OrderProductStatisticsVo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                return productUtil.exportExcel(productStatisticsVoList, "订单商品维度统计"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ExcelUtil<OrderStatisticsVo> util = new ExcelUtil<>(OrderStatisticsVo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return util.exportExcel(list, "订单员工维度统计"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 对象列表类型转换 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static <T> List<T> convertTo(List<?> sourceList, Class<T> targetClass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sourceList == null || sourceList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<T> resultList = new ArrayList<>(sourceList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (Object source : sourceList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                T target = targetClass.getDeclaredConstructor().newInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BeanUtils.copyProperties(source, target); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultList.add(target); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new RuntimeException("数据转换异常", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return resultList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |