From caa15383382af86c00f7176c1d24280a7da6d9e2 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sat, 30 Oct 2021 09:38:59 +0800
Subject: [PATCH] 新增自动配料配置

---
 zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java                              |   13 ++-
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java |   72 +++++++++++++++---
 zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java   |   40 ++++++++++
 zq-erp/src/main/java/com/matrix/system/common/constance/AppConstance.java               |    5 +
 zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java         |   48 ++++-------
 zq-erp/src/main/resources/config/application.properties                                 |   12 +-
 6 files changed, 137 insertions(+), 53 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 82a26fc..846a5d8 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
@@ -592,6 +592,11 @@
     public static final String OPEN_SMS_NOTICE = "OPEN_SMS_NOTICE";
 
     /**
+     * 服务单自动配料
+     */
+    public static final String OPEN_SERVICE_ORDER_AUTO_BATCHING = "OPEN_SERVICE_ORDER_AUTO_BATCHING";
+
+    /**
      * 赠送金额购买产品算赠送购买
      */
     public static final String SHOP_MANAGE_GIFTISFREE = "shopManageGiftisfree";
diff --git a/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java b/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java
new file mode 100644
index 0000000..e98dd93
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/common/service/BusParameterSettingService.java
@@ -0,0 +1,40 @@
+package com.matrix.system.common.service;
+
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.SysCompany;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
+import com.matrix.system.score.constant.ScoreSettingConstant;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+@Service
+@AllArgsConstructor
+public class BusParameterSettingService {
+
+    private BusParameterSettingsDao busParameterSettingsDao;
+
+    /**
+     * 判断某个设置是否是开启状态
+     * 未配置,或者无效settingkey都返回false
+     */
+    public boolean isSettingOpen(String settingKey,Long companyId) {
+        BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(settingKey, companyId);
+        return (
+                Objects.nonNull(busParameterSettings)
+                && StringUtils.isNotBlank(busParameterSettings.getParamValue())
+                && AppConstance.IS_Y.equals(busParameterSettings.getParamValue())
+                );
+    }
+
+
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java
index b0f8369..1aa4621 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/TaiYanAliyunSmsService.java
@@ -15,6 +15,7 @@
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.service.BusParameterSettingService;
 import com.matrix.system.hive.bean.SysBeauticianState;
 import com.matrix.system.hive.bean.SysProjServices;
 import com.matrix.system.hive.bean.SysShopInfo;
@@ -48,8 +49,7 @@
 
     SysBeauticianStateService sysBeauticianStateService;
 
-    BusParameterSettingsDao busParameterSettingsDao;
-
+    BusParameterSettingService busParameterSettingService;
     /**
      * 预约成功短信提醒
      *
@@ -58,12 +58,8 @@
     @Async
     public void sendYycgNotice(SysProjServices services) {
         //短信接口为肽妍公司定制,暂时写死
-        if (services.getCompanyId() != 17L) {
-            return;
-        }
-        if (isCloseSmsNotice(services)){
-            return;
-        }
+        if (chackSetting(services)) return;
+
         SysVipInfo sysVipInfo = vipInfoDao.selectById(services.getVipId());
         SysShopInfo shopInfo = shopInfoService.findById(services.getShopId());
         String date = DateUtil.dateFormatStr(new Date(), "yyyy年MM月dd日");
@@ -81,35 +77,14 @@
 
 
     /**
-     * 判断是否开启了短信提醒
-     * @param services
-     * @return
-     */
-    private boolean isCloseSmsNotice(SysProjServices services) {
-        BusParameterSettings openSmsNoticeSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.OPEN_SMS_NOTICE, services.getCompanyId());
-        if (StringUtils.isBlank(openSmsNoticeSetting.getParamValue())
-                || AppConstance.IS_N.equals(openSmsNoticeSetting.getParamValue())) {
-            LogUtil.debug("未开启短信提醒");
-            return true;
-        }
-        return false;
-    }
-
-
-    /**
      * 项目划扣短信提醒
      *
      * @param services
      */
     @Async
     public void sendHkNotice(SysProjServices services) {
-        //短信接口为肽妍公司定制,暂时写死
-       if (services.getCompanyId() != 17L) {
-            return;
-        }
-        if (isCloseSmsNotice(services)){
-            return;
-        }
+        if (chackSetting(services)) return;
+
         SysVipInfo sysVipInfo = vipInfoDao.selectById(services.getVipId());
         SysShopInfo shopInfo = shopInfoService.findById(services.getShopId());
         String date = DateUtil.dateFormatStr(new Date(), "yyyy年MM月dd日");
@@ -136,5 +111,16 @@
 
     }
 
