|
@@ -11,7 +11,9 @@ import com.sckw.core.utils.BeanUtils;
|
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
import com.sckw.core.utils.CollectionUtils;
|
|
|
import com.sckw.core.utils.OrderGenerateUtils;
|
|
import com.sckw.core.utils.OrderGenerateUtils;
|
|
|
import com.sckw.core.utils.StringUtils;
|
|
import com.sckw.core.utils.StringUtils;
|
|
|
|
|
+import com.sckw.core.web.constant.HttpStatus;
|
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
import com.sckw.core.web.context.LoginUserHolder;
|
|
|
|
|
+import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.mongo.model.SckwTradeOrder;
|
|
import com.sckw.mongo.model.SckwTradeOrder;
|
|
|
import com.sckw.order.dao.KwoTradeOrderMapper;
|
|
import com.sckw.order.dao.KwoTradeOrderMapper;
|
|
|
import com.sckw.order.model.*;
|
|
import com.sckw.order.model.*;
|
|
@@ -216,7 +218,10 @@ public class KwoTradeOrderService {
|
|
|
.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
|
|
.setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
|
|
|
kwoTradeOrderMapper.insert(order);
|
|
kwoTradeOrderMapper.insert(order);
|
|
|
//扣减库存
|
|
//扣减库存
|
|
|
- goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
|
|
addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -237,7 +242,7 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
}
|
|
|
//todo: 则先校验是否存在对供应企业的预付钱包 ;【预计采购金额】是否大于预付清单的【可用预付】金额
|
|
//todo: 则先校验是否存在对供应企业的预付钱包 ;【预计采购金额】是否大于预付清单的【可用预付】金额
|
|
|
KwpGoods goods = goodsInfoService.getGoodsById(goodId);
|
|
KwpGoods goods = goodsInfoService.getGoodsById(goodId);
|
|
|
- if (Objects.isNull(goods) || !Objects.equals(goods.getStatus(), 1)) {
|
|
|
|
|
|
|
+ if (Objects.isNull(goods) || Objects.equals(goods.getDelFlag(), Global.YES) || !Objects.equals(goods.getStatus(), 1)) {
|
|
|
throw new BusinessException("商品不存在或已下架!");
|
|
throw new BusinessException("商品不存在或已下架!");
|
|
|
}
|
|
}
|
|
|
if (goods.getAmount().compareTo(amount) < 0) {
|
|
if (goods.getAmount().compareTo(amount) < 0) {
|
|
@@ -272,7 +277,10 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
}
|
|
|
kwoTradeOrderMapper.insert(order);
|
|
kwoTradeOrderMapper.insert(order);
|
|
|
//扣减库存
|
|
//扣减库存
|
|
|
- goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
|
|
addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class), false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -385,7 +393,10 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
}
|
|
|
orderCheck(param.getGoodsInfo().getGoodsId(), param.getTrading(), param.getPrice(), param.getAmount(), param.getGoodsInfo().getUnitPrice(), false);
|
|
orderCheck(param.getGoodsInfo().getGoodsId(), param.getTrading(), param.getPrice(), param.getAmount(), param.getGoodsInfo().getUnitPrice(), false);
|
|
|
//扣减库存
|
|
//扣减库存
|
|
|
- goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
order.setAmount(param.getAmount()).setUnit(Objects.isNull(param.getGoodsInfo()) ? null : param.getGoodsInfo().getUnit())
|
|
order.setAmount(param.getAmount()).setUnit(Objects.isNull(param.getGoodsInfo()) ? null : param.getGoodsInfo().getUnit())
|
|
|
.setPrice(param.getPrice()).setTrading(param.getTrading()).setPickupType(param.getPickupType())
|
|
.setPrice(param.getPrice()).setTrading(param.getTrading()).setPickupType(param.getPickupType())
|
|
@@ -586,7 +597,10 @@ public class KwoTradeOrderService {
|
|
|
kwoTradeOrderTrackService.insert(track);
|
|
kwoTradeOrderTrackService.insert(track);
|
|
|
//更新库存
|
|
//更新库存
|
|
|
if (amount.compareTo(BigDecimal.ZERO) != 0) {
|
|
if (amount.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
- goodsInfoService.updateGoodsAmount(goods.getGoodsId(), amount);
|
|
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(goods.getGoodsId(), amount);
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
//更新mongodb
|
|
//更新mongodb
|
|
|
SckwTradeOrder updateParam = BeanUtils.copyProperties(param, SckwTradeOrder.class);
|
|
SckwTradeOrder updateParam = BeanUtils.copyProperties(param, SckwTradeOrder.class);
|
|
@@ -624,7 +638,10 @@ public class KwoTradeOrderService {
|
|
|
kwoTradeOrderTrackService.insert(track);
|
|
kwoTradeOrderTrackService.insert(track);
|
|
|
//释放商品库存
|
|
//释放商品库存
|
|
|
KwoTradeOrderGoods goods = kwoTradeOrderGoodsService.getByOrderId(order.getId());
|
|
KwoTradeOrderGoods goods = kwoTradeOrderGoodsService.getByOrderId(order.getId());
|
|
|
- goodsInfoService.updateGoodsAmount(goods.getGoodsId(), order.getAmount().negate());
|
|
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(goods.getGoodsId(), order.getAmount().negate());
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
//mongodb更新订单状态
|
|
//mongodb更新订单状态
|
|
|
SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
updateParam.setTOrderId(order.getId()).setStatus(order.getStatus()).setUpdateBy(LoginUserHolder.getUserId())
|
|
updateParam.setTOrderId(order.getId()).setStatus(order.getStatus()).setUpdateBy(LoginUserHolder.getUserId())
|
|
@@ -667,22 +684,27 @@ public class KwoTradeOrderService {
|
|
|
if (!Objects.equals(String.valueOf(order.getStatus()), DictEnum.TORDER_STATUS_4.getValue())) {
|
|
if (!Objects.equals(String.valueOf(order.getStatus()), DictEnum.TORDER_STATUS_4.getValue())) {
|
|
|
throw new BusinessException("执行中的订单才能完结订单!");
|
|
throw new BusinessException("执行中的订单才能完结订单!");
|
|
|
}
|
|
}
|
|
|
- if (kwoTradeOrderUnitService.entMatch(param.getId(),LoginUserHolder.getEntId(),DictEnum.TORDER_UNIT_TYPE_2.getValue())){
|
|
|
|
|
|
|
+ if (kwoTradeOrderUnitService.entMatch(param.getId(), LoginUserHolder.getEntId(), DictEnum.TORDER_UNIT_TYPE_2.getValue())) {
|
|
|
throw new BusinessException("无订单操作权限!");
|
|
throw new BusinessException("无订单操作权限!");
|
|
|
}
|
|
}
|
|
|
- KwoTradeOrderGoods goods = kwoTradeOrderGoodsService.getByOrderId(param.getId());
|
|
|
|
|
- if (Objects.isNull(goods)) {
|
|
|
|
|
- throw new BusinessException("商品信息异常!");
|
|
|
|
|
- }
|
|
|
|
|
order.setActualAmount(param.getActualAmount()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
|
|
order.setActualAmount(param.getActualAmount()).setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_5.getValue()));
|
|
|
kwoTradeOrderMapper.updateById(order);
|
|
kwoTradeOrderMapper.updateById(order);
|
|
|
//订单状态记录
|
|
//订单状态记录
|
|
|
KwoTradeOrderTrack track = new KwoTradeOrderTrack();
|
|
KwoTradeOrderTrack track = new KwoTradeOrderTrack();
|
|
|
track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setRemark(param.getRemark()).setStatus(order.getStatus());
|
|
track.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo()).setRemark(param.getRemark()).setStatus(order.getStatus());
|
|
|
kwoTradeOrderTrackService.insert(track);
|
|
kwoTradeOrderTrackService.insert(track);
|
|
|
- //更新库存
|
|
|
|
|
- BigDecimal amount = param.getActualAmount().subtract(order.getAmount());
|
|
|
|
|
- goodsInfoService.updateGoodsAmount(goods.getGoodsId(), amount);
|
|
|
|
|
|
|
+ if (param.getActualAmount().compareTo(order.getActualAmount()) != 0) {
|
|
|
|
|
+ KwoTradeOrderGoods goods = kwoTradeOrderGoodsService.getByOrderId(param.getId());
|
|
|
|
|
+ if (Objects.isNull(goods)) {
|
|
|
|
|
+ throw new BusinessException("商品信息异常!");
|
|
|
|
|
+ }
|
|
|
|
|
+ //更新库存
|
|
|
|
|
+ BigDecimal amount = param.getActualAmount().subtract(order.getAmount());
|
|
|
|
|
+ HttpResult updateResult = goodsInfoService.updateGoodsAmount(goods.getGoodsId(), amount);
|
|
|
|
|
+ if (!Objects.equals(HttpStatus.SUCCESS_CODE, updateResult.getCode())) {
|
|
|
|
|
+ throw new BusinessException(updateResult.getMsg());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
//mongodb更新订单状态
|
|
//mongodb更新订单状态
|
|
|
SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
updateParam.setTOrderId(order.getId()).setStatus(order.getStatus()).setUpdateBy(LoginUserHolder.getUserId())
|
|
updateParam.setTOrderId(order.getId()).setStatus(order.getStatus()).setUpdateBy(LoginUserHolder.getUserId())
|
|
@@ -717,6 +739,14 @@ public class KwoTradeOrderService {
|
|
|
kwoTradeOrderUnitService.delByOrderIds(ids);
|
|
kwoTradeOrderUnitService.delByOrderIds(ids);
|
|
|
kwoTradeOrderAddressService.delByOrderIds(ids);
|
|
kwoTradeOrderAddressService.delByOrderIds(ids);
|
|
|
kwoTradeOrderContractService.delByOrderIds(ids);
|
|
kwoTradeOrderContractService.delByOrderIds(ids);
|
|
|
|
|
+ //更新mongodb
|
|
|
|
|
+ ids.forEach(id -> {
|
|
|
|
|
+ SckwTradeOrder updateParam = new SckwTradeOrder();
|
|
|
|
|
+ updateParam.setTOrderId(id).setDelFlag(Global.YES).setUpdateBy(LoginUserHolder.getUserId())
|
|
|
|
|
+ .setUpdateByName(LoginUserHolder.getUserName()).setUpdateTime(new Date());
|
|
|
|
|
+ saveMongoDb(3, updateParam);
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -731,4 +761,15 @@ public class KwoTradeOrderService {
|
|
|
wrapper.eq(KwoTradeOrder::getId, id).eq(KwoTradeOrder::getDelFlag, Global.NO).last("LIMIT 1");
|
|
wrapper.eq(KwoTradeOrder::getId, id).eq(KwoTradeOrder::getDelFlag, Global.NO).last("LIMIT 1");
|
|
|
return kwoTradeOrderMapper.selectOne(wrapper);
|
|
return kwoTradeOrderMapper.selectOne(wrapper);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc: 根据id更新
|
|
|
|
|
+ * @author: yzc
|
|
|
|
|
+ * @date: 2023-07-20 10:24
|
|
|
|
|
+ * @Param order:
|
|
|
|
|
+ * @return: void
|
|
|
|
|
+ */
|
|
|
|
|
+ public void updateById(KwoTradeOrder order) {
|
|
|
|
|
+ kwoTradeOrderMapper.updateById(order);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|