|
@@ -24,6 +24,7 @@ import com.gree.mall.manager.bean.websit.WorkerSettlementVO;
|
|
import com.gree.mall.manager.commonmapper.MaterialGoodsStockCMapper;
|
|
import com.gree.mall.manager.commonmapper.MaterialGoodsStockCMapper;
|
|
import com.gree.mall.manager.commonmapper.MaterialMapper;
|
|
import com.gree.mall.manager.commonmapper.MaterialMapper;
|
|
import com.gree.mall.manager.commonmapper.WebsitSalesRetCMapper;
|
|
import com.gree.mall.manager.commonmapper.WebsitSalesRetCMapper;
|
|
|
|
+import com.gree.mall.manager.constant.Constant;
|
|
import com.gree.mall.manager.enums.*;
|
|
import com.gree.mall.manager.enums.*;
|
|
import com.gree.mall.manager.enums.material.NormTypeEnum;
|
|
import com.gree.mall.manager.enums.material.NormTypeEnum;
|
|
import com.gree.mall.manager.enums.material.PartsAttrEnum;
|
|
import com.gree.mall.manager.enums.material.PartsAttrEnum;
|
|
@@ -47,6 +48,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
+import java.util.concurrent.locks.Lock;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -379,196 +382,211 @@ public class SettlementOrderLogic {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- public void sync() throws WxPayException {
|
|
|
|
|
|
+ public void sync() throws WxPayException, InterruptedException {
|
|
|
|
|
|
List<WorkerOrder> workerOrders = workerOrderService.lambdaQuery().eq(WorkerOrder::getPayState, IsYesNoEnum.YES.getKey())
|
|
List<WorkerOrder> workerOrders = workerOrderService.lambdaQuery().eq(WorkerOrder::getPayState, IsYesNoEnum.YES.getKey())
|
|
- .ne(WorkerOrder::getPayStatus,PayStatusEnum.PAID.getKey())
|
|
|
|
|
|
+ .ne(WorkerOrder::getPayStatus, PayStatusEnum.PAID.getKey())
|
|
.ge(WorkerOrder::getPayStateTime, DateUtil.offsetMinute(new Date(), -3)).list();
|
|
.ge(WorkerOrder::getPayStateTime, DateUtil.offsetMinute(new Date(), -3)).list();
|
|
|
|
|
|
for (WorkerOrder workerOrder : workerOrders) {
|
|
for (WorkerOrder workerOrder : workerOrders) {
|
|
- WxPayService payService = wechatLogic.getPayJaspWebstiService(workerOrder.getConfigId(), "B");
|
|
|
|
|
|
|
|
- WxPayOrderQueryResult wxPayOrderQueryResult = payService.queryOrder("", workerOrder.getOrderId());
|
|
|
|
|
|
+ Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.LOCK_ORDER + workerOrder.getOrderId());
|
|
|
|
+ try {
|
|
|
|
+ if (!obtain.tryLock(5, TimeUnit.SECONDS)) {
|
|
|
|
+ throw new RemoteServiceException("系统繁忙,请稍后再试");
|
|
|
|
+ }
|
|
|
|
+ WxPayService payService = wechatLogic.getPayJaspWebstiService(workerOrder.getConfigId(), "B");
|
|
|
|
|
|
|
|
+ WxPayOrderQueryResult wxPayOrderQueryResult = payService.queryOrder("", workerOrder.getOrderId());
|
|
|
|
|
|
- if (!wxPayOrderQueryResult.getResultCode().equals("SUCCESS")) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
|
|
- AdminWebsit adminWebsit = adminWebsitService.getById(workerOrder.getWebsitId());
|
|
|
|
|
|
+ if (!wxPayOrderQueryResult.getReturnCode().equals("SUCCESS")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
- List<WorkerOrderItem> workerOrderItems = workerOrderItemService.lambdaQuery().eq(WorkerOrderItem::getOrderId, workerOrder.getOrderId()).list();
|
|
|
|
|
|
+ if (!wxPayOrderQueryResult.getResultCode().equals("SUCCESS")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
- // 身份证为空检查user表
|
|
|
|
- if (StringUtils.isBlank(workerOrder.getIdentity()) && StringUtils.isNotBlank(workerOrder.getUserId())) {
|
|
|
|
- final User user = userService.getById(workerOrder.getUserId());
|
|
|
|
- workerOrder.setIdentity(user.getIdCard());
|
|
|
|
- }
|
|
|
|
|
|
+ if (!wxPayOrderQueryResult.getTradeState().equals("SUCCESS")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
|
|
- workerOrder.setTranscationId(wxPayOrderQueryResult.getTransactionId());
|
|
|
|
- workerOrder.setPayState(IsYesNoEnum.YES.getKey());
|
|
|
|
- workerOrder.setPayStateTime(new Date());
|
|
|
|
|
|
+ AdminWebsit adminWebsit = adminWebsitService.getById(workerOrder.getWebsitId());
|
|
|
|
|
|
|
|
|
|
- workerOrder.setConfigId(adminWebsit.getPayWorkerCodeId());
|
|
|
|
- workerOrder.updateById();
|
|
|
|
|
|
+ List<WorkerOrderItem> workerOrderItems = workerOrderItemService.lambdaQuery().eq(WorkerOrderItem::getOrderId, workerOrder.getOrderId()).list();
|
|
|
|
|
|
- workerOrder.setSource("小程序");
|
|
|
|
|
|
+ // 身份证为空检查user表
|
|
|
|
+ if (StringUtils.isBlank(workerOrder.getIdentity()) && StringUtils.isNotBlank(workerOrder.getUserId())) {
|
|
|
|
+ final User user = userService.getById(workerOrder.getUserId());
|
|
|
|
+ workerOrder.setIdentity(user.getIdCard());
|
|
|
|
+ }
|
|
|
|
|
|
- workerOrder.setPayTime(new Date());
|
|
|
|
- workerOrder.setPayType("WECHAT");
|
|
|
|
- workerOrder.setPayStatus(PayStatusEnum.PAID.getKey());
|
|
|
|
- workerOrder.updateById();
|
|
|
|
|
|
+ workerOrder.setTranscationId(wxPayOrderQueryResult.getTransactionId());
|
|
|
|
+ workerOrder.setPayState(IsYesNoEnum.YES.getKey());
|
|
|
|
+ workerOrder.setPayStateTime(new Date());
|
|
|
|
|
|
|
|
|
|
- //插入手工结算数据
|
|
|
|
- if (workerOrder.getManualAmount() != null && workerOrder.getManualAmount().doubleValue() > 0) {
|
|
|
|
- this.addManualSettlementOrder(workerOrder, workerOrderItems);
|
|
|
|
- this.addSettlementManaulWorker(workerOrder, workerOrderItems);
|
|
|
|
- }
|
|
|
|
- //todo 辅材扣除
|
|
|
|
|
|
+ workerOrder.setConfigId(adminWebsit.getPayWorkerCodeId());
|
|
|
|
+ workerOrder.updateById();
|
|
|
|
|
|
|
|
+ workerOrder.setSource("小程序");
|
|
|
|
|
|
|
|
+ workerOrder.setPayTime(new Date());
|
|
|
|
+ workerOrder.setPayType("WECHAT");
|
|
|
|
+ workerOrder.setPayStatus(PayStatusEnum.PAID.getKey());
|
|
|
|
+ workerOrder.updateById();
|
|
|
|
|
|
- //插入使用记录
|
|
|
|
- this.addNormRecord(workerOrder, workerOrderItems);
|
|
|
|
|
|
|
|
- // this.addSettlementWorker(workerOrder,workerOrderItems);
|
|
|
|
|
|
+ //插入手工结算数据
|
|
|
|
+ if (workerOrder.getManualAmount() != null && workerOrder.getManualAmount().doubleValue() > 0) {
|
|
|
|
+ this.addManualSettlementOrder(workerOrder, workerOrderItems);
|
|
|
|
+ this.addSettlementManaulWorker(workerOrder, workerOrderItems);
|
|
|
|
+ }
|
|
|
|
+ //todo 辅材扣除
|
|
|
|
|
|
|
|
|
|
- // 定时任务辅材逻辑
|
|
|
|
- if (StringUtils.isNotBlank(workerOrder.getIdentity())) {
|
|
|
|
- // 配件扣库存
|
|
|
|
- try {
|
|
|
|
- if (workerOrder.getGoodsType().equals("P")) {
|
|
|
|
|
|
+ //插入使用记录
|
|
|
|
+ this.addNormRecord(workerOrder, workerOrderItems);
|
|
|
|
|
|
- List<WorkerOrderItem> inner = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("INNER")).collect(Collectors.toList());
|
|
|
|
- List<WorkerOrderItem> OUTSIDE = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("OUTSIDE")).collect(Collectors.toList());
|
|
|
|
|
|
+ // this.addSettlementWorker(workerOrder,workerOrderItems);
|
|
|
|
|
|
- List<SalesCustomerPartsBean> salesCustomerPartsBeans = new ArrayList<>();
|
|
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(inner)) {
|
|
|
|
- SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
|
|
|
|
- salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
|
|
|
|
- salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
|
|
|
|
- salesCustomerPartsBean.setRepairFlag("INNER");
|
|
|
|
- salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
|
|
|
|
- salesCustomerPartsBean.setWorkerNumber(workerOrder.getWorkerNumber());
|
|
|
|
- salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
|
|
|
|
- salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
|
|
|
|
- salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
|
|
|
|
- salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
|
|
|
|
- salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
|
|
|
|
- salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
|
|
|
|
- salesCustomerPartsBean.setRemark(workerOrder.getRemark());
|
|
|
|
|
|
+ // 定时任务辅材逻辑
|
|
|
|
+ if (StringUtils.isNotBlank(workerOrder.getIdentity())) {
|
|
|
|
+ // 配件扣库存
|
|
|
|
+ try {
|
|
|
|
+ if (workerOrder.getGoodsType().equals("P")) {
|
|
|
|
|
|
|
|
+ List<WorkerOrderItem> inner = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("INNER")).collect(Collectors.toList());
|
|
|
|
+ List<WorkerOrderItem> OUTSIDE = workerOrderItems.stream().filter(item -> item.getRepairFlag().equals("OUTSIDE")).collect(Collectors.toList());
|
|
|
|
|
|
- List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
|
|
|
|
|
|
+ List<SalesCustomerPartsBean> salesCustomerPartsBeans = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ if (!CollectionUtils.isEmpty(inner)) {
|
|
|
|
+ SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
|
|
|
|
+ salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
|
|
|
|
+ salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
|
|
|
|
+ salesCustomerPartsBean.setRepairFlag("INNER");
|
|
|
|
+ salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
|
|
|
|
+ salesCustomerPartsBean.setWorkerNumber(workerOrder.getWorkerNumber());
|
|
|
|
+ salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
|
|
|
|
+ salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
|
|
|
|
+ salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
|
|
|
|
+ salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
|
|
|
|
+ salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
|
|
|
|
+ salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
|
|
|
|
+ salesCustomerPartsBean.setRemark(workerOrder.getRemark());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ for (WorkerOrderItem workerOrderItem : inner) {
|
|
|
|
+ if (workerOrderItem.getChargeType().equals("SERV")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
|
|
|
|
+
|
|
|
|
+ salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
|
|
|
|
+ salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
|
|
|
|
+ salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
|
|
|
|
+ salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
|
|
|
|
+ salesCustomerPartsItemBean.setWorkerOrderItemId(workerOrderItem.getId());
|
|
|
|
+
|
|
|
|
+ salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
|
|
|
|
|
|
- for (WorkerOrderItem workerOrderItem : inner) {
|
|
|
|
- if (workerOrderItem.getChargeType().equals("SERV")) {
|
|
|
|
- continue;
|
|
|
|
}
|
|
}
|
|
- SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
|
|
|
|
|
|
|
|
- salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
|
|
|
|
- salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
|
|
|
|
- salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
|
|
|
|
- salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
|
|
|
|
- salesCustomerPartsItemBean.setWorkerOrderItemId(workerOrderItem.getId());
|
|
|
|
|
|
+ salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
|
|
|
|
|
|
- salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
|
|
|
|
|
|
+ salesCustomerPartsBeans.add(salesCustomerPartsBean);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
|
|
|
|
|
|
|
|
- salesCustomerPartsBeans.add(salesCustomerPartsBean);
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(OUTSIDE)) {
|
|
|
|
+ SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
|
|
|
|
+ salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
|
|
|
|
+ salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
|
|
|
|
+ salesCustomerPartsBean.setRepairFlag("OUTSIDE");
|
|
|
|
+ salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
|
|
|
|
+ salesCustomerPartsBean.setWorkerNumber(workerOrder.getWorkerNumber());
|
|
|
|
+ salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
|
|
|
|
+ salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
|
|
|
|
+ salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
|
|
|
|
+ salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
|
|
|
|
+ salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
|
|
|
|
+ salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
|
|
|
|
+ salesCustomerPartsBean.setRemark(workerOrder.getRemark());
|
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(OUTSIDE)) {
|
|
|
|
- SalesCustomerPartsBean salesCustomerPartsBean = new SalesCustomerPartsBean();
|
|
|
|
- salesCustomerPartsBean.setCompanyWechatId(workerOrder.getCompanyWechatId());
|
|
|
|
- salesCustomerPartsBean.setCompanyWechatName(workerOrder.getCompanyWechatName());
|
|
|
|
- salesCustomerPartsBean.setRepairFlag("OUTSIDE");
|
|
|
|
- salesCustomerPartsBean.setIdentity(workerOrder.getIdentity());
|
|
|
|
- salesCustomerPartsBean.setWorkerNumber(workerOrder.getWorkerNumber());
|
|
|
|
- salesCustomerPartsBean.setWorkerName(workerOrder.getWorkerName());
|
|
|
|
- salesCustomerPartsBean.setWorkOrderNo(workerOrder.getWorkerOrderId());
|
|
|
|
- salesCustomerPartsBean.setCustomerName(workerOrder.getUserName());
|
|
|
|
- salesCustomerPartsBean.setCustomerTel(workerOrder.getUserMobile());
|
|
|
|
- salesCustomerPartsBean.setReceiveWebsitId(adminWebsit.getWebsitId());
|
|
|
|
- salesCustomerPartsBean.setReceivePartsWebsitId(adminWebsit.getPartsWebsitId());
|
|
|
|
- salesCustomerPartsBean.setRemark(workerOrder.getRemark());
|
|
|
|
|
|
+ for (WorkerOrderItem workerOrderItem : OUTSIDE) {
|
|
|
|
+ if (workerOrderItem.getChargeType().equals("SERV")) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
|
|
|
|
|
|
|
|
+ salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
|
|
|
|
+ salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
|
|
|
|
+ salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
|
|
|
|
+ salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
|
|
|
|
+ salesCustomerPartsItemBean.setWorkerOrderItemId(workerOrderItem.getId());
|
|
|
|
|
|
- List<SalesCustomerPartsItemBean> salesCustomerPartsItemBeans = new ArrayList<>();
|
|
|
|
|
|
+ salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
|
|
|
|
|
|
- for (WorkerOrderItem workerOrderItem : OUTSIDE) {
|
|
|
|
- if (workerOrderItem.getChargeType().equals("SERV")) {
|
|
|
|
- continue;
|
|
|
|
}
|
|
}
|
|
- SalesCustomerPartsItemBean salesCustomerPartsItemBean = new SalesCustomerPartsItemBean();
|
|
|
|
|
|
|
|
- salesCustomerPartsItemBean.setOldPartsName(workerOrderItem.getOldPartsName());
|
|
|
|
- salesCustomerPartsItemBean.setOldPartsNumber(workerOrderItem.getOldPartsNumber());
|
|
|
|
- salesCustomerPartsItemBean.setPartsNumber(workerOrderItem.getGoodsCode());
|
|
|
|
- salesCustomerPartsItemBean.setQty(workerOrderItem.getNum());
|
|
|
|
- salesCustomerPartsItemBean.setWorkerOrderItemId(workerOrderItem.getId());
|
|
|
|
|
|
+ salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
|
|
|
|
|
|
- salesCustomerPartsItemBeans.add(salesCustomerPartsItemBean);
|
|
|
|
|
|
+ salesCustomerPartsBeans.add(salesCustomerPartsBean);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- salesCustomerPartsBean.setItems(salesCustomerPartsItemBeans);
|
|
|
|
-
|
|
|
|
- salesCustomerPartsBeans.add(salesCustomerPartsBean);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(salesCustomerPartsBeans)) {
|
|
|
|
+ // 开始处理库存
|
|
|
|
+ for (SalesCustomerPartsBean salesCustomerPartsBean : salesCustomerPartsBeans) {
|
|
|
|
+ workerStockLogic.oldRefundManageSyncAdd(salesCustomerPartsBean);
|
|
|
|
+ }
|
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(salesCustomerPartsBeans)) {
|
|
|
|
- // 开始处理库存
|
|
|
|
- for (SalesCustomerPartsBean salesCustomerPartsBean : salesCustomerPartsBeans) {
|
|
|
|
- workerStockLogic.oldRefundManageSyncAdd(salesCustomerPartsBean);
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: ", e);
|
|
|
|
- workerOrder.setExRemark(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: " + e.getMessage());
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: ", e);
|
|
|
|
+ workerOrder.setExRemark(workerOrder.getOrderId() + " 师傅配件扣自有库存失败: " + e.getMessage());
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- // 辅材扣库存
|
|
|
|
- try {
|
|
|
|
- if (workerOrder.getGoodsType().equals(WebsitGoodsTypeEnum.M.toString())) {
|
|
|
|
- List<WorkerStockDTO> workerStockDTOS = new ArrayList<>();
|
|
|
|
- this.makeSubStockData(workerOrder, workerOrderItems, workerStockDTOS);
|
|
|
|
|
|
+ // 辅材扣库存
|
|
|
|
+ try {
|
|
|
|
+ if (workerOrder.getGoodsType().equals(WebsitGoodsTypeEnum.M.toString())) {
|
|
|
|
+ List<WorkerStockDTO> workerStockDTOS = new ArrayList<>();
|
|
|
|
+ this.makeSubStockData(workerOrder, workerOrderItems, workerStockDTOS);
|
|
|
|
|
|
- if (CollectionUtil.isNotEmpty(workerStockDTOS)) {
|
|
|
|
- // 开始处理库存
|
|
|
|
- workerStockLogic.fucaiHandleWorkerStock(workerStockDTOS);
|
|
|
|
|
|
+ if (CollectionUtil.isNotEmpty(workerStockDTOS)) {
|
|
|
|
+ // 开始处理库存
|
|
|
|
+ workerStockLogic.fucaiHandleWorkerStock(workerStockDTOS);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error(workerOrder.getOrderId() + " 师傅辅材扣库存失败: ", e);
|
|
|
|
+ throw new RemoteServiceException("师傅辅材扣库存失败,没有库存");
|
|
}
|
|
}
|
|
- } catch (Exception e) {
|
|
|
|
- log.error(workerOrder.getOrderId() + " 师傅辅材扣库存失败: ", e);
|
|
|
|
- throw new RemoteServiceException("师傅辅材扣库存失败,没有库存");
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
- //插入结算数据
|
|
|
|
- this.addSettlementOrder(workerOrder, workerOrderItems);
|
|
|
|
-
|
|
|
|
|
|
+ //插入结算数据
|
|
|
|
+ this.addSettlementOrder(workerOrder, workerOrderItems);
|
|
|
|
|
|
|
|
|
|
|
|
+ } finally {
|
|
|
|
+ obtain.unlock();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -676,9 +694,9 @@ public class SettlementOrderLogic {
|
|
settlementOrder.setTranscationId(workerOrder.getTranscationId());
|
|
settlementOrder.setTranscationId(workerOrder.getTranscationId());
|
|
settlementOrder.setOpenId(workerOrder.getOpenId());
|
|
settlementOrder.setOpenId(workerOrder.getOpenId());
|
|
|
|
|
|
- if (!StringUtil.isEmpty(workerOrder.getWorkerOrderId())){
|
|
|
|
|
|
+ if (!StringUtil.isEmpty(workerOrder.getWorkerOrderId())) {
|
|
PgOrderBase pgOrderBase = pgOrderBaseService.getById(workerOrder.getWorkerOrderId());
|
|
PgOrderBase pgOrderBase = pgOrderBaseService.getById(workerOrder.getWorkerOrderId());
|
|
- if (pgOrderBase != null){
|
|
|
|
|
|
+ if (pgOrderBase != null) {
|
|
settlementOrder.setSaleType(pgOrderBase.getSaleType());
|
|
settlementOrder.setSaleType(pgOrderBase.getSaleType());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -687,10 +705,10 @@ public class SettlementOrderLogic {
|
|
if (adminCompanyWechat.getDayNum() != null) {
|
|
if (adminCompanyWechat.getDayNum() != null) {
|
|
DateTime dateTime = DateUtil.offsetDay(new Date(), adminCompanyWechat.getDayNum());
|
|
DateTime dateTime = DateUtil.offsetDay(new Date(), adminCompanyWechat.getDayNum());
|
|
String format = DateUtil.format(dateTime, "yyyy-MM-dd");
|
|
String format = DateUtil.format(dateTime, "yyyy-MM-dd");
|
|
- String formatDate = format+" "+adminCompanyWechat.getHourTime();
|
|
|
|
|
|
+ String formatDate = format + " " + adminCompanyWechat.getHourTime();
|
|
DateTime parse = DateUtil.parse(formatDate);
|
|
DateTime parse = DateUtil.parse(formatDate);
|
|
settlementOrder.setChangeTime(parse);
|
|
settlementOrder.setChangeTime(parse);
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
DateTime dateTime = DateUtil.offsetDay(new Date(), 1);
|
|
DateTime dateTime = DateUtil.offsetDay(new Date(), 1);
|
|
settlementOrder.setChangeTime(dateTime);
|
|
settlementOrder.setChangeTime(dateTime);
|
|
}
|
|
}
|
|
@@ -708,7 +726,6 @@ public class SettlementOrderLogic {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
private void addSettlementManaulWorker(WorkerOrder workerOrder, List<WorkerOrderItem> workerOrderItems) {
|
|
private void addSettlementManaulWorker(WorkerOrder workerOrder, List<WorkerOrderItem> workerOrderItems) {
|
|
AdminCompanyWechat adminCompanyWechat = adminCompanyWechatService.getById(workerOrder.getCompanyWechatId());
|
|
AdminCompanyWechat adminCompanyWechat = adminCompanyWechatService.getById(workerOrder.getCompanyWechatId());
|
|
WorkerSettlementManual one = workerSettlementManualService.lambdaQuery()
|
|
WorkerSettlementManual one = workerSettlementManualService.lambdaQuery()
|
|
@@ -743,7 +760,6 @@ public class SettlementOrderLogic {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
private void addManualSettlementOrder(WorkerOrder workerOrder, List<WorkerOrderItem> workerOrderItems) {
|
|
private void addManualSettlementOrder(WorkerOrder workerOrder, List<WorkerOrderItem> workerOrderItems) {
|
|
AdminCompanyWechat adminCompanyWechat = adminCompanyWechatService.getById(workerOrder.getCompanyWechatId());
|
|
AdminCompanyWechat adminCompanyWechat = adminCompanyWechatService.getById(workerOrder.getCompanyWechatId());
|
|
|
|
|
|
@@ -822,11 +838,11 @@ public class SettlementOrderLogic {
|
|
|
|
|
|
*/
|
|
*/
|
|
/**
|
|
/**
|
|
- * 单个师傅库存处理
|
|
|
|
- *
|
|
|
|
- * @param stockList
|
|
|
|
- * @throws Exception
|
|
|
|
- *//*
|
|
|
|
|
|
+ * 单个师傅库存处理
|
|
|
|
+ *
|
|
|
|
+ * @param stockList
|
|
|
|
+ * @throws Exception
|
|
|
|
+ *//*
|
|
|
|
|
|
public void handleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
public void handleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
@@ -1091,11 +1107,11 @@ public class SettlementOrderLogic {
|
|
}
|
|
}
|
|
*/
|
|
*/
|
|
/**
|
|
/**
|
|
- * 单个师傅库存处理
|
|
|
|
- *
|
|
|
|
- * @param stockList
|
|
|
|
- * @throws Exception
|
|
|
|
- *//*
|
|
|
|
|
|
+ * 单个师傅库存处理
|
|
|
|
+ *
|
|
|
|
+ * @param stockList
|
|
|
|
+ * @throws Exception
|
|
|
|
+ *//*
|
|
|
|
|
|
public void materialGoodsStockLogichandleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
public void materialGoodsStockLogichandleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
@@ -1313,11 +1329,11 @@ public class SettlementOrderLogic {
|
|
|
|
|
|
*/
|
|
*/
|
|
/**
|
|
/**
|
|
- * 单个师傅库存处理
|
|
|
|
- *
|
|
|
|
- * @param stockList
|
|
|
|
- * @throws Exception
|
|
|
|
- *//*
|
|
|
|
|
|
+ * 单个师傅库存处理
|
|
|
|
+ *
|
|
|
|
+ * @param stockList
|
|
|
|
+ * @throws Exception
|
|
|
|
+ *//*
|
|
|
|
|
|
public void uhandleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
public void uhandleWorkerStock(List<WorkerStockDTO> stockList) throws Exception {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|
|
if (!TransactionSynchronizationManager.isSynchronizationActive()) {
|