From a0cd34acf14a149cc3c08b41ca4dde6938a29ecc Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Wed, 07 Jul 2021 22:31:34 +0800
Subject: [PATCH] modify
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++---
1 files changed, 73 insertions(+), 7 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 0cebbc4..1e81817 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,5 +1,6 @@
package com.matrix.system.hive.service.imp;
+import cn.hutool.core.collection.CollUtil;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
@@ -304,7 +305,8 @@
SysProjUse sysProjUse = projUseService.findById(sysBeauticianState.getPuseId());
ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(sysProjUse.getProjId());
- SysOrderItem orderItem = sysOrderItemService.findById(sysProjUse.getOrderItemId());
+ SysOrderItem item = sysOrderItemService.findById(sysProjUse.getOrderItemId());
+ SysOrder orderItem = sysOrderService.findById(item.getOrderId());
if ("购买".equals(sysProjUse.getSource())) {
// 如果用户有欠款,服务单总价不能超过已付金额
if (orderItem!=null && orderItem.getArrears() > 0) {
@@ -320,14 +322,14 @@
double money = MoneyUtil.sub((bj - orderItem.getArrears()), (yxfje + bcxfje));
// 如果 已付金额 - (已消费金额+本次消费金额)<0 则不能再消费
if (money < 0) {
- return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 订单编号[ " + sysOrderService.findById(orderItem.getOrderId()).getOrderNo() + " ] ");
+ return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 订单编号[ " + orderItem.getOrderNo() + " ] ");
}
}
} else if ("赠送".equals(sysProjUse.getSource())) {
if (orderItem!=null &&orderItem.getArrears() > 0) {
- return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 不能消费赠送项目,订单编号[ " + sysOrderService.findById(orderItem.getOrderId()).getOrderNo() + " ] ");
+ return new VerifyResult(true, shoppingGoods.getName() + "存在欠款" + orderItem.getArrears() + "元 , 不能消费赠送项目,订单编号[ " + orderItem.getOrderNo() + " ] ");
}
}
}
@@ -387,6 +389,7 @@
if (beauticianStateDao.checkBeauticianClash(beauticianState) > 0) {
throw new GlobleException("该美疗师已被占用,请重新分配!");
}
+// beauticianState.setExcTime(beauticianState.getProjInfo().getTimeLength());
beauticianState.setState(Dictionary.BEATUI_STATE_YYY);
beauticianStateDao.update(beauticianState);
@@ -572,6 +575,28 @@
if (!projServices.getState().equals(Dictionary.SERVICE_STATU_FWWC)) {
throw new GlobleException("该服务单状态为" + projServices.getState() + ",不可以进行当前操作!");
} else {
+ SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ if (skipServiceOrderStep(Dictionary.SERVICE_OVER_BEGIN_END)) {
+ SysBeauticianState checkBeauticianState = new SysBeauticianState();
+ checkBeauticianState.setServicesId(projServices.getId());
+ checkBeauticianState.setState(Dictionary.BEATUI_STATE_FWJS);
+ beauticianStateDao.chengItemState(checkBeauticianState);
+
+ // 释放床位资源
+ SysBedState checkBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getId(), projServices.getBedId());
+ if (checkBedState != null) {
+ checkBedState.setBedState(Dictionary.BED_STATE_SYJS);
+ bedStateDao.update(checkBedState);
+ }
+ projServices.setEndTime(new Date());
+ // 计算时差
+ long minspace = DateUtil.getDifTimeMin(projServices.getStartTime(), projServices.getEndTime()) - projServices.getTotalTime();
+ // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务
+ projServices.setIsOverTime(minspace + "");
+ projServices.setState(Dictionary.SERVICE_STATU_FWWC);
+ sysProjServicesDao.update(projServices);
+ }
+
projServices.setState(Dictionary.SERVICE_STATU_FFJS);
projServices.setConsumeTime(new Date());
int result=sysProjServicesDao.update(projServices);
@@ -689,12 +714,32 @@
sysOutStoreItemDao.batchInsert(realOutStoreItemList);
}
// 设置服务单状态
- projServices.setState(Dictionary.SERVICE_STATU_PLWC);
+// projServices.setState(Dictionary.SERVICE_STATU_PLWC);
+
if(projServices.getDevisionId()==null){
//如果没有设置配料师则默认为操作配料的人为配料师
projServices.setDevisionId(sysUsers.getSuId());
-
}
+
+ // 判断是否跳过开始/结束服务
+ if (skipServiceOrderStep(Dictionary.SERVICE_OVER_BEGIN_END)) {
+ projServices.setStartTime(new Date());
+ projServices.setState(Dictionary.SERVICE_STATU_FWWC);
+ }
+ // 释放床位资源
+// SysBedState checkBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId());
+// if (checkBedState != null) {
+// checkBedState.setBedState(Dictionary.BED_STATE_SYJS);
+// bedStateDao.update(checkBedState);
+// }
+// projServices.setStartTime(new Date());
+// projServices.setEndTime(new Date());
+// // 计算时差
+// long minspace = DateUtil.getDifTimeMin(projServices.getStartTime(), projServices.getEndTime())
+// - projServices.getTotalTime();
+// // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务
+// projServices.setIsOverTime(minspace + "");
+// projServices.setState(Dictionary.SERVICE_STATU_FWWC);
return sysProjServicesDao.update(projServices);
}
@@ -761,7 +806,6 @@
SysBeauticianState checkBeauticianState = new SysBeauticianState();
checkBeauticianState.setServicesId(projServices.getId());
checkBeauticianState.setState(Dictionary.BEATUI_STATE_FWJS);
- checkBeauticianState.setStaffId(users.getSuId());
int rerunlt = beauticianStateDao.chengItemState(checkBeauticianState);
// 验证是否是最后一个美疗师结束服务
@@ -791,7 +835,6 @@
}
return rerunlt;
-
}
@Override
@@ -815,4 +858,27 @@
public int findApiServiceOrderListTotal(ServiceOrderListDto serviceOrderListDto) {
return sysProjServicesDao.selectApiServiceOrderListTotal(serviceOrderListDto);
}
+
+ /**
+ * 跳过服务单某步骤
+ */
+ private boolean skipServiceOrderStep(String step) {
+ SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+ ParameterSettings ps = new ParameterSettings();
+ ps.setCompanyId(users.getCompanyId());
+ ps.setCategory("店务配置");
+ List<ParameterSettings> settings = parameterSettingsDao.getByCategory(ps);
+
+ boolean flag = false;
+ if (CollUtil.isNotEmpty(settings)) {
+ for (ParameterSettings setting : settings) {
+ if (step.equals(setting.getCode()) && Dictionary.FLAG_YES.equals(setting.getUserValue())) {
+ flag = true;
+ break;
+ }
+ }
+ }
+
+ return flag;
+ }
}
--
Gitblit v1.9.1