+    private boolean chackSetting(SysProjServices services) {
+        //短信接口为肽妍公司定制,暂时写死
+        if (services.getCompanyId() != 17L) {
+            return true;
+        }
+        if (!busParameterSettingService.isSettingOpen(AppConstance.OPEN_SMS_NOTICE, services.getCompanyId())) {
+            return true;
+        }
+        return false;
+    }
+
 
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
index efb59fb..1a162dc 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -1,12 +1,16 @@
 package com.matrix.system.hive.service.imp;
 
 import cn.hutool.core.collection.CollUtil;
+import com.google.common.collect.Lists;
 import com.matrix.component.asyncmessage.AsyncMessageManager;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.pojo.VerifyResult;
-import com.matrix.core.tools.*;
+import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.ServiceOrderListDto;
 import com.matrix.system.app.vo.ServiceOrderListVo;
 import com.matrix.system.common.bean.BusParameterSettings;
@@ -14,6 +18,7 @@
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.common.dao.SysUsersDao;
+import com.matrix.system.common.service.BusParameterSettingService;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.bean.*;
 import com.matrix.system.hive.dao.*;
@@ -116,12 +121,17 @@
     BusParameterSettingsDao busParameterSettingsDao;
 
     @Autowired
+    BusParameterSettingService busParameterSettingService;
+
+    @Autowired
     ScoreVipDetailService scoreVipDetailService;
 
     @Autowired
     SysVipInfoDao sysVipInfoDao;
 
 
+    @Autowired
+    ShoppingGoodsAssembleDao goodsAssembleDao;
 
     /**
      * 新增服务单 jyy
@@ -257,7 +267,7 @@
             SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getPuseId());
 
             //检查是否已经处于无效状态
-            if(Dictionary.TAOCAN_STATUS_WX.equals(sysProjUse.getStatus())){
+            if (Dictionary.TAOCAN_STATUS_WX.equals(sysProjUse.getStatus())) {
                 return new VerifyResult(true, sysProjUse.getProjName() + "项目已经失效");
             }
 
@@ -447,7 +457,49 @@
             lastList.add(lastWork);
         }
         LastestWorkBeatuistaffDao.batchInsert(lastList);
-        return sysProjServicesDao.update(projServices);
+        int i = sysProjServicesDao.update(projServices);
+
+        //根据配置是否完成自动配料
+        if (busParameterSettingService.isSettingOpen(AppConstance.OPEN_SERVICE_ORDER_AUTO_BATCHING, checkProjServices.getCompanyId())){
+            autoBatching(projServices);
+        }
+
+
+        return i;
+    }
+
+
+    /**
+     * 根据配置是否完成自动配料
+     *
+     * @param projServices
+     */
+    private void autoBatching(SysProjServices projServices) {
+
+        //获取最新的服务单信息
+        projServices=findById(projServices.getId());
+        List<SysBeauticianState> beauticianStateList = beauticianStateDao.selectBySerIds(projServices.getId());
+
+
+        List<SysOutStoreItem> outStoreItemList = Lists.newLinkedList();
+        beauticianStateList.stream().forEach(item -> {
+
+            List<ShoppingGoodsAssemble> shoppingGoodsAssembles = goodsAssembleDao.selectGoodsByShoppingGoodsIdAndType(item.getProjId(), ShoppingGoods.SHOPPING_GOODS_TYPE_JJCP);
+
+            if (CollUtil.isNotEmpty(shoppingGoodsAssembles)) {
+                outStoreItemList.addAll(shoppingGoodsAssembles.stream().map(assemble -> {
+                    SysOutStoreItem outStoreItem = new SysOutStoreItem();
+                    outStoreItem.setSkuId(assemble.getAssembleGoodId());
+                    outStoreItem.setAmount(Double.parseDouble(assemble.getTotal()+""));
+                    outStoreItem.setRemark("自动配料");
+                    return outStoreItem;
+                }).collect(Collectors.toList()));
+            }
+        });
+        //组合配料参数
+        projServices.setOutStoreItem(outStoreItemList);
+        //调用配料出库方法
+        modifyPLProjServices(projServices);
     }
 
 
