From 3868b706ee3ee115a400d77abc3b69b83ea448c7 Mon Sep 17 00:00:00 2001 From: jyy <jyy> Date: Fri, 03 Sep 2021 14:15:36 +0800 Subject: [PATCH] bug123 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 82 +++++++++++++++++++++++------------------ 1 files changed, 46 insertions(+), 36 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..5b10922 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 @@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -199,20 +200,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 +226,7 @@ Date useInvalidTime = shoppingGoodsService.calInvalidTime(taocanInfo, 2, sysProjUse.getFailTime()); taocan.setFailTime(useInvalidTime); } + taocan.setBalance(MoneyUtil.sub(taocan.getBalance(), bcxfje)); sysProjUseDao.updateSurplusCount(taocan); } @@ -238,7 +242,7 @@ } // 设置项目总时长 sysProjServices.setTotalTime(totalTime); - sysProjServices.setMoney(hkPrice); + sysProjServices.setMoney(new BigDecimal(hkPrice).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue()); sysProjServicesDao.update(sysProjServices); return sysProjServices; } @@ -543,23 +547,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); @@ -653,8 +662,6 @@ rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG + evn, uniformMsgParam.toJSONString()); - - return result; } @@ -666,7 +673,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 +723,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 +886,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 +916,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 +1030,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()); -- Gitblit v1.9.1