From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 27 May 2022 19:48:02 +0800 Subject: [PATCH] Merge branch 'developer' into hive2.0 --- zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java | 140 ++++++++++++++++++++++++++++++---------------- 1 files changed, 92 insertions(+), 48 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java index f99ea96..36f8eb7 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java @@ -1,8 +1,8 @@ package com.matrix.system.hive.action; import cn.hutool.core.collection.CollUtil; -import com.matrix.component.rabbitmq.RabiitMqTemplate; -import com.matrix.core.constance.MatrixConstance; +import com.alibaba.fastjson.JSON; +import com.matrix.component.asyncmessage.AsyncMessageManager; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; @@ -12,19 +12,24 @@ 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.service.OperationLogService; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.common.tools.ResponseHeadUtil; import com.matrix.system.constance.Dictionary; +import com.matrix.system.enums.OperationButtonEnum; +import com.matrix.system.enums.OperationFunctionEnum; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.service.*; -import com.matrix.system.shopXcx.mqTask.MQTaskRouting; +import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; import com.matrix.system.wechart.templateMsg.UniformMsgParam; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; @@ -92,14 +97,20 @@ @Autowired private SysOrderFlowDao sysOrderFlowDao; + @Autowired - RabiitMqTemplate rabiitMqTemplate; + private BusParameterSettingsDao busParameterSettingsDao; @Autowired private SysProjServicesDao sysProjServicesDao; - @Value("${evn}") - private String evn; + @Autowired + private AsyncMessageManager asyncMessageManager; + + + @Autowired + private OperationLogService operationLogService; + /** * 计算订单金额 @@ -118,7 +129,7 @@ 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)); @@ -141,9 +152,9 @@ 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()); + asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); //处理用户购买的产品 @@ -161,10 +172,10 @@ @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("充值订单请直接冲负数金额退款!"); } } @@ -191,7 +202,6 @@ } - /** * 列表显示 */ @@ -208,6 +218,7 @@ if (!DataAuthUtil.hasAllShopAuth()) { sysOrder.setShopId(getMe().getShopId()); } + sysOrder.setCompanyId(getMe().getCompanyId()); return new AjaxResult(AjaxResult.STATUS_SUCCESS, orderService.findInPage(sysOrder, pageVo), orderService.findTotal(sysOrder)); } @@ -226,18 +237,18 @@ SysCompanyDao companyDao; /** - * 收款 + * 打印订单 */ @RequestMapping(value = "/printOrder") 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 = getMe(); + String comRegisterCode = companyDao.selectById(user.getCompanyId()).getComRegisterCode(); + if (StringUtils.isNotBlank(comRegisterCode)) { + mv.addObject("page", comRegisterCode); + } else { + mv.addObject("page", "taiyan"); } return mv; } @@ -259,6 +270,7 @@ */ @RequestMapping(value = "/updateOrderTime") public @ResponseBody + @Transactional(rollbackFor = Exception.class) AjaxResult updateOrderTime(SysOrder sysOrder) { sysOrderDao.updateOrderTime(sysOrder.getPayTime(), sysOrder.getId()); @@ -269,8 +281,17 @@ achieveNew.setDatatime(sysOrder.getPayTime()); achieveNewService.modifyAchieveTime(achieveNew); //更新收款流水时间 - sysOrderFlowDao.updateTimeByOrderId(sysOrder.getId(),sysOrder.getPayTime()); + sysOrderFlowDao.updateTimeByOrderId(sysOrder.getId(), sysOrder.getPayTime()); + //保存单据日志 + sysOrder= sysOrderDao.selectById(sysOrder.getId()); + operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(),getMe().getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.ORDER_UPDATE_TIME, + sysOrder.getId(), + sysOrder.getOrderNo(), + sysOrder.getVipId(), + "更新参数: "+JSON.toJSONString(sysOrder)); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功"); } @@ -288,7 +309,7 @@ MoneyCardUse cardUseInfo = cardUseService.findByVipId(order.getVipId()); if (cardUseInfo == null) { - cardUseInfo=sysVipInfoService.addVipDefaultCard(order.getVipId()); + cardUseInfo = sysVipInfoService.addVipDefaultCard(order.getVipId()); } //打印需求加入门店信息 @@ -298,7 +319,6 @@ //查询会有所有有效的会员卡 result.putInMap("totalMoney", moneyCardUseDao.selectVipCardTotalMoney(order.getVipId())); - return result; @@ -378,13 +398,13 @@ @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()); @@ -424,10 +444,10 @@ @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()); } @@ -444,14 +464,14 @@ } //=======================================页面转发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); @@ -468,22 +488,38 @@ } 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") public void report(ModelMap model, HttpServletRequest request, HttpServletResponse response, SysOrder sysOrder) throws Exception { - SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); - sysOrder.setShopId(sysUsers.getShopId()); + sysOrder.setShopId(getMe().getShopId()); doExportOrder(response, sysOrder); return; @@ -494,28 +530,35 @@ */ @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 */ private void doExportOrder(HttpServletResponse response, SysOrder sysOrder) throws IOException { + + //保存单据日志 + operationLogService.saveOperation(getMe().getCompanyId(), getMe().getShopId(),getMe().getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.EXPORT, + String.format("导出参数:%s" , JSON.toJSONString(sysOrder))); + List<ExcelSheetPO> res = new ArrayList<>(); ExcelSheetPO orderSheet = new ExcelSheetPO(); String title = "订单记录"; orderSheet.setSheetName(title); orderSheet.setTitle(title); - String[] header = {"订单号", "客户姓名", "客户手机", "下单时间", "订单总价", "折后价", "现金付款", "卡付款", "顾问姓名", "所属门店", "订单状态"}; + String[] header = {"订单号", "客户姓名", "客户手机", "下单时间", "订单总价", "折后价", "现金付款", "卡付款", "顾问姓名", "收银员", "所属门店", "订单状态"}; orderSheet.setHeaders(header); //门店只能查询本店自己的订单 List<SysOrder> dataList = orderService.findInPage(sysOrder, null); @@ -532,6 +575,7 @@ temp.add(item.getCashPay()); temp.add(item.getCardPay()); temp.add(item.getStaffName()); + temp.add(item.getCashierName()); temp.add(item.getShopName()); temp.add(item.getStatu()); list.add(temp); -- Gitblit v1.9.1