From 248f33ff3b981a15b4adf26880e24852809561d9 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Thu, 28 Oct 2021 09:57:22 +0800 Subject: [PATCH] 短信改造延期 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 118 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 74 insertions(+), 44 deletions(-) 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 57c2716..2001275 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,9 +1,10 @@ package com.matrix.system.hive.service.imp; import cn.hutool.core.collection.CollUtil; -import com.matrix.component.rabbitmq.RabiitMqTemplate; +import com.matrix.component.asyncmessage.AsyncMessageManager; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; +import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.pojo.VerifyResult; import com.matrix.core.tools.DateUtil; @@ -25,16 +26,16 @@ import com.matrix.system.score.constant.ScoreSettingConstant; import com.matrix.system.score.entity.ScoreVipDetail; import com.matrix.system.score.service.ScoreVipDetailService; -import com.matrix.system.shopXcx.mqTask.MQTaskRouting; +import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting; import com.matrix.system.wechart.templateMsg.UniformMsgParam; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -111,7 +112,7 @@ private ShoppingGoodsService shoppingGoodsService; @Autowired - private RabiitMqTemplate rabiitMqTemplate; + private AsyncMessageManager asyncMessageManager; @Autowired @@ -123,8 +124,6 @@ @Autowired SysVipInfoDao sysVipInfoDao; - @Value("${evn}") - private String evn; /** @@ -199,20 +198,22 @@ taocan.setIsOver(Dictionary.FLAG_YES_Y); taocan.setSurplusCount(0); taocan.setStatus(Dictionary.TAOCAN_STATUS_WX); - } else if (Dictionary.FLAG_YES_Y.equals(taocan.getIsCourse())) { - if (StringUtils.isBlank(taocan.getIsInfinite()) || Dictionary.FLAG_NO_N.equals(taocan.getIsInfinite())) { - //任选套餐检查套餐整体剩余次数 - int tcSurplusCount = taocan.getSurplusCount() - sysBeauticianState.getCount(); - if (tcSurplusCount < 0) { - throw new GlobleException(taocan.getProjName() + "已经达到最大使用次数"); - } else { - taocan.setSurplusCount(tcSurplusCount); - } + } else if ( + Dictionary.FLAG_NO_N.equals(taocan.getIsCourse()) + || (Dictionary.FLAG_YES_Y.equals(taocan.getIsCourse()) + && (StringUtils.isBlank(taocan.getIsInfinite()) || Dictionary.FLAG_NO_N.equals(taocan.getIsInfinite())))) { - if (tcSurplusCount == 0) { - taocan.setIsOver(Dictionary.FLAG_YES_Y); - taocan.setStatus(Dictionary.TAOCAN_STATUS_WX); - } + //任选套餐检查套餐整体剩余次数 + int tcSurplusCount = taocan.getSurplusCount() - sysBeauticianState.getCount(); + if (tcSurplusCount < 0) { + throw new GlobleException(taocan.getProjName() + "已经达到最大使用次数"); + } else { + taocan.setSurplusCount(tcSurplusCount); + } + + if (tcSurplusCount == 0) { + taocan.setIsOver(Dictionary.FLAG_YES_Y); + taocan.setStatus(Dictionary.TAOCAN_STATUS_WX); } } @@ -223,6 +224,7 @@ Date useInvalidTime = shoppingGoodsService.calInvalidTime(taocanInfo, 2, sysProjUse.getFailTime()); taocan.setFailTime(useInvalidTime); } + taocan.setBalance(MoneyUtil.sub(taocan.getBalance(), bcxfje)); sysProjUseDao.updateSurplusCount(taocan); } @@ -238,7 +240,7 @@ } // 设置项目总时长 sysProjServices.setTotalTime(totalTime); - sysProjServices.setMoney(hkPrice); + sysProjServices.setMoney(new BigDecimal(hkPrice).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue()); sysProjServicesDao.update(sysProjServices); return sysProjServices; } @@ -256,6 +258,12 @@ for (SysBeauticianState sysBeauticianState : sysProjServices.getServiceItems()) { SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getPuseId()); + + //检查是否已经处于无效状态 + if(Dictionary.TAOCAN_STATUS_WX.equals(sysProjUse.getStatus())){ + return new VerifyResult(true, sysProjUse.getProjName() + "项目已经失效"); + } + int kjcs = 1; if (sysProjUse.getTaocanId() != null) { kjcs = sysBeauticianState.getCount() * sysProjUse.getDeductionNum(); @@ -543,23 +551,28 @@ if (sysProjUse.getSurplusCount() == 0) { upProjUse.setIsOver(Dictionary.DELETED_N); upProjUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); - if (sysProjUse.getTaocanId() != null) { - //TODO 更新套餐状态为有效 - SysProjUse taocanProjUse = sysProjUseDao.selectById(sysProjUse.getTaocanId()); - taocanProjUse.setIsOver(Dictionary.DELETED_N); - taocanProjUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); - - if (Dictionary.FLAG_YES_Y.equals(taocanProjUse.getIsCourse())) { - if (StringUtils.isBlank(taocanProjUse.getIsInfinite()) || Dictionary.FLAG_NO_N.equals(taocanProjUse.getIsInfinite())) { - taocanProjUse.setSurplusCount(taocanProjUse.getSurplusCount() + beauticianState.getCount()); - } - } - sysProjUseDao.update(taocanProjUse); - } } int surplus = sysProjUse.getSurplusCount() + beauticianState.getCount(); upProjUse.setSurplusCount(surplus); - upProjUse.setBalance(MoneyUtil.add(sysProjUse.getBalance(), sysProjUse.getPrice())); + + BigDecimal backBlance = new BigDecimal(sysProjUse.getPrice() * beauticianState.getCount()); + + upProjUse.setBalance(MoneyUtil.add(sysProjUse.getBalance(), backBlance.doubleValue())); + + + if (sysProjUse.getTaocanId() != null) { + SysProjUse taocanProjUse = sysProjUseDao.selectById(sysProjUse.getTaocanId()); + taocanProjUse.setIsOver(Dictionary.DELETED_N); + taocanProjUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); + taocanProjUse.setBalance(MoneyUtil.add(taocanProjUse.getBalance(), backBlance.doubleValue())); + if (Dictionary.FLAG_YES_Y.equals(taocanProjUse.getIsCourse())) { + if (StringUtils.isBlank(taocanProjUse.getIsInfinite()) || Dictionary.FLAG_NO_N.equals(taocanProjUse.getIsInfinite())) { + taocanProjUse.setSurplusCount(taocanProjUse.getSurplusCount() + beauticianState.getCount()); + } + } + sysProjUseDao.update(taocanProjUse); + } + // 取消时,判断该项目之前是否有使用过,若使用过则非第一次使用,则不更新有效日期,若未使用表明此次为第一次使用,则更新有效日期为购买日期或统一失效日期 List<SysBeauticianState> hasBeautician = beauticianStateDao.selectBeauticianStateByPuseIdAndNoStatus(beauticianState.getPuseId(), Dictionary.BEATUI_STATE_YYQX); @@ -650,10 +663,7 @@ //发送微信公众号提醒 UniformMsgParam uniformMsgParam = new UniformMsgParam(projServices.getCompanyId(), UniformMsgParam.GZH_FWWC); uniformMsgParam.put("serviceId", projServices.getId()); - rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, uniformMsgParam.toJSONString()); - - - + asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); return result; } @@ -666,7 +676,7 @@ */ private void addVipScore(SysProjServices projServices) { - SysVipInfo vipInfo =sysVipInfoDao.selectById(projServices.getVipId()); + SysVipInfo vipInfo = sysVipInfoDao.selectById(projServices.getVipId()); List<SysBeauticianState> sysBeauticianStates = beauticianStateDao.selectBySerIds(projServices.getId()); @@ -716,9 +726,9 @@ } } - int selfScore =principalConsumScore[0]+giveConsumScore[0]; - int parentScore =principalConsumScore[1]+giveConsumScore[1]; - int topParentScore =principalConsumScore[2]+giveConsumScore[2]; + int selfScore = principalConsumScore[0] + giveConsumScore[0]; + int parentScore = principalConsumScore[1] + giveConsumScore[1]; + int topParentScore = principalConsumScore[2] + giveConsumScore[2]; //添加自己的积分 if (selfScore > 0) { @@ -879,6 +889,8 @@ if (skipServiceOrderStep(Dictionary.SERVICE_OVER_BEGIN_END)) { projServices.setStartTime(new Date()); projServices.setState(Dictionary.SERVICE_STATU_FWWC); + } else { + projServices.setState(Dictionary.SERVICE_STATU_PLWC); } // 释放床位资源 // SysBedState checkBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId()); @@ -907,7 +919,7 @@ if (CollectionUtils.isNotEmpty(projServicesVo.getOutStoreItem())) { BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, projServicesVo.getCompanyId()); - if(AppConstance.IS_Y.equals(manageStockSetting.getParamValue())){ + if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { for (SysOutStoreItem item : projServicesVo.getOutStoreItem()) { if (item.getAmount() != null && item.getAmount() > 0) { return true; @@ -1021,7 +1033,8 @@ /** * 跳过服务单某步骤 */ - private boolean skipServiceOrderStep(String step) { + @Override + public boolean skipServiceOrderStep(String step) { SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); ParameterSettings ps = new ParameterSettings(); ps.setCompanyId(users.getCompanyId()); @@ -1040,4 +1053,21 @@ return flag; } + + @Override + public int confirmServiceOrder(Long id) { + SysProjServices services = new SysProjServices(); + services.setId(id); + services.setState(Dictionary.BEATUI_STATE_DYY); + 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); + + } + return i; + } } -- Gitblit v1.9.1