|  |  | 
 |  |  | import com.matrix.core.tools.excl.ExcelSheetPO; | 
 |  |  | import com.matrix.core.tools.excl.ExcelUtil; | 
 |  |  | import com.matrix.core.tools.excl.ExcelVersion; | 
 |  |  | import com.matrix.system.common.bean.BusParameterSettings; | 
 |  |  | import com.matrix.system.common.bean.SysUsers; | 
 |  |  | import com.matrix.system.common.constance.AppConstance; | 
 |  |  | import com.matrix.system.common.dao.BusParameterSettingsDao; | 
 |  |  | import com.matrix.system.common.dao.SysCompanyDao; | 
 |  |  | import com.matrix.system.common.tools.DataAuthUtil; | 
 |  |  | import com.matrix.system.common.tools.ResponseHeadUtil; | 
 |  |  | 
 |  |  |     RabiitMqTemplate rabiitMqTemplate; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private BusParameterSettingsDao busParameterSettingsDao; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SysProjServicesDao sysProjServicesDao; | 
 |  |  |  | 
 |  |  |     @Value("${evn}") | 
 |  |  | 
 |  |  |             total = total.add(new BigDecimal(item.getPrice() * item.getCount())); | 
 |  |  |         } | 
 |  |  |         SysOrder sysOrderResult = new SysOrder(); | 
 |  |  |         sysOrderResult.setZkTotal(zkTotal.setScale(2,BigDecimal.ROUND_DOWN).doubleValue()); | 
 |  |  |         sysOrderResult.setZkTotal(zkTotal.setScale(2, BigDecimal.ROUND_DOWN).doubleValue()); | 
 |  |  |         sysOrderResult.setTotal(total.doubleValue()); | 
 |  |  |  | 
 |  |  |         return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrderResult)); | 
 |  |  | 
 |  |  |         orderService.updateReceiptMoney(sysOrder); | 
 |  |  |  | 
 |  |  |         //发送微信公众号提醒 | 
 |  |  |         UniformMsgParam uniformMsgParam=new UniformMsgParam(user.getCompanyId(),UniformMsgParam.GZH_GMCG); | 
 |  |  |         uniformMsgParam.put("orderId",sysOrder.getId()); | 
 |  |  |         rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString()); | 
 |  |  |         UniformMsgParam uniformMsgParam = new UniformMsgParam(user.getCompanyId(), UniformMsgParam.GZH_GMCG); | 
 |  |  |         uniformMsgParam.put("orderId", sysOrder.getId()); | 
 |  |  |         rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, uniformMsgParam.toJSONString()); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         //处理用户购买的产品 | 
 |  |  | 
 |  |  |     @ResponseBody | 
 |  |  |     public AjaxResult refundOrder(@RequestBody SysOrder sysOrder) { | 
 |  |  |         //储值卡订单不能通过退款渠道退款 | 
 |  |  |         if(CollectionUtils.isNotEmpty(sysOrder.getItems())){ | 
 |  |  |         if (CollectionUtils.isNotEmpty(sysOrder.getItems())) { | 
 |  |  |             List<SysOrderItem> orderItem = orderItemService.findByOrderId(sysOrder.getItems().get(0).getOrderId()); | 
 |  |  |             if(orderItem.size()==1){ | 
 |  |  |                 if(orderItem.get(0).getShoppingGoods().getCode().equals("vipCzk")){ | 
 |  |  |             if (orderItem.size() == 1) { | 
 |  |  |                 if (orderItem.get(0).getShoppingGoods().getCode().equals("vipCzk")) { | 
 |  |  |                     return AjaxResult.buildFailInstance("充值订单请直接冲负数金额退款!"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |         //处理用户购买的产品 | 
 |  |  |         return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单保存成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |     public @ResponseBody | 
 |  |  |     ModelAndView printOrder(SysOrder order) throws GlobleException { | 
 |  |  |         ModelAndView mv = new ModelAndView("admin/hive/beautySalon/print-order"); | 
 |  |  |         SysUsers user=(SysUsers)WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
 |  |  |          String comRegisterCode = companyDao.selectById(user.getCompanyId()).getComRegisterCode(); | 
 |  |  |         if(StringUtils.isNotBlank(comRegisterCode)){ | 
 |  |  |             mv.addObject("page",comRegisterCode); | 
 |  |  |         }else { | 
 |  |  |             mv.addObject("page","taiyan"); | 
 |  |  |         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
 |  |  |         String comRegisterCode = companyDao.selectById(user.getCompanyId()).getComRegisterCode(); | 
 |  |  |         if (StringUtils.isNotBlank(comRegisterCode)) { | 
 |  |  |             mv.addObject("page", comRegisterCode); | 
 |  |  |         } else { | 
 |  |  |             mv.addObject("page", "taiyan"); | 
 |  |  |         } | 
 |  |  |         return mv; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         achieveNew.setDatatime(sysOrder.getPayTime()); | 
 |  |  |         achieveNewService.modifyAchieveTime(achieveNew); | 
 |  |  |         //更新收款流水时间 | 
 |  |  |         sysOrderFlowDao.updateTimeByOrderId(sysOrder.getId(),sysOrder.getPayTime()); | 
 |  |  |         sysOrderFlowDao.updateTimeByOrderId(sysOrder.getId(), sysOrder.getPayTime()); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); | 
 |  |  | 
 |  |  |         MoneyCardUse cardUseInfo = cardUseService.findByVipId(order.getVipId()); | 
 |  |  |  | 
 |  |  |         if (cardUseInfo == null) { | 
 |  |  |             cardUseInfo=sysVipInfoService.addVipDefaultCard(order.getVipId()); | 
 |  |  |             cardUseInfo = sysVipInfoService.addVipDefaultCard(order.getVipId()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //打印需求加入门店信息 | 
 |  |  | 
 |  |  |  | 
 |  |  |         //查询会有所有有效的会员卡 | 
 |  |  |         result.putInMap("totalMoney", moneyCardUseDao.selectVipCardTotalMoney(order.getVipId())); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         return result; | 
 |  |  | 
 |  |  |     @ResponseBody | 
 |  |  |     public AjaxResult findOrderDetailByIdOrNo(SysOrder orderVo) { | 
 |  |  |         // 根据id查到对应的订单信息 | 
 |  |  |         SysOrder order=null; | 
 |  |  |         if(orderVo.getId()!=null){ | 
 |  |  |             order  = orderService.findById(orderVo.getId()); | 
 |  |  |         }else if(StringUtils.isNotBlank(orderVo.getOrderNo())){ | 
 |  |  |         SysOrder order = null; | 
 |  |  |         if (orderVo.getId() != null) { | 
 |  |  |             order = orderService.findById(orderVo.getId()); | 
 |  |  |         } else if (StringUtils.isNotBlank(orderVo.getOrderNo())) { | 
 |  |  |             List<SysOrder> byModel = orderService.findByModel(orderVo); | 
 |  |  |             if(byModel.size()==1){ | 
 |  |  |                 order=orderService.findById(byModel.get(0).getId()); | 
 |  |  |             if (byModel.size() == 1) { | 
 |  |  |                 order = orderService.findById(byModel.get(0).getId()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(order.getId()); | 
 |  |  | 
 |  |  |     @RequestMapping(value = "/orderItem") | 
 |  |  |     public String orderItem(SysOrder orderVo) { | 
 |  |  |  | 
 |  |  |         if(orderVo.getId()!=null){ | 
 |  |  |         if (orderVo.getId() != null) { | 
 |  |  |             WebUtil.getRequest().setAttribute("orderParam", orderVo.getId()); | 
 |  |  |             WebUtil.getRequest().setAttribute("orderId", orderVo.getId()); | 
 |  |  |         }else if(StringUtils.isNotBlank(orderVo.getOrderNo())){ | 
 |  |  |         } else if (StringUtils.isNotBlank(orderVo.getOrderNo())) { | 
 |  |  |             WebUtil.getRequest().setAttribute("orderParam", orderVo.getOrderNo()); | 
 |  |  |             WebUtil.getRequest().setAttribute("orderNo", orderVo.getOrderNo()); | 
 |  |  |         } | 
 |  |  | 
 |  |  |     } | 
 |  |  | //=======================================页面转发END================================== | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 2021-08-20 新增:erp系统取消订单接口,不做订单状态校验 | 
 |  |  |      * 取消订单 | 
 |  |  |      */ | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     @RequestMapping(value = "/cancelOrder") | 
 |  |  |     @RequestMapping(value = "/erpCancelOrder") | 
 |  |  |     public @ResponseBody | 
 |  |  |     AjaxResult cancelOrder(Long id, Integer del) { | 
 |  |  |     AjaxResult erpCancelOrder(Long id) { | 
 |  |  |  | 
 |  |  |         AjaxResult result = new AjaxResult(); | 
 |  |  |         SysOrder order = orderService.findById(id); | 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         orderService.cancelOrder(id); | 
 |  |  | //        if (del > 0) { | 
 |  |  | //            orderService.removeById(id); | 
 |  |  | //            result.setInfo("删除成功!"); | 
 |  |  | //        } else { | 
 |  |  |             result.setInfo("取消成功!"); | 
 |  |  | //        } | 
 |  |  |  | 
 |  |  |         result.setInfo("取消成功!"); | 
 |  |  |  | 
 |  |  |         result.setStatus(AjaxResult.STATUS_SUCCESS); | 
 |  |  |  | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 取消订单 | 
 |  |  |      */ | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     @RequestMapping(value = "/cancelOrder") | 
 |  |  |     public @ResponseBody | 
 |  |  |     AjaxResult cancelOrder(Long id, Integer del) { | 
 |  |  |  | 
 |  |  |         SysOrder order = orderService.findById(id); | 
 |  |  |         BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, order.getCompanyId()); | 
 |  |  |         if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue()) | 
 |  |  |                 && shopManageAbleCancelDfkOrder.getParamValue().equals(Dictionary.FLAG_YES)) { | 
 |  |  |             if (!Dictionary.ORDER_STATU_DFK.equals(order.getStatu())) { | 
 |  |  |                 return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待付款订单"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return erpCancelOrder(id); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/exportExcel") | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @RequestMapping(value = "/erpExportExcel") | 
 |  |  |     public void erpExportExcel(ModelMap model, HttpServletRequest request, HttpServletResponse response, | 
 |  |  |                        SysOrder sysOrder) throws Exception { | 
 |  |  |                                SysOrder sysOrder) throws Exception { | 
 |  |  |         doExportOrder(response, sysOrder); | 
 |  |  |         return; | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 执行订单导出,总部和门店共用,但是搜索条件不一样 | 
 |  |  |      * | 
 |  |  |      * @param response | 
 |  |  |      * @param sysOrder | 
 |  |  |      * @throws IOException |