From 5f29f86819e170faaf0159f730d83ad19c8bd2a7 Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Fri, 20 Aug 2021 14:27:37 +0800
Subject: [PATCH] 新增门店是否只能取消待付款订单,服务单

---
 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/projService-list.html |    2 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/order/sysOrder-list.html    |    2 
 zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java                           |    8 ++
 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java              |   94 +++++++++++++++++++------------
 zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java        |   24 +++++++
 zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java            |    5 +
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml                      |    2 
 7 files changed, 96 insertions(+), 41 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
index ff36166..5fecc8b 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java
@@ -579,6 +579,11 @@
     public static final String SHOP_MANAGE_JJCPAS_CONSUME = "shopManageJjcpasConsume";
 
     /**
+     * 门店是否只能取消待付款订单,服务单
+     */
+    public static final String SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER = "shopManageAbleCancelDfkOrder";
+
+    /**
      * 赠送金额购买产品算赠送购买
      */
     public static final String SHOP_MANAGE_GIFTISFREE = "shopManageGiftisfree";
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..2d1d759 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
@@ -12,7 +12,10 @@
 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;
@@ -96,6 +99,9 @@
     RabiitMqTemplate rabiitMqTemplate;
 
     @Autowired
+    private BusParameterSettingsDao busParameterSettingsDao;
+
+    @Autowired
     private SysProjServicesDao sysProjServicesDao;
 
     @Value("${evn}")
@@ -118,7 +124,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 +147,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());
+        rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, uniformMsgParam.toJSONString());
 
 
         //处理用户购买的产品
@@ -161,10 +167,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("充值订单请直接冲负数金额退款!");
                 }
             }
@@ -189,7 +195,6 @@
         //处理用户购买的产品
         return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单保存成功");
     }
-
 
 
     /**
@@ -232,12 +237,12 @@
     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;
     }
@@ -269,7 +274,7 @@
         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, "修改成功");
@@ -288,7 +293,7 @@
         MoneyCardUse cardUseInfo = cardUseService.findByVipId(order.getVipId());
 
         if (cardUseInfo == null) {
-            cardUseInfo=sysVipInfoService.addVipDefaultCard(order.getVipId());
+            cardUseInfo = sysVipInfoService.addVipDefaultCard(order.getVipId());
         }
 
         //打印需求加入门店信息
@@ -298,7 +303,6 @@
 
         //查询会有所有有效的会员卡
         result.putInMap("totalMoney", moneyCardUseDao.selectVipCardTotalMoney(order.getVipId()));
-
 
 
         return result;
@@ -378,13 +382,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 +428,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 +448,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,15 +472,32 @@
         }
 
         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")
@@ -494,17 +515,16 @@
      */
     @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
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
index 20ffba2..8c82ce0 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/ProjServiceController.java
@@ -14,7 +14,10 @@
 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.SysUsersService;
 import com.matrix.system.common.tools.DataAuthUtil;
@@ -478,6 +481,8 @@
         }
     }
 
+    @Autowired
+    BusParameterSettingsDao busParameterSettingsDao;
 
     /**
      * 根据id取消预约
@@ -485,6 +490,24 @@
     @RequestMapping(value = "/cancelOrder")
     public @ResponseBody
     AjaxResult cancelOrder(SysProjServices services) {
+
+        SysProjServices checkProjServices = sysProjServicesDao.selectById(services.getId());
+        BusParameterSettings shopManageAbleCancelDfkOrder = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER, checkProjServices.getCompanyId());
+        if (StringUtils.isNotBlank(shopManageAbleCancelDfkOrder.getParamValue())
+                && shopManageAbleCancelDfkOrder.getParamValue().equals(Dictionary.FLAG_YES)) {
+            if (!checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DYY)
+            && !checkProjServices.getState().equals(Dictionary.SERVICE_STATU_DQR)) {
+                return new AjaxResult(AjaxResult.STATUS_FAIL, "您只能取消待预约订单");
+            }
+        }
+       return erpCancelOrder(services);
+    }
+    /**
+     * 根据id取消预约
+     */
+    @RequestMapping(value = "/erpCancelOrder")
+    public @ResponseBody
+    AjaxResult erpCancelOrder(SysProjServices services) {
         int i = sysProjServicesService.modifyCancelProjServices(services);
         if (i > 0) {
             return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功");
@@ -492,7 +515,6 @@
             return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败");
         }
     }
-
 
     /**
      * 设置服务单划扣成功
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
index 2a1b757..957d259 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -924,7 +924,7 @@
             left join shopping_goods f on e.proj_id=f.id
         where 1=1 and a.type='套餐' and a.TAOCAN_ID IS NULL
         <if test="record.queryKey != null and record.queryKey !='' ">
-            and (instr(b.name, #{record.queryKey}) or instr(b.zjm, #{record.queryKey}) or instr(goods_no, #{record.queryKey}))
+            and (instr(b.name, #{record.queryKey}) or instr(b.zjm, #{record.queryKey}) or instr(b.goods_no, #{record.queryKey}))
         </if>
         <if test="record.isOver != null and record.isOver !='' ">
             and a.IS_OVER = #{record.isOver}
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/projService-list.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/projService-list.html
index 3126f80..c1f81ad 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/projService-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/projService-list.html
@@ -138,7 +138,7 @@
         layer.confirm('确定取消此订单?', {
             btn: ['确认', '取消'] //可以无限个按钮
         }, function(index, layero){
-            $.post(basePath+'/admin/projService/cancelOrder?id='+id, {}, function(data){
+            $.post(basePath+'/admin/projService/erpCancelOrder?id='+id, {}, function(data){
                 parent.layer.msg(data.info,{icon: 1});
                 layer.closeAll();
                 myGrid.serchData();
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/sysOrder-list.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/sysOrder-list.html
index bef684f..eb8abf4 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/sysOrder-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/order/sysOrder-list.html
@@ -150,7 +150,7 @@
         layer.confirm('确定取消此订单?', {
                 btn: ['确认', '取消'] //可以无限个按钮
             }, function(index, layero){
-                $.post(basePath+'/admin/order/cancelOrder?id='+id+'&del=0', {}, function(data){
+                $.post(basePath+'/admin/order/erpCancelOrder?id='+id+'&del=0', {}, function(data){
                     if (data.status == '200') {
                         parent.layer.msg(data.info,{icon: 1});
                     } else {
diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
index 762da8b..a3fab25 100644
--- a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
+++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
@@ -98,6 +98,14 @@
 		newSettings.add(newSetting7);
 
 
+		ParameterSettings newSetting8=new ParameterSettings();
+		newSetting8.setCode(AppConstance.SHOP_MANAGE_ABLE_CANCEL_DFK_ORDER);
+		newSetting8.setName("门店是否只能取消待付款订单,服务单");
+		newSetting8.setType(1);
+		newSetting8.setCategory("店务配置");
+		newSettings.add(newSetting8);
+
+
 		for (ParameterSettings newSetting : newSettings) {
 			List<ParameterSettings> parameterSettings = parameterSettingsDao.selectByModel(newSetting);
 			if(CollectionUtil.isEmpty(parameterSettings)){

--
Gitblit v1.9.1