From e2e3a5df786738c2c9620d921aa0f209a9eff21a Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sat, 05 Mar 2022 23:27:22 +0800 Subject: [PATCH] fead:新增单据操作记录 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 83 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 73 insertions(+), 10 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java index 0c14697..6b98538 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java @@ -20,7 +20,10 @@ 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.OperationLogService; import com.matrix.system.constance.Dictionary; +import com.matrix.system.enums.OperationButtonEnum; +import com.matrix.system.enums.OperationFunctionEnum; import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.plugin.util.CollectionUtils; @@ -126,6 +129,9 @@ @Autowired private AsyncMessageManager asyncMessageManager; + @Autowired + private OperationLogService operationLogService; + @Override public int add(SysOrder sysOrder) { @@ -184,6 +190,7 @@ @Override + @Transactional(rollbackFor = Exception.class) public SysOrder checkAndSaveOrder(SysOrder sysOrder) { // 计算订单折扣金额,收款情况下 计算订单总额 @@ -233,12 +240,27 @@ //新增订单 sysOrder.setOrderNo(codeService.getOrderCode()); sysOrderDao.insert(sysOrder); + //保存单据日志 + operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.CREATE, + sysOrder.getId(), + sysOrder.getOrderNo(), + sysOrder.getVipId()); } else { //更新订单 sysOrderDao.update(sysOrder); //删除原有订单明细 orderItemDao.deleteByOrderId(sysOrder.getId()); + //保存单据日志 + operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.UPDATE, + sysOrder.getId(), + sysOrder.getOrderNo(), + sysOrder.getVipId(), + "修改订单内容"); } sysOrder.getItems().forEach(sysOrderItem -> { @@ -266,9 +288,10 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public int cancelOrder(Long id) { + public void cancelOrder(Long id) { SysOrder order = sysOrderDao.selectById(id); + SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); if (order.getStatu().equals(Dictionary.ORDER_STATU_DFK)) { order.setStatu(Dictionary.ORDER_STATU_YQX); @@ -277,10 +300,17 @@ //发送微信公众号提醒 UniformMsgParam uniformMsgParam = new UniformMsgParam(order.getCompanyId(), UniformMsgParam.GZH_DDQX); uniformMsgParam.put("orderId", order.getId()); - asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam); + asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG, uniformMsgParam); - return sysOrderDao.update(order); - + sysOrderDao.update(order); + //保存单据日志 + operationLogService.saveOperation(order.getCompanyId(), order.getShopId(),sysUsers.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.CANCEL, + order.getId(), + order.getOrderNo(), + order.getVipId(), + "未付款取消订单"); } else { //一个订单只能被取消一次 @@ -377,8 +407,18 @@ // 取消订单 order.setStatu(Dictionary.ORDER_STATU_YQX); - return sysOrderDao.update(order); + sysOrderDao.update(order); + //保存单据日志 + operationLogService.saveOperation(order.getCompanyId(), order.getShopId(),sysUsers.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.CANCEL, + order.getId(), + order.getOrderNo(), + order.getVipId(), + "已付款取消订单"); } + + } @@ -512,14 +552,21 @@ //设置会员积分 addVipScore(pageOrder); + } /** * 付款后更新订单信息 + * * @param pageOrder */ private void updateOrderInfo(SysOrder pageOrder) { + + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + pageOrder.setCashierId(user.getSuId()); + pageOrder.setPayTime(new Date()); + pageOrder.setStatu(Dictionary.ORDER_STATU_YFK); List<SysOrderFlow> flows = pageOrder.getFlows(); @@ -528,7 +575,7 @@ .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal cardPayAmount = flows.stream() - .filter(item -> item.getPayMethod().equals("储值卡") && item.getIsGift().equals("N")) + .filter(item -> item.getPayMethod().equals("储值卡")) .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); pageOrder.setCardPay(cardPayAmount.doubleValue()); @@ -537,12 +584,20 @@ double sum = flows.stream().mapToDouble(item -> item.getAmount().doubleValue()).sum(); - if(sum>0 && cardPayAmount.doubleValue()==0 && cashPayAmount.doubleValue()==0 ){ + if (sum > 0 && cardPayAmount.doubleValue() == 0 && cashPayAmount.doubleValue() == 0) { throw new GlobleException("订单更新失败,支付金额计算错误,请联系管理员"); } sysOrderDao.update(pageOrder); + + //保存单据日志 + operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.ORDER_SK, + pageOrder.getId(), + pageOrder.getOrderNo(), + pageOrder.getVipId()); } private void checkOrder(SysOrder pageOrder) { @@ -574,7 +629,7 @@ entries.forEach(entrie -> { double sum = entrie.getValue().stream().mapToDouble(AchieveNew::getGoodsCash).sum(); //todo 目前使用js计算金额可能存在精度的误差展示用0.1屏蔽 - if (Math.abs(sum- (item.getZkPrice()*item.getCount()) )>0.1) { + if (Math.abs(sum - (item.getZkPrice() * item.getCount())) > 0.1) { ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId()); throw GlobleException.instance(shopGoods.getName() + "," + entrie.getKey() + "业绩金额与收款金额不一致"); } @@ -1409,9 +1464,9 @@ boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE); if (zsConsumeAchieve) { //赠送情况下,如果收款金额大于0,就是赠送金额划扣的情况,金额即为划扣的折扣金额 - if(sysOrderItem.getZkPrice()>0){ + if (sysOrderItem.getZkPrice() > 0) { puse.setPrice(sysOrderItem.getZkPrice()); - }else{ + } else { puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice()); } } else { @@ -1635,6 +1690,14 @@ // 设置业绩 achieveNewService.addAchaeveByOrder(sysOrder); + //保存单据日志 + operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.ORDER_TK, + sysOrder.getId(), + sysOrder.getOrderNo(), + sysOrder.getVipId()); + } private void addRefundOrderFlow(SysOrder sourceOrder) { -- Gitblit v1.9.1