Explorar o código

订单管理按钮报错修复

wangxy hai 1 semana
pai
achega
0e8ec1e1df

+ 313 - 0
fs-admin-saas/src/main/java/com/fs/company/controller/company/CompanyTcmReportController.java

@@ -0,0 +1,313 @@
+package com.fs.company.controller.company;
+
+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.domain.model.LoginUser;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.domain.CompanyTcmReport;
+import com.fs.company.domain.CompanyTcmSchedule;
+import com.fs.company.param.CompanyTcmReportListQueryParam;
+import com.fs.company.service.ICompanyTcmReportService;
+import com.fs.company.service.ICompanyTcmScheduleService;
+import com.fs.company.vo.CompanyReportExportVO;
+import com.fs.company.vo.CompanyTcmReportListVO;
+import com.fs.company.vo.CompanyTcmStatisticsExportVO;
+import com.fs.framework.web.service.TokenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+
+@RestController
+@RequestMapping("/company/tcmScheduleReport")
+public class CompanyTcmReportController extends BaseController
+{
+    @Autowired
+    private ICompanyTcmReportService companyTcmReportService;
+
+    @Autowired
+    private ICompanyTcmScheduleService companyTcmScheduleService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(CompanyTcmReportListQueryParam param)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!loginUser.getUser().isAdmin()){
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(!StringUtils.isEmpty(param.getDateRange())){
+            param.setStartTimeList(param.getDateRange().split("--"));
+        }
+        List<CompanyTcmReportListVO> list = companyTcmReportService.selectCompanyTcmReportListVOList(param);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:export')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(CompanyTcmReportListQueryParam param)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!loginUser.getUser().isAdmin()){
+            param.setCompanyUserId(loginUser.getUser().getUserId());
+        }
+        List<CompanyReportExportVO> list = companyTcmReportService.selectCompanyReportExportVOList(param);
+        for(CompanyReportExportVO item:list){
+            item.setRegisterRate(String.format("%.3f", item.getRegisterNum().doubleValue()/item.getTotalNum().doubleValue()*100.0).toString()+"%");
+            item.setOnlineRate(String.format("%.3f", item.getOnlineNum().doubleValue()/item.getRegisterNum().doubleValue()*100.0).toString()+"%");
+            item.setFinishRate(String.format("%.3f", item.getFinishNum().doubleValue()/item.getRegisterNum().doubleValue()*100.0).toString()+"%");
+            if(item.getTargetMoney()!=null){
+                item.setTargetRate(String.format("%.3f", item.getTotalMoney().doubleValue()/item.getTargetMoney().doubleValue()*100.0).toString()+"%");
+            }else{
+                item.setTargetRate("0%");
+            }
+            if(item.getRound1Order()!=null){
+                item.setRound1Rate(getRoundRate(item.getRound1Order(),item.getTotalNum()));
+                item.setRound1Unit(new BigDecimal(getRoundUnit(item.getRound1Money(),item.getRound1Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound2Order()!=null){
+                item.setRound2Rate(getRoundRate(item.getRound2Order(),item.getTotalNum()));
+                item.setRound2Unit(new BigDecimal(getRoundUnit(item.getRound2Money(),item.getRound2Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound3Order()!=null){
+                item.setRound3Rate(getRoundRate(item.getRound3Order(),item.getTotalNum()));
+                item.setRound3Unit(new BigDecimal(getRoundUnit(item.getRound3Money(),item.getRound3Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound4Order()!=null){
+                item.setRound4Rate(getRoundRate(item.getRound4Order(),item.getTotalNum()));
+                item.setRound4Unit(new BigDecimal(getRoundUnit(item.getRound4Money(),item.getRound4Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound5Order()!=null){
+                item.setRound5Rate(getRoundRate(item.getRound5Order(),item.getTotalNum()));
+                item.setRound5Unit(new BigDecimal(getRoundUnit(item.getRound5Money(),item.getRound5Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound6Order()!=null){
+                item.setRound6Rate(getRoundRate(item.getRound6Order(),item.getTotalNum()));
+                item.setRound6Unit(new BigDecimal(getRoundUnit(item.getRound6Money(),item.getRound6Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound7Order()!=null) {
+                item.setRound7Rate(getRoundRate(item.getRound7Order(), item.getTotalNum()));
+                item.setRound7Unit(new BigDecimal(getRoundUnit(item.getRound7Money(), item.getRound7Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound8Order() != null) {
+                item.setRound8Rate(getRoundRate(item.getRound8Order(), item.getTotalNum()));
+                item.setRound8Unit(new BigDecimal(getRoundUnit(item.getRound8Money(), item.getRound8Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound9Order() != null) {
+                item.setRound9Rate(getRoundRate(item.getRound9Order(), item.getTotalNum()));
+                item.setRound9Unit(new BigDecimal(getRoundUnit(item.getRound9Money(), item.getRound9Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+        }
+        ExcelUtil<CompanyReportExportVO> util = new ExcelUtil<CompanyReportExportVO>(CompanyReportExportVO.class);
+        return util.exportExcel(list, "statisticsScheduleReport");
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:statistics')")
+    @GetMapping("/statisticsList")
+    public TableDataInfo statisticsList(CompanyTcmReportListQueryParam param)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        if(param.getDeptId()!=null){
+            param.setDeptIdStr(param.getDeptId().toString());
+        }
+        List<CompanyTcmReportListVO> list = companyTcmReportService.selectCompanyTcmReportStatisticsVOList(param);
+        return getDataTable(list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:export')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.EXPORT)
+    @GetMapping("/exportCompany")
+    public AjaxResult exportCompany(CompanyTcmReportListQueryParam param)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getUser().getCompanyId().toString());
+        if(!StringUtils.isEmpty(param.getCreateTimeRange())){
+            param.setCreateTimeList(param.getCreateTimeRange().split("--"));
+        }
+        List<CompanyTcmStatisticsExportVO> list = companyTcmReportService.selectCompanyTcmStatisticsExportVOList(param);
+        for(CompanyTcmStatisticsExportVO item:list){
+            if(item.getTotalNum()!=null && item.getTotalNum().doubleValue()>0){
+                item.setRegisterRate(String.format("%.3f",getLongRate(item.getRegisterNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setOnlineRate(String.format("%.3f",getLongRate(item.getOnlineNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setFinishRate(String.format("%.3f", getLongRate(item.getFinishNum().doubleValue(),item.getTotalNum())*100.0).toString()+"%");
+                item.setRLine(new BigDecimal(getLongRate(item.getTotalMoney().doubleValue(),item.getTotalNum())*1.0).setScale(3, RoundingMode.HALF_UP));
+
+            }else{
+                item.setRegisterRate("0%");
+                item.setOnlineRate("0%");
+                item.setFinishRate("0%");
+                item.setRLine(new BigDecimal(0.0));
+            }
+            if(item.getCuCount()!=null && item.getCuCount().doubleValue()>0){
+                item.setPersonMoney(String.format("%.3f",getLongRate(item.getTotalMoney().doubleValue(),Long.valueOf(item.getCuCount()))*1.0).toString());
+            }else{
+                item.setCuCount(0);
+            }
+            if(item.getTargetMoney()!=null && item.getTargetMoney().doubleValue()>0){
+                item.setTargetRate(String.format("%.3f", item.getTotalMoney().doubleValue()/item.getTargetMoney().doubleValue()*100.0).toString()+"%");
+            }else{
+                item.setTargetRate("0%");
+            }
+            if(item.getMoney()!=null && item.getMoney().doubleValue()>0){
+                item.setZroi(new BigDecimal(item.getTotalMoney().doubleValue()/item.getMoney().doubleValue()*1.0).setScale(3, RoundingMode.HALF_UP));
+            }else{
+                item.setZroi(new BigDecimal(0.0));
+            }
+            if(item.getRound1Order()!=null){
+                item.setRound1Rate(getRoundRate(item.getRound1Order(),item.getTotalNum()));
+                item.setRound1Unit(new BigDecimal(getRoundUnit(item.getRound1Money(),item.getRound1Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound2Order()!=null){
+                item.setRound2Rate(getRoundRate(item.getRound2Order(),item.getTotalNum()));
+                item.setRound2Unit(new BigDecimal(getRoundUnit(item.getRound2Money(),item.getRound2Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound3Order()!=null){
+                item.setRound3Rate(getRoundRate(item.getRound3Order(),item.getTotalNum()));
+                item.setRound3Unit(new BigDecimal(getRoundUnit(item.getRound3Money(),item.getRound3Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound4Order()!=null){
+                item.setRound4Rate(getRoundRate(item.getRound4Order(),item.getTotalNum()));
+                item.setRound4Unit(new BigDecimal(getRoundUnit(item.getRound4Money(),item.getRound4Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound5Order()!=null){
+                item.setRound5Rate(getRoundRate(item.getRound5Order(),item.getTotalNum()));
+                item.setRound5Unit(new BigDecimal(getRoundUnit(item.getRound5Money(),item.getRound5Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound6Order()!=null){
+                item.setRound6Rate(getRoundRate(item.getRound6Order(),item.getTotalNum()));
+                item.setRound6Unit(new BigDecimal(getRoundUnit(item.getRound6Money(),item.getRound6Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if(item.getRound7Order()!=null) {
+                item.setRound7Rate(getRoundRate(item.getRound7Order(), item.getTotalNum()));
+                item.setRound7Unit(new BigDecimal(getRoundUnit(item.getRound7Money(), item.getRound7Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound8Order() != null) {
+                item.setRound8Rate(getRoundRate(item.getRound8Order(), item.getTotalNum()));
+                item.setRound8Unit(new BigDecimal(getRoundUnit(item.getRound8Money(), item.getRound8Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+            if (item.getRound9Order() != null) {
+                item.setRound9Rate(getRoundRate(item.getRound9Order(), item.getTotalNum()));
+                item.setRound9Unit(new BigDecimal(getRoundUnit(item.getRound9Money(), item.getRound9Order())).setScale(3, RoundingMode.HALF_UP));
+            }
+
+        }
+        ExcelUtil<CompanyTcmStatisticsExportVO> util = new ExcelUtil<CompanyTcmStatisticsExportVO>(CompanyTcmStatisticsExportVO.class);
+        return util.exportExcel(list, "statisticsScheduleReport");
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(companyTcmReportService.selectCompanyTcmReportById(id));
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:add')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody CompanyTcmReport companyTcmReport)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if (companyTcmReport.getCompanyId() == null && loginUser.getUser() != null && loginUser.getUser().getCompanyId() != null) { companyTcmReport.setCompanyId(loginUser.getUser().getCompanyId()); };
+        companyTcmReport.setCompanyUserId(loginUser.getUser().getUserId());
+        int isOk=companyTcmReportService.insertCompanyTcmReport(companyTcmReport);
+        if(isOk>0){
+            return AjaxResult.success(companyTcmReport);
+        }else{
+            return  AjaxResult.error();
+        }
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:edit')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody CompanyTcmReport companyTcmReport)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        if (companyTcmReport.getCompanyId() == null && loginUser.getUser() != null && loginUser.getUser().getCompanyId() != null) { companyTcmReport.setCompanyId(loginUser.getUser().getCompanyId()); }
+        companyTcmReport.setUpdateUserId(loginUser.getUser().getUserId());
+        return toAjax(companyTcmReportService.updateCompanyTcmReport(companyTcmReport));
+    }
+
+    @GetMapping("/getScheduleList")
+    public TableDataInfo getScheduleList()
+    {
+        startPage();
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectUseableScheduleList();
+        return getDataTable(list);
+    }
+
+    @GetMapping("/getAllScheduleList")
+    public TableDataInfo getAllScheduleList()
+    {
+        startPage();
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectCompanyTcmScheduleList(new CompanyTcmSchedule());
+        return getDataTable(list);
+    }
+
+    @GetMapping("/getTcmScheduleList")
+    public R getCompanyTcmScheduleList()
+    {
+        CompanyTcmSchedule map = new CompanyTcmSchedule();
+        map.setStatus(1L);
+        List<CompanyTcmSchedule> list = companyTcmScheduleService.selectCompanyTcmScheduleList(map);
+        return R.ok().put("data",list);
+    }
+
+    @PreAuthorize("@ss.hasPermi('company:tcmScheduleReport:remove')")
+    @Log(title = "中医档期业绩报表", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(companyTcmReportService.deleteCompanyTcmReportByIds(ids));
+    }
+
+    public String getRoundRate(Long roundOrder,Long totalNum){
+        String sorStr="0%";
+        if(totalNum.longValue()>0){
+            sorStr=String.format("%.3f", roundOrder.doubleValue()/totalNum*100.0).toString()+"%";
+        }
+        return sorStr;
+    }
+
+    public double getRoundUnit(BigDecimal roundMoney,Long roundOrder){
+        double sorNum=0;
+        if(roundOrder.longValue()>0){
+            sorNum=roundMoney.doubleValue()/roundOrder*1.0;
+        }
+        return sorNum;
+    }
+
+    public double getLongRate(double num1,Long num2){
+        double sorNum=0;
+        if(num2.longValue()>0){
+            sorNum=num1/num2*1.0;
+        }
+        return sorNum;
+    }
+
+}

+ 3 - 0
fs-admin-saas/src/main/java/com/fs/crm/controller/CrmCustomerController.java

@@ -237,6 +237,9 @@ public class CrmCustomerController extends BaseController
     public R getInfo(@PathVariable("customerId") Long customerId)
     {
         CrmCustomer customer=crmCustomerService.selectCrmCustomerById(customerId);
+        if(customer == null){
+            return R.ok().put("customer",customer).put("company",new Company());
+        }
         Company company=companyService.selectCompanyById(customer.getCompanyId());
         return R.ok().put("customer",customer).put("company",company);
     }

+ 2 - 1
fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -352,7 +352,8 @@ public class FsStoreHealthOrderScrmController extends BaseController {
         }
         param.setIsHealth("1");
         List<FsStoreOrderItemExportVO> list = orderItemService.selectFsStoreOrderItemListExportVO(param);
-        if("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())){
+        com.fs.config.saas.ProjectConfig projectConfig = com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper);
+        if(projectConfig != null && projectConfig.getCloudHost() != null && "北京卓美".equals(projectConfig.getCloudHost().getCompanyName())){
             List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
                     .map(vo -> {
                         FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();

+ 215 - 222
fs-admin-saas/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -14,10 +14,7 @@ import com.fs.common.core.domain.entity.SysUser;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
-import com.fs.common.utils.CloudHostUtils;
-import com.fs.common.utils.ParseUtils;
-import com.fs.common.utils.ServletUtils;
-import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.*;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.param.CompanyStoreOrderMoneyLogsListParam;
 import com.fs.company.service.ICompanyMoneyLogsService;
@@ -391,21 +388,20 @@ public class FsStoreOrderScrmController extends BaseController {
     @Autowired
     private ISysRoleService sysRoleService;
     private SysRole isCheckPermission() {
-//        SysRole sysRole = new SysRole();
-//        SysUser user = SecurityUtils.getLoginUser().getUser();
-//        boolean flag = user.isAdmin();
-//        if (flag) {
-//            sysRole.setIsCheckPhone(1);
-//            sysRole.setIsCheckAddress(1);
-//        } else {
-//            List<SysRole> roles = user.getRoles();
-//            if (roles != null && !roles.isEmpty()) {
-//                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
-//                return sysRoleService.getIsCheckPermission(roleIds);
-//            }
-//        }
-//        return sysRole;
-        throw new RuntimeException("未实现");
+        SysRole sysRole = new SysRole();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        boolean flag = user.isAdmin();
+        if (flag) {
+            sysRole.setIsCheckPhone(1);
+            sysRole.setIsCheckAddress(1);
+        } else {
+            List<SysRole> roles = user.getRoles();
+            if (roles != null && !roles.isEmpty()) {
+                Long[] roleIds = roles.stream().map(SysRole::getRoleId).toArray(Long[]::new);
+                return sysRoleService.getIsCheckPermission(roleIds);
+            }
+        }
+        return sysRole;
     }
 
 
@@ -461,63 +457,62 @@ public class FsStoreOrderScrmController extends BaseController {
     @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
     @GetMapping("/exportItems")
     public AjaxResult exportItems(FsStoreOrderParam param) {
-//        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-//            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) {
-//            SysRole sysRole = isCheckPermission();
-//            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//
-//            for (FsStoreOrderItemExportVO vo : list) {
-//                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
-//                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
-//                    vo.setUserPhone(phone);
-//                }
-//                if (vo.getUserAddress()!=null && sysRole.getIsCheckAddress() != 1){
-//                    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) {
-//                    }
-//                }
-//                //
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
-//                }
-//            }
-//        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("未实现");
+        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
+            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) {
+            SysRole sysRole = isCheckPermission();
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+            for (FsStoreOrderItemExportVO vo : list) {
+                if (vo.getUserPhone() != null && sysRole.getIsCheckPhone() != 1) {
+                    String phone = vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
+                    vo.setUserPhone(phone);
+                }
+                if (vo.getUserAddress()!=null && sysRole.getIsCheckAddress() != 1){
+                    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) {
+                    }
+                }
+                //
+                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                } else {
+                    vo.setPayPostage(BigDecimal.ZERO);
+                    vo.setCost(BigDecimal.ZERO);
+                    vo.setFPrice(BigDecimal.ZERO);
+                    vo.setBarCode("");
+                    vo.setCateName("");
+                    vo.setBankTransactionId("");
+                }
+            }
+        }
+        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+        return util.exportExcel(list, "订单明细数据");
     }
 
     /**
@@ -527,95 +522,95 @@ public class FsStoreOrderScrmController extends BaseController {
     @Log(title = "订单明细导出", businessType = BusinessType.EXPORT)
     @GetMapping("/exportItemsDetails")
     public AjaxResult exportItemsDetails(FsStoreOrderParam param) {
-//        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
-//            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("北京卓美".equals(com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper).getCloudHost().getCompanyName())){
-//            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
-//                    .map(vo -> {
-//                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
-//                        try {
-//                            BeanUtil.copyProperties( vo,zmvo);
-//                        } catch (Exception e) {
-//                            // 处理异常
-//                            e.printStackTrace();
-//                        }
-//                        return zmvo;
-//                    })
-//                    .collect(Collectors.toList());
-//            //对手机号脱敏
-//            if (zmvoList != null) {
-//                com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
-//                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                        try {
-//                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                            BeanUtil.copyProperties(orderProductDTO, vo);
-//                        } catch (Exception e) {
-//                        }
-//                    }
-//                    //
-//                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                    } else {
-//                        vo.setPayPostage(BigDecimal.ZERO);
-//                        vo.setCost(BigDecimal.ZERO);
-//                        vo.setFPrice(BigDecimal.ZERO);
-//                        vo.setBarCode("");
-//                        vo.setCateName("");
-//                        vo.setBankTransactionId("");
-//                    }
-//                }
-//            }
-//            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
-//            return util.exportExcel(zmvoList, "订单明细数据");
-//        }
-//
-//        //对手机号脱敏
-//        if (list != null) {
-//            com.fs.framework.security.LoginUser loginUser = (com.fs.framework.security.LoginUser) tokenService.getLoginUser(ServletUtils.getRequest());
-//            for (FsStoreOrderItemExportVO vo : list) {
-//                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
-//                    try {
-//                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
-//                        BeanUtil.copyProperties(orderProductDTO, vo);
-//                    } catch (Exception e) {
-//                    }
-//                }
-//                //
-//                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
-//                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
-//                } else {
-//                    vo.setPayPostage(BigDecimal.ZERO);
-//                    vo.setCost(BigDecimal.ZERO);
-//                    vo.setFPrice(BigDecimal.ZERO);
-//                    vo.setBarCode("");
-//                    vo.setCateName("");
-//                    vo.setBankTransactionId("");
-//                }
-//            }
-//        }
-//        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
-//        return util.exportExcel(list, "订单明细数据");
-        throw new RuntimeException("未实现");
+        if ("".equals(param.getBeginTime()) && "".equals(param.getEndTime())){
+            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);
+        com.fs.config.saas.ProjectConfig projectConfig = com.fs.config.saas.ProjectConfig.getFromDB(sysConfigMapper);
+        if(projectConfig != null && projectConfig.getCloudHost() != null && "北京卓美".equals(projectConfig.getCloudHost().getCompanyName())){
+            List<FsStoreOrderItemExportZMVO> zmvoList = list.stream()
+                    .map(vo -> {
+                        FsStoreOrderItemExportZMVO zmvo = new FsStoreOrderItemExportZMVO();
+                        try {
+                            BeanUtil.copyProperties( vo,zmvo);
+                        } catch (Exception e) {
+                            // 处理异常
+                            e.printStackTrace();
+                        }
+                        return zmvo;
+                    })
+                    .collect(Collectors.toList());
+            //对手机号脱敏
+            if (zmvoList != null) {
+                LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+                for (FsStoreOrderItemExportZMVO vo : zmvoList) {
+                    if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                        try {
+                            StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                            BeanUtil.copyProperties(orderProductDTO, vo);
+                        } catch (Exception e) {
+                        }
+                    }
+                    //
+                    if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                        vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                    } else {
+                        vo.setPayPostage(BigDecimal.ZERO);
+                        vo.setCost(BigDecimal.ZERO);
+                        vo.setFPrice(BigDecimal.ZERO);
+                        vo.setBarCode("");
+                        vo.setCateName("");
+                        vo.setBankTransactionId("");
+                    }
+                }
+            }
+            ExcelUtil<FsStoreOrderItemExportZMVO> util = new ExcelUtil<FsStoreOrderItemExportZMVO>(FsStoreOrderItemExportZMVO.class);
+            return util.exportExcel(zmvoList, "订单明细数据");
+        }
+
+        //对手机号脱敏
+        if (list != null) {
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+            for (FsStoreOrderItemExportVO vo : list) {
+                if (!StringUtils.isEmpty(vo.getJsonInfo())) {
+                    try {
+                        StoreOrderProductDTO orderProductDTO = JSONObject.parseObject(vo.getJsonInfo(), StoreOrderProductDTO.class);
+                        BeanUtil.copyProperties(orderProductDTO, vo);
+                    } catch (Exception e) {
+                    }
+                }
+                //
+                if ((loginUser.getPermissions().contains("his:storeAfterSales:finance") || loginUser.getPermissions().contains("*:*:*") ) && !Objects.isNull(vo.getCost())) {
+                    vo.setFPrice(vo.getCost().multiply(BigDecimal.valueOf(vo.getTotalNum())));
+                } else {
+                    vo.setPayPostage(BigDecimal.ZERO);
+                    vo.setCost(BigDecimal.ZERO);
+                    vo.setFPrice(BigDecimal.ZERO);
+                    vo.setBarCode("");
+                    vo.setCateName("");
+                    vo.setBankTransactionId("");
+                }
+            }
+        }
+        ExcelUtil<FsStoreOrderItemExportVO> util = new ExcelUtil<FsStoreOrderItemExportVO>(FsStoreOrderItemExportVO.class);
+        return util.exportExcel(list, "订单明细数据");
     }
 
     @GetMapping("/orderItemsNum")
@@ -1006,13 +1001,12 @@ public class FsStoreOrderScrmController extends BaseController {
     @PostMapping("/editErpPhone")
     public AjaxResult editErpPhone(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
     {
-//        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
-//        List<String> erpPhone = param.getErpPhone();
-//        if (erpPhone == null || erpPhone.isEmpty()) {
-//            return AjaxResult.error("请选择手机号");
-//        }
-//        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
-        throw new RuntimeException("未实现");
+        param.setOpeName(SecurityUtils.getLoginUser().getUser().getNickName());
+        List<String> erpPhone = param.getErpPhone();
+        if (erpPhone == null || erpPhone.isEmpty()) {
+            return AjaxResult.error("请选择手机号");
+        }
+        return toAjax(fsStoreOrderService.batchUpdateErpByOrderIds(param));
     }
 
     /**
@@ -1035,56 +1029,55 @@ public class FsStoreOrderScrmController extends BaseController {
     @PostMapping(value = "/batchCreateErpOrder")
     public R batchCreateErpOrder(@RequestBody FsStoreOrderScrmSetErpPhoneParam param)
     {
-//        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
-//        String loginAccount = param.getLoginAccount();
-//        if (StringUtils.isBlank(loginAccount)){
-//            return R.error("未选择推送erp账户");
-//        }
-//        FsStoreOrderDf df = getDFInfo(loginAccount);
-//        if (df.getLoginAccount() == null){
-//            return R.error("未查询到所选erp账户");
-//        }
-//        List<Long> orderIds = param.getOrderIds();
-//        if (orderIds  == null || orderIds.isEmpty()) {
-//            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);
-//            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
-//        }
-//        if (orderIds.isEmpty()){
-//            return R.ok();
-//        }
-//        orderIds.forEach(orderId->{
-//            try {
-//                df.setOrderId(orderId);
-//                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
-//                if (temp == null){
-//                    df.setParcelQuantity(param.getParcelQuantity()); //设置包裹数量
-//                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
-//                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
-//                            nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
-//                }
-//                fsStoreOrderService.createOmsOrder(orderId);
-//                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
-//                        nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
-//            } catch (ParseException e) {
-//                throw new RuntimeException(e);
-//            }
-//
-//        });
-//        return R.ok();
-        throw new RuntimeException("未实现");
+        String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+        String loginAccount = param.getLoginAccount();
+        if (StringUtils.isBlank(loginAccount)){
+            return R.error("未选择推送erp账户");
+        }
+        FsStoreOrderDf df = getDFInfo(loginAccount);
+        if (df.getLoginAccount() == null){
+            return R.error("未查询到所选erp账户");
+        }
+        List<Long> orderIds = param.getOrderIds();
+        if (orderIds  == null || orderIds.isEmpty()) {
+            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);
+            orderIds = list.stream().map(FsStoreOrderVO::getId).collect(Collectors.toList());
+        }
+        if (orderIds.isEmpty()){
+            return R.ok();
+        }
+        orderIds.forEach(orderId->{
+            try {
+                df.setOrderId(orderId);
+                FsStoreOrderDf temp = fsStoreOrderDfService.selectFsStoreOrderDfByOrderId(df.getOrderId());
+                if (temp == null){
+                    df.setParcelQuantity(param.getParcelQuantity()); //设置包裹数量
+                    fsStoreOrderDfService.insertFsStoreOrderDf(df);
+                    fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getValue(),
+                            nickName + " " +FsStoreOrderLogEnum.SET_PUSH_ACCOUNT.getDesc() + ":" + df.getLoginAccount());
+                }
+                fsStoreOrderService.createOmsOrder(orderId);
+                fsStoreOrderLogsService.create(orderId, FsStoreOrderLogEnum.PUSH_ORDER_ERP.getValue(),
+                        nickName + " " +FsStoreOrderLogEnum.PUSH_ORDER_ERP.getDesc() + ":" + df.getLoginAccount());
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+
+        });
+        return R.ok();
     }