@@ -660,7 +712,7 @@
             //发送微信公众号提醒
             UniformMsgParam uniformMsgParam = new UniformMsgParam(projServices.getCompanyId(), UniformMsgParam.GZH_FWWC);
             uniformMsgParam.put("serviceId", projServices.getId());
-            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
+            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam);
             //发送划扣短信提醒
             taiYanAliyunSmsService.sendHkNotice(projServices);
 
@@ -1062,10 +1114,10 @@
         int i = modify(services);
         if (i > 0) {
             //发送微信公众号提醒
-            services=findById(services.getId());
-            UniformMsgParam uniformMsgParam=new UniformMsgParam(services.getCompanyId(),UniformMsgParam.GZH_YYCG);
-            uniformMsgParam.put("serviceId",services.getId());
-            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
+            services = findById(services.getId());
+            UniformMsgParam uniformMsgParam = new UniformMsgParam(services.getCompanyId(), UniformMsgParam.GZH_YYCG);
+            uniformMsgParam.put("serviceId", services.getId());
+            asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam);
 
             taiYanAliyunSmsService.sendYycgNotice(services);
 
@@ -1073,10 +1125,6 @@
         }
         return i;
     }
-
-
-
-
 
 
 }
diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties
index d2d049e..7b6d3b6 100644
--- a/zq-erp/src/main/resources/config/application.properties
+++ b/zq-erp/src/main/resources/config/application.properties
@@ -4,9 +4,9 @@
 
 #线上测试环境
 #
-#spring.datasource.username=ct_test
-#spring.datasource.password=123456
-#spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+spring.datasource.username=ct_test
+spring.datasource.password=123456
+spring.datasource.url=jdbc:mysql://120.27.238.55:3306/hive_test_meidu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 #spring.datasource.username=xc_shop
 #spring.datasource.password=xc_shop123!@#
@@ -22,9 +22,9 @@
 #spring.datasource.url=jdbc:mysql://47.111.134.136/db_meidu_prd?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
-spring.datasource.username=root
-spring.datasource.password=root
-spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
+#spring.datasource.username=root
+#spring.datasource.password=root
+#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/md_test_local?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8
 
 
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
diff --git a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
index 99c0860..82778ed 100644
--- a/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
+++ b/zq-erp/src/test/java/com/matrix/ParameterSettingsTool.java
@@ -119,13 +119,20 @@
 		newSetting10.setCategory("店务配置");
 		newSettings.add(newSetting10);
 
+		ParameterSettings newSetting11=new ParameterSettings();
+		newSetting11.setCode(AppConstance.OPEN_SERVICE_ORDER_AUTO_BATCHING);
+		newSetting11.setName("开启服务单自动配料");
+		newSetting11.setType(1);
+		newSetting11.setCategory("店务配置");
+		newSettings.add(newSetting11);
+
+
+
 		for (ParameterSettings newSetting : newSettings) {
 			List<ParameterSettings> parameterSettings = parameterSettingsDao.selectByModel(newSetting);
 			if(CollectionUtil.isEmpty(parameterSettings)){
 				parameterSettingsDao.insert(newSetting);
 				System.out.println("新增配置"+newSetting.getName());
-			}else {
-				System.out.println("配置"+newSetting.getName()+"已经存在");
 			}
 			addSettingsTOAllCompany(newSetting);
 		}
@@ -144,8 +151,6 @@
 				busParameterSettings.setParamValue("");
 				busParameterSettingsDao.insert(busParameterSettings);
 				System.out.println(sysCompany.getComName()+"新增成功");
-			}else{
-				System.out.println("公司"+sysCompany.getComName()+"已经存在配置"+newSetting.getName());
 			}
 
 		}

--
Gitblit v1.9.1