From 1eedb8a57c2eb5c9953dcf058184ebdc6987fbf5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 24 May 2022 15:14:21 +0800
Subject: [PATCH] Merge branch 'feature/订单服务单代码改造' into alpha
---
zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java | 259 +++++++++++++++++++++++++++++----------------------
1 files changed, 148 insertions(+), 111 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 f72043c..cd34e93 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,7 +1,7 @@
package com.matrix.system.hive.action;
-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;
@@ -11,21 +11,26 @@
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.constance.SystemConstance;
+import com.matrix.system.enums.BooleanEnum;
+import com.matrix.system.enums.OperationButtonEnum;
+import com.matrix.system.enums.OperationFunctionEnum;
+import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.bean.*;
-import com.matrix.system.hive.dao.MoneyCardUseDao;
-import com.matrix.system.hive.dao.SysOrderDao;
-import com.matrix.system.hive.dao.SysOrderItemDao;
-import com.matrix.system.hive.dao.SysShopInfoDao;
+import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.plugin.util.CollectionUtils;
-import com.matrix.system.hive.pojo.ShoppingCarItem;
-import com.matrix.system.hive.pojo.ShoppingCarItemsVo;
import com.matrix.system.hive.service.*;
+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;
@@ -33,6 +38,7 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -43,7 +49,6 @@
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Date;
import java.util.List;
/**
@@ -57,6 +62,11 @@
public class OrderController extends BaseController {
@Resource
private SysOrderService orderService;
+ @Autowired
+ ShoppingGoodsDao shoppingGoodsDao;
+
+ @Autowired
+ private CodeService codeService;
@Autowired
private SysOrderItemDao orderItemDao;
@@ -86,9 +96,22 @@
private SysOrderFlowService sysOrderFlowService;
@Autowired
- RabiitMqTemplate rabiitMqTemplate;
- @Value("${evn}")
- private String evn;
+ private SysOrderFlowDao sysOrderFlowDao;
+
+
+ @Autowired
+ private BusParameterSettingsDao busParameterSettingsDao;
+
+ @Autowired
+ private SysProjServicesDao sysProjServicesDao;
+
+ @Autowired
+ private AsyncMessageManager asyncMessageManager;
+
+
+ @Autowired
+ private OperationLogService operationLogService;
+
/**
* 计算订单金额
@@ -107,7 +130,7 @@
total = total.add(new BigDecimal(item.getPrice() * item.getCount()));
}
SysOrder sysOrderResult = new SysOrder();
- sysOrderResult.setZkTotal(zkTotal.doubleValue());
+ sysOrderResult.setZkTotal(zkTotal.setScale(2, BigDecimal.ROUND_DOWN).doubleValue());
sysOrderResult.setTotal(total.doubleValue());
return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrderResult));
@@ -123,14 +146,16 @@
AjaxResult payOrder(@RequestBody SysOrder sysOrder) {
SysUsers user = getMe();
sysOrder.setShopId(user.getShopId());
+ sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL);
+ sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N);
//校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
sysOrder = orderService.checkAndSaveOrder(sysOrder);
- orderService.updateReceiptMoney(sysOrder);
+ orderService.payOrder(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);
//处理用户购买的产品
@@ -146,29 +171,17 @@
*/
@RequestMapping(value = "/refundOrder")
@ResponseBody
- @Transactional(rollbackFor = Exception.class)
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("充值订单请直接冲负数金额退款!");
}
}
}
-
-
-
- SysUsers user = getMe();
- sysOrder.setShopId(user.getShopId());
- sysOrder.setStatu(Dictionary.ORDER_STATU_TK);
- sysOrder.setOrderTime(new Date());
-
-
- //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
- sysOrder = orderService.checkAndSaveOrder(sysOrder);
- orderService.refundOrderMoney(sysOrder);
+ orderService.orderTk(sysOrder);
//处理用户购买的产品
return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功");
}
@@ -189,50 +202,6 @@
return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单保存成功");
}
- /**
- * 新建订单
- *
- * @author jiangyouyao
- */
- @RequestMapping(value = "/addOrder")
- public @ResponseBody
- AjaxResult addOrder(ShoppingCarItemsVo car) {
-
- List<ShoppingCarItem> sessionCarItems = (List<ShoppingCarItem>) WebUtil.getSession().getAttribute(
- SystemConstance.SHOPPING_CAR);
-
- List<ShoppingCarItem> carItems = new ArrayList<>();
-
- // 设置购车中的具体类型信息,过滤没有被选中的商品
- for (ShoppingCarItem carItem : car.getCarItems()) {
-
- for (ShoppingCarItem sessionCar : sessionCarItems) {
-
- if (carItem.getId().equals(sessionCar.getId())) {
- //已最后提交的数量为准
- sessionCar.setCount(carItem.getCount());
- carItems.add(sessionCar);
- break;
- }
- }
- }
- //设置过滤后的购物车条目
- car.setCarItems(carItems);
-
- SysVipInfo info = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
- car.setVipId(info.getId());
-
- // 添加新订单
- int i = orderService.createOrder(WebUtil.getSession(), car);
-
- if (i > 0) {
- WebUtil.getSession().removeAttribute(SystemConstance.SHOPPING_CAR);
- return new AjaxResult(AjaxResult.STATUS_SUCCESS, "下单成功");
- } else {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "下单添加失败");
- }
- }
-
/**
* 列表显示
@@ -247,7 +216,10 @@
if (StringUtils.isBlank(pageVo.getOrder())) {
pageVo.setOrder("desc");
}
- sysOrder.setShopId(getMe().getShopId());
+ if (!DataAuthUtil.hasAllShopAuth()) {
+ sysOrder.setShopId(getMe().getShopId());
+ }
+ sysOrder.setCompanyId(getMe().getCompanyId());
return new AjaxResult(AjaxResult.STATUS_SUCCESS, orderService.findInPage(sysOrder, pageVo),
orderService.findTotal(sysOrder));
}
@@ -262,14 +234,34 @@
return showList(sysOrder, pageVo);
}
+ @Resource
+ SysCompanyDao companyDao;
+
+ /**
+ * 打印订单
+ */
+ @RequestMapping(value = "/printOrder")
+ public @ResponseBody
+ ModelAndView printOrder(SysOrder order) throws GlobleException {
+ ModelAndView mv = new ModelAndView("admin/hive/beautySalon/print-order");
+ 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;
+ }
+
/**
* 收款
*/
- @RequestMapping(value = "sk")
+ @RequestMapping(value = "/sk")
public @ResponseBody
AjaxResult sk(SysOrder order) throws GlobleException {
- orderService.updateReceiptMoney(order);
+ orderService.payOrder(order);
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "收款成功");
}
@@ -279,6 +271,7 @@
*/
@RequestMapping(value = "/updateOrderTime")
public @ResponseBody
+ @Transactional(rollbackFor = Exception.class)
AjaxResult updateOrderTime(SysOrder sysOrder) {
sysOrderDao.updateOrderTime(sysOrder.getPayTime(), sysOrder.getId());
@@ -288,6 +281,19 @@
achieveNew.setOrderId(sysOrder.getId());
achieveNew.setDatatime(sysOrder.getPayTime());
achieveNewService.modifyAchieveTime(achieveNew);
+ //更新收款流水时间
+ 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, "修改成功");
}
@@ -304,7 +310,7 @@
MoneyCardUse cardUseInfo = cardUseService.findByVipId(order.getVipId());
if (cardUseInfo == null) {
- cardUseInfo=sysVipInfoService.addVipDefaultCard(order.getVipId());
+ cardUseInfo = sysVipInfoService.addVipDefaultCard(order.getVipId());
}
//打印需求加入门店信息
@@ -314,7 +320,6 @@
//查询会有所有有效的会员卡
result.putInMap("totalMoney", moneyCardUseDao.selectVipCardTotalMoney(order.getVipId()));
-
return result;
@@ -394,13 +399,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());
@@ -440,10 +445,12 @@
@RequestMapping(value = "/orderItem")
public String orderItem(SysOrder orderVo) {
- if(orderVo.getId()!=null){
+ if (orderVo.getId() != null) {
WebUtil.getRequest().setAttribute("orderParam", orderVo.getId());
- }else if(StringUtils.isNotBlank(orderVo.getOrderNo())){
+ WebUtil.getRequest().setAttribute("orderId", orderVo.getId());
+ } else if (StringUtils.isNotBlank(orderVo.getOrderNo())) {
WebUtil.getRequest().setAttribute("orderParam", orderVo.getOrderNo());
+ WebUtil.getRequest().setAttribute("orderNo", orderVo.getOrderNo());
}
return "admin/hive/beautySalon/orderXq-form";
}
@@ -458,6 +465,32 @@
}
//=======================================页面转发END==================================
+ /**
+ * 2021-08-20 新增:erp系统取消订单接口,不做订单状态校验
+ * 取消订单
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @RequestMapping(value = "/erpCancelOrder")
+ public @ResponseBody
+ AjaxResult erpCancelOrder(Long id) {
+
+ AjaxResult result = new AjaxResult();
+ SysOrder order = orderService.findById(id);
+ if (order == null) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!");
+ }
+
+
+
+ orderService.cancelOrder(id);
+
+ result.setInfo("取消成功!");
+
+ result.setStatus(AjaxResult.STATUS_SUCCESS);
+
+ return result;
+ }
+
/**
* 取消订单
@@ -467,28 +500,24 @@
public @ResponseBody
AjaxResult cancelOrder(Long id, Integer del) {
- AjaxResult result = new AjaxResult();
SysOrder order = orderService.findById(id);
- if (order == null) {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "订单不存在!");
- }
- orderService.cancelOrder(id);
- if (del > 0) {
- orderService.removeById(id);
- result.setInfo("删除成功!");
- } else {
- result.setInfo("取消成功!");
- }
- result.setStatus(AjaxResult.STATUS_SUCCESS);
+ 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 (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
+ && BooleanEnum.TRUE.getValue() == shopManageAbleCancelDfkOrder.getIntParamValue()) {
- return result;
+ 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;
@@ -499,28 +528,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);
@@ -537,6 +573,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