|
@@ -3,15 +3,20 @@ package com.gree.mall.manager.logic.material.manage;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.gree.mall.manager.bean.PayDetail;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
import com.gree.mall.manager.bean.material.manage.*;
|
|
|
import com.gree.mall.manager.commonmapper.MaterialMapper;
|
|
|
+import com.gree.mall.manager.constant.SybConstants;
|
|
|
import com.gree.mall.manager.enums.IsEnum;
|
|
|
import com.gree.mall.manager.enums.IsYesNoEnum;
|
|
|
import com.gree.mall.manager.enums.material.*;
|
|
|
import com.gree.mall.manager.exception.RemoteServiceException;
|
|
|
+import com.gree.mall.manager.logic.common.AllInPayLogic;
|
|
|
import com.gree.mall.manager.logic.common.CommonLogic;
|
|
|
import com.gree.mall.manager.plus.entity.*;
|
|
|
import com.gree.mall.manager.plus.service.*;
|
|
@@ -46,6 +51,8 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
private final StorageService storageService;
|
|
|
private final MaterialConfigService materialConfigService;
|
|
|
private final WebsitSalesPayOrderService websitSalesPayOrderService;
|
|
|
+ private final AdminWebsitPayConfigService adminWebsitPayConfigService;
|
|
|
+ private final AllInPayLogic allInPayLogic;
|
|
|
|
|
|
public IPage<WebsitPartsSalesVO> list(ZfireParamBean zfireParamBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
@@ -316,7 +323,7 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
}
|
|
|
|
|
|
// 记录总金额
|
|
|
- partsSalesOrderBean.setTotalPrice(totalPrice);
|
|
|
+ partsSalesOrderBean.setTotalAmount(totalPrice);
|
|
|
partsSalesOrderBean.setStatus(PartsOrderStatusEnum.SAVE.getKey());
|
|
|
// 生成订单号
|
|
|
String sheetId = commonLogic.generateMaterialNo(adminUser.getCompanyWechatId(), "PJ", PartsRefTypeEnum.SALES.getKey(), 13);
|
|
@@ -367,7 +374,7 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
return partsSalesOrderBean;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ @Transactional
|
|
|
public void update(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
WebsitPartsSales partsSalesOrder = websitPartsSalesService.getById(partsSalesOrderBean.getId());
|
|
@@ -402,7 +409,7 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
}
|
|
|
|
|
|
// 记录总金额
|
|
|
- partsSalesOrderBean.setTotalPrice(totalPrice);
|
|
|
+ partsSalesOrderBean.setTotalAmount(totalPrice);
|
|
|
websitPartsSalesService.updateById(partsSalesOrderBean);
|
|
|
// 删除销售单配件明细
|
|
|
websitPartsSalesItemService.lambdaUpdate()
|
|
@@ -438,4 +445,368 @@ public class WebsitPartsSalesOrderLogic {
|
|
|
.one();
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ public WebsitPartsSalesBean submit(String id) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = loadSalesOrderById(id);
|
|
|
+ if(Objects.isNull(partsSalesOrderBean)) {
|
|
|
+ throw new RemoteServiceException("配件单提交失败,销售单信息不能为空") ;
|
|
|
+ }
|
|
|
+ if(!partsSalesOrderBean.getStatus().equals(PartsOrderStatusEnum.SAVE.getKey())) {
|
|
|
+ throw new RemoteServiceException("该配件销售单已提交,不能重复提交");
|
|
|
+ }
|
|
|
+ // 先保存一下页面信息,再提交状态
|
|
|
+
|
|
|
+ // 更新状态为1-已提交
|
|
|
+ partsSalesOrderBean.setStatus(PartsOrderStatusEnum.SUBMIT.getKey());
|
|
|
+ partsSalesOrderBean.setSubmitBy(adminUser.getNickName());
|
|
|
+ partsSalesOrderBean.setSubmitTime(DateUtil.date());
|
|
|
+
|
|
|
+ websitPartsSalesService.saveOrUpdate(partsSalesOrderBean);
|
|
|
+ return loadSalesOrderById(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public PayDetail generateCode(String salesId, String payConfigId) {
|
|
|
+ WebsitPartsSales sales = websitPartsSalesService.getById(salesId);
|
|
|
+ if (Objects.isNull(sales)) {
|
|
|
+ throw new RemoteServiceException("销售单号不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ final AdminWebsitPayConfig payConfig = adminWebsitPayConfigService.getById(payConfigId);
|
|
|
+ if (Objects.isNull(payConfig) || !payConfig.getStatus()) {
|
|
|
+ throw new RemoteServiceException("支付配置信息异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 通联扫码支付
|
|
|
+ WebsitSalesPayOrder payOrder = new WebsitSalesPayOrder();
|
|
|
+ payOrder.setId(IdWorker.getIdStr())
|
|
|
+ .setCompanyWechatId(sales.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(sales.getCompanyWechatName())
|
|
|
+ .setGoodsType(WebsitGoodsTypeEnum.P.getKey())
|
|
|
+ .setWebsitId(sales.getWebsitId())
|
|
|
+ .setWebsitName(sales.getWebsitName())
|
|
|
+ .setOrderId(sales.getId())
|
|
|
+ .setOutTradeNo(payOrder.getId())
|
|
|
+ .setPayType(PayTypeEnum.ALLINPAY.getKey())
|
|
|
+ .setOrderCreateTime(sales.getCreateTime())
|
|
|
+ .setPayValue(sales.getTotalAmount())
|
|
|
+ .setOrgId(payConfig.getOrgId())
|
|
|
+ .setMchNo(payConfig.getMchNo())
|
|
|
+ .setAppid(payConfig.getAppid())
|
|
|
+ .setOrderType(PayOrderTypeEnum.S.getKey())
|
|
|
+ .setRunTime(DateUtil.offsetSecond(DateUtil.date(), 15))
|
|
|
+ .setOrderSource(OrderSourceEnum.P_SALES.getKey())
|
|
|
+ .setIsDeliver(false);
|
|
|
+
|
|
|
+
|
|
|
+ // 请求通联得到结果
|
|
|
+ Map<String, String> resMap = allInPayLogic.serviceUnifiedOrder(payOrder, SybConstants.PAY_TYPE_W01);
|
|
|
+
|
|
|
+ if (!resMap.get("trxstatus").equals("0000")) {
|
|
|
+ throw new RemoteServiceException("通联统一支付接口执行失败:" + resMap.get("errmsg"));
|
|
|
+ }
|
|
|
+
|
|
|
+ payOrder.setOrderNo(resMap.get("trxid"))
|
|
|
+ .insert();
|
|
|
+
|
|
|
+ PayDetail payDetail = new PayDetail();
|
|
|
+ payDetail.setCodeUrl(resMap.get("payinfo"));
|
|
|
+ payDetail.setId(payOrder.getId());
|
|
|
+ log.info("通联支付payDetail:{}", JSONObject.toJSONString(payDetail));
|
|
|
+ return payDetail;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public WebsitPartsSalesBean changeCash(String id) {
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = this.loadSalesOrderById(id);
|
|
|
+ AdminWebsit shop = adminWebsitService.getById(partsSalesOrderBean.getWebsitId());
|
|
|
+ if (!shop.getPartsIsCash()) {
|
|
|
+ throw new RemoteServiceException("当前配件网点不支付现金方式");
|
|
|
+ }
|
|
|
+ if (partsSalesOrderBean.getIsApply().equals(IsEnum.Y.getValue())) {
|
|
|
+ throw new RemoteServiceException("申请单不能现金支付");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 现金订单改为已支付未提货状态
|
|
|
+ partsSalesOrderBean.setStatus(PartsOrderStatusEnum.PAYED.getKey());
|
|
|
+ partsSalesOrderBean.setPayFlag(PartsPayFlagEnum.PAY_NOT_TAKE.getKey());
|
|
|
+ partsSalesOrderBean.setPayType(PayTypeEnum.CASH.getKey());
|
|
|
+
|
|
|
+ this.handleForwardShopAndWorkerStock(partsSalesOrderBean);
|
|
|
+
|
|
|
+
|
|
|
+ websitPartsSalesService.saveOrUpdate(partsSalesOrderBean);
|
|
|
+ return partsSalesOrderBean;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void handleForwardShopAndWorkerStock(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ // 扣减网点库存
|
|
|
+// List<ShopStockDTO> shopStockDTOList = this.getShopStock(partsSalesOrderBean, -1);
|
|
|
+// partsStockLogic.handleShopStock(shopStockDTOList);
|
|
|
+//
|
|
|
+// if (PartsDeliveryTypeEnum.EXPRESS.getCode().intValue() == partsSalesOrderBean.getDeliveryType()
|
|
|
+// && PartsSalesOrderTypeEnum.WORKER.getCode().intValue() == partsSalesOrderBean.getOrderType()) {
|
|
|
+// // 如果是快递并且销售类型为“服务人员”的单,需要增加师傅在途库存
|
|
|
+// // 增加师傅在途库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean,
|
|
|
+// PartsRefTypeEnum.SALES.toString(), null, PartsStockPartsAttrEnum.WAY.toString());
|
|
|
+//
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public void confirmDelivery(String id, String logisticsNo) {
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = this.loadSalesOrderById(id);
|
|
|
+ if(Objects.isNull(partsSalesOrderBean)) {
|
|
|
+ throw new RemoteServiceException("配件单提交失败,单号=" + id) ;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!PartsOrderStatusEnum.PAYED.getKey().equals(partsSalesOrderBean.getStatus())) {
|
|
|
+ throw new RemoteServiceException("非已支付状态,不能提货");
|
|
|
+ }
|
|
|
+
|
|
|
+ DateTime curDate = DateUtil.date();
|
|
|
+ partsSalesOrderBean.setLogisticsNo(logisticsNo);
|
|
|
+ partsSalesOrderBean.setWebsitConfirmBy(adminUser.getNickName());
|
|
|
+ partsSalesOrderBean.setWebsitConfirmDate(curDate);
|
|
|
+
|
|
|
+ if (this.checkOrderAttr(partsSalesOrderBean)) {
|
|
|
+ partsSalesOrderBean.setStatus(PartsOrderStatusEnum.END.getKey());
|
|
|
+ partsSalesOrderBean.setEndTime(curDate);
|
|
|
+ partsSalesOrderBean.setExamineBy(adminUser.getNickName());
|
|
|
+ partsSalesOrderBean.setExamineTime(curDate);
|
|
|
+ partsSalesOrderBean.setPushFlag(PartsPushFlagEnum.SALES.getKey());
|
|
|
+ partsSalesOrderBean.setPayFlag(PartsPayFlagEnum.PAY_TAKE.getKey());
|
|
|
+
|
|
|
+ if (BuyPeopleEnum.WORKER.getKey().equals(partsSalesOrderBean.getBuyPeople())) {
|
|
|
+ // 增加师傅库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean, PartsRefTypeEnum.SALES.toString(),
|
|
|
+// Objects.nonNull(partsSalesOrderBean.getWorkerConfirmDate()) ? PartsStockPartsAttrEnum.WAY.toString() : null,
|
|
|
+// PartsStockPartsAttrEnum.NEW.toString());
|
|
|
+
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+ }
|
|
|
+ // 更新销售单明细信息
|
|
|
+ this.updateSalesItem(partsSalesOrderBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ websitPartsSalesService.updateById(partsSalesOrderBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean checkOrderAttr(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ return !DeliveryTypeEnum.EXPRESS.getValue().equals(partsSalesOrderBean.getDeliveryType())
|
|
|
+ || !BuyPeopleEnum.WORKER.getKey().equals(partsSalesOrderBean.getBuyPeople())
|
|
|
+ || Objects.nonNull(partsSalesOrderBean.getWorkerConfirmDate());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新销售明细的信息
|
|
|
+ * @param partsSalesOrderBean
|
|
|
+ */
|
|
|
+ private void updateSalesItem(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ if(CollectionUtil.isNotEmpty(partsSalesOrderBean.getItemList())) {
|
|
|
+ List<WebsitPartsSalesItem> itemList = new ArrayList<>();
|
|
|
+ for(WebsitPartsSalesItemBean itemBean : partsSalesOrderBean.getItemList()) {
|
|
|
+ itemBean.setPushFlag(partsSalesOrderBean.getPushFlag());
|
|
|
+ itemBean.setExamineTime(partsSalesOrderBean.getExamineTime());
|
|
|
+ if (partsSalesOrderBean.getPayType().equals(PayTypeEnum.CASH.getKey())) {
|
|
|
+ itemBean.setRefundAmountMode(PayTypeEnum.CASH.getKey());
|
|
|
+ } else {
|
|
|
+ itemBean.setRefundAmountMode(PayTypeEnum.WECHAT.getKey());
|
|
|
+ }
|
|
|
+ itemList.add(itemBean);
|
|
|
+ }
|
|
|
+ websitPartsSalesItemService.saveOrUpdateBatch(itemList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除配件销售单(软删除)
|
|
|
+ * @param id
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public void deleteById(String id) {
|
|
|
+ WebsitPartsSales partsSalesOrder = websitPartsSalesService.getById(id);
|
|
|
+ List<String> stateList = Arrays.asList(PartsOrderStatusEnum.SUBMIT.getKey(), PartsOrderStatusEnum.PAYED.getKey(),
|
|
|
+ PartsOrderStatusEnum.END.getKey(), PartsOrderStatusEnum.EXCEPTION.getKey());
|
|
|
+ if(Objects.isNull(partsSalesOrder)) {
|
|
|
+ throw new RemoteServiceException("找不到该配件销售单, 请刷新一下列表");
|
|
|
+ }
|
|
|
+ //不是该网点不能删除
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ if (adminUser.getType() != 0) {
|
|
|
+ throw new RemoteServiceException("不是网点用户,没有删除权限");
|
|
|
+ }
|
|
|
+ if(!adminUser.getAdminWebsitIds().contains(partsSalesOrder.getWebsitId())) {
|
|
|
+ throw new RemoteServiceException("不是该网点用户,没有删除权限");
|
|
|
+ }
|
|
|
+ if(stateList.contains(partsSalesOrder.getStatus())) {
|
|
|
+ throw new RemoteServiceException("该订单非保存或已取消状态,不能删除: 订单号: "+partsSalesOrder.getId());
|
|
|
+ }
|
|
|
+ websitPartsSalesService.removeById(partsSalesOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 退回0-保存状态
|
|
|
+ * @param id
|
|
|
+ * @throws InterruptedException
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public Object backToSave(String id) {
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = loadSalesOrderById(id);
|
|
|
+ if (Objects.isNull(partsSalesOrderBean)) {
|
|
|
+ throw new RemoteServiceException("配件销售单状态退回失败,没有该销售单号: " + id) ;
|
|
|
+ }
|
|
|
+ // 不是该网点不能退回
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ if (adminUser.getType() == 2) {
|
|
|
+ throw new RemoteServiceException("平台账号禁止操作");
|
|
|
+ }
|
|
|
+ if (!adminUser.getAdminWebsitIds().contains(partsSalesOrderBean.getWebsitId())) {
|
|
|
+ throw new RemoteServiceException("不是该网点用户,没有操作权限");
|
|
|
+ }
|
|
|
+ // 检查是否提交或之前的状态,若是提交后的状态不能再退回
|
|
|
+ if (!partsSalesOrderBean.getStatus().equals(PartsOrderStatusEnum.SUBMIT.getKey())) {
|
|
|
+ throw new RemoteServiceException("该配件销售单已支付,不能退回修改");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (partsSalesOrderBean.getPayType().equals(PayTypeEnum.ALLINPAY.getKey())) {
|
|
|
+ WebsitSalesPayOrder salesPayList = getPayList(partsSalesOrderBean);
|
|
|
+ if (Objects.nonNull(salesPayList)) {
|
|
|
+ throw new RemoteServiceException("已有支付记录,不能退回修改");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新状态为0-保存状态
|
|
|
+ partsSalesOrderBean.setStatus(PartsOrderStatusEnum.SAVE.getKey());
|
|
|
+ if (partsSalesOrderBean.getPayType().equals(PayTypeEnum.CASH.getKey())) {
|
|
|
+ // 现金订单提交直接改为未支付状态
|
|
|
+ partsSalesOrderBean.setPayFlag(PartsPayFlagEnum.NOT.getKey());
|
|
|
+ }
|
|
|
+
|
|
|
+ //清空提交状态
|
|
|
+ partsSalesOrderBean.setSubmitTime(null);
|
|
|
+ partsSalesOrderBean.setSubmitBy(null);
|
|
|
+ websitPartsSalesService.updateById(partsSalesOrderBean);
|
|
|
+ log.info("backToSave: partsSalesOrderBean status: {}", partsSalesOrderBean.getStatus());
|
|
|
+ return partsSalesOrderBean;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取支付记录
|
|
|
+ * @param partsSalesOrderBean
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Transactional
|
|
|
+ public WebsitSalesPayOrder getPayList(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ WebsitSalesPayOrder salesPayList;
|
|
|
+ List<WebsitSalesPayOrder> payList = websitSalesPayOrderService.lambdaQuery()
|
|
|
+ .eq(WebsitSalesPayOrder::getCompanyWechatId, partsSalesOrderBean.getCompanyWechatId())
|
|
|
+ .eq(WebsitSalesPayOrder::getWebsitId, partsSalesOrderBean.getWebsitId())
|
|
|
+ .eq(WebsitSalesPayOrder::getOrderId, partsSalesOrderBean.getId())
|
|
|
+ .in(WebsitSalesPayOrder::getOrderType, PayOrderTypeEnum.S.getKey())
|
|
|
+ .orderByAsc(WebsitSalesPayOrder::getCreateTime)
|
|
|
+ .list();
|
|
|
+ for (WebsitSalesPayOrder payRecord : payList) {
|
|
|
+ if (payRecord.getPayFlag().equals(IsYesNoEnum.YES.getKey())) {
|
|
|
+ salesPayList = payRecord;
|
|
|
+ return salesPayList;
|
|
|
+ } else if (payRecord.getPayFlag().equals(IsYesNoEnum.NO.getKey())) {
|
|
|
+ allInPayLogic.serviceCloseOrder(payRecord);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void cancel(String id) {
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = loadSalesOrderById(id);
|
|
|
+ if(Objects.isNull(partsSalesOrderBean)) {
|
|
|
+ throw new RemoteServiceException("配件单状态取消失败,没有该配件单号: " + id) ;
|
|
|
+ }
|
|
|
+ if(Objects.isNull(partsSalesOrderBean.getStatus())) {
|
|
|
+ throw new RemoteServiceException("配件单状态取消失败,该订单状态为空, 单号: " + id) ;
|
|
|
+ }
|
|
|
+ if(PartsOrderStatusEnum.END.getKey().equals(partsSalesOrderBean.getStatus())) {
|
|
|
+ throw new RemoteServiceException("配件单状态取消失败,该订单已完成,不能取消: " + id) ;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(partsSalesOrderBean.getWebsitConfirmDate())
|
|
|
+ || Objects.nonNull(partsSalesOrderBean.getWorkerConfirmDate())) {
|
|
|
+ // 网点或师傅确认时间不为空,则说明已提货,不能取消
|
|
|
+ throw new RemoteServiceException("该订单已提货,不能取消: " + id);
|
|
|
+ }
|
|
|
+
|
|
|
+ WebsitSalesPayOrder salesPayList = getPayList(partsSalesOrderBean);
|
|
|
+
|
|
|
+ if (Objects.nonNull(salesPayList)) {
|
|
|
+ // 有支付记录,共用退款方法
|
|
|
+ this.commonRefundAmountMethod(partsSalesOrderBean);
|
|
|
+ }
|
|
|
+ if (partsSalesOrderBean.getIsApply().equals(IsEnum.N.getValue())) {
|
|
|
+ if ((PartsOrderStatusEnum.SUBMIT.getKey().equals(partsSalesOrderBean.getStatus()) && Objects.nonNull(salesPayList))
|
|
|
+ || PartsOrderStatusEnum.PAYED.getKey().equals(partsSalesOrderBean.getStatus())) {
|
|
|
+ // 已提交有支付记录 或 已支付订单状态,处理库存
|
|
|
+ this.handleReverseShopAndWorkerStock(partsSalesOrderBean);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ partsSalesOrderBean.setStatus(PartsOrderStatusEnum.CANCEL.getKey());
|
|
|
+ websitPartsSalesService.saveOrUpdate(partsSalesOrderBean);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void handleReverseShopAndWorkerStock(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ //网点库存要加回去
|
|
|
+// List<ShopStockDTO> shopStockDTOList = this.getShopStock(partsSalesOrderBean, 1);
|
|
|
+//
|
|
|
+// partsStockLogic.handleShopStock(shopStockDTOList);
|
|
|
+//
|
|
|
+// if (PartsDeliveryTypeEnum.EXPRESS.getCode().intValue() == partsSalesOrderBean.getDeliveryType()
|
|
|
+// && PartsSalesOrderTypeEnum.WORKER.getCode().intValue() == partsSalesOrderBean.getOrderType()) {
|
|
|
+// // 如果是快递并且销售类型为“服务人员”的单,需要减师傅在途库存
|
|
|
+// // 减师傅在途库存
|
|
|
+// List<WorkerStockDTO> workerStockDTOList = this.getWorkerStock(partsSalesOrderBean, PartsRefTypeEnum.SALES.toString(),
|
|
|
+// PartsStockPartsAttrEnum.WAY.toString(), null);
|
|
|
+// partsStockLogic.handleWorkerStock(workerStockDTOList);
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void commonRefundAmountMethod(WebsitPartsSalesBean partsSalesOrderBean) {
|
|
|
+ //有支付记录,需要增加退款记录
|
|
|
+ WebsitPartsRefundRecord partsRefundRecord = new WebsitPartsRefundRecord();
|
|
|
+ partsRefundRecord.setRefundNo(IdWorker.getIdStr())
|
|
|
+ .setRecordId(partsSalesOrderBean.getId())
|
|
|
+ .setCompanyWechatId(partsSalesOrderBean.getCompanyWechatId())
|
|
|
+ .setCompanyWechatName(partsSalesOrderBean.getCompanyWechatName())
|
|
|
+ .setWebsiteId(partsSalesOrderBean.getWebsitId())
|
|
|
+ .setWebsitName(partsSalesOrderBean.getWebsitName())
|
|
|
+ .setPartsWebsiteId(partsSalesOrderBean.getPartsWebsitId())
|
|
|
+ .setIdentity(partsSalesOrderBean.getIdentity())
|
|
|
+ .setWorkerId(partsSalesOrderBean.getWorkerId())
|
|
|
+ .setWorkerName(partsSalesOrderBean.getWorkerName())
|
|
|
+ .setSalesId(partsSalesOrderBean.getId())
|
|
|
+ .setRef(partsSalesOrderBean.getId())
|
|
|
+ .setRefType(PartsRefTypeEnum.SALES.toString())
|
|
|
+ .setRefundAmount(partsSalesOrderBean.getTotalAmount())
|
|
|
+ .setRefundState("WAIT")
|
|
|
+ .setIsExec(IsEnum.N.getValue())
|
|
|
+ .insert();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ public void transNotApply(String id) {
|
|
|
+ WebsitPartsSalesBean partsSalesOrderBean = loadSalesOrderById(id);
|
|
|
+ if(Objects.isNull(partsSalesOrderBean)) {
|
|
|
+ throw new RemoteServiceException("销售申请单转销售单失败,没有该单号: " + id) ;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.handleForwardShopAndWorkerStock(partsSalesOrderBean);
|
|
|
+
|
|
|
+ websitPartsSalesService.lambdaUpdate()
|
|
|
+ .set(WebsitPartsSales::getIsApply, IsEnum.N.getValue())
|
|
|
+ .set(WebsitPartsSales::getTransNotApplyDate, DateUtil.date())
|
|
|
+ .eq(WebsitPartsSales::getId, partsSalesOrderBean.getId())
|
|
|
+ .update();
|
|
|
+ }
|
|
|
}
|