|
@@ -15,6 +15,7 @@ import com.dk.mdm.infrastructure.convert.sale.OrderConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OutBoundDtoConvert;
|
|
import com.dk.mdm.infrastructure.convert.sale.OutBoundDtoConvert;
|
|
|
import com.dk.mdm.mapper.common.CommonMapper;
|
|
import com.dk.mdm.mapper.common.CommonMapper;
|
|
|
|
|
+import com.dk.mdm.mapper.ivt.OutboundItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.AccountItemMapper;
|
|
import com.dk.mdm.mapper.mac.AccountItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayHandleItemMapper;
|
|
import com.dk.mdm.mapper.mac.RecPayHandleItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayItemMapper;
|
|
import com.dk.mdm.mapper.mac.RecPayItemMapper;
|
|
@@ -37,6 +38,7 @@ import com.dk.mdm.model.pojo.sale.Order;
|
|
|
import com.dk.common.service.BaseService;
|
|
import com.dk.common.service.BaseService;
|
|
|
import com.dk.common.mapper.BaseMapper;
|
|
import com.dk.common.mapper.BaseMapper;
|
|
|
import com.dk.mdm.model.pojo.sale.OrderItem;
|
|
import com.dk.mdm.model.pojo.sale.OrderItem;
|
|
|
|
|
+import com.dk.mdm.model.query.ivt.OutboundItemQuery;
|
|
|
import com.dk.mdm.model.query.mac.RecPayItemQuery;
|
|
import com.dk.mdm.model.query.mac.RecPayItemQuery;
|
|
|
import com.dk.mdm.model.query.mac.RecPayQuery;
|
|
import com.dk.mdm.model.query.mac.RecPayQuery;
|
|
|
import com.dk.mdm.model.query.sale.MultiOwnerQuery;
|
|
import com.dk.mdm.model.query.sale.MultiOwnerQuery;
|
|
@@ -146,6 +148,9 @@ public class OrderService extends BaseService<Order> {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OutBoundDtoConvert outBoundDtoConvert;
|
|
private OutBoundDtoConvert outBoundDtoConvert;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private OutboundItemMapper outboundItemMapper;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* @desc : 条件查询
|
|
* @desc : 条件查询
|
|
|
* @author : 付斌
|
|
* @author : 付斌
|
|
@@ -521,8 +526,21 @@ public class OrderService extends BaseService<Order> {
|
|
|
for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
|
|
+ orderItem.setItemId(UUID.randomUUID().toString());
|
|
|
orderItemMapper.insert(orderItem);
|
|
orderItemMapper.insert(orderItem);
|
|
|
|
|
+ orderItemVO.setItemId(orderItem.getItemId());
|
|
|
|
|
+ orderItemVO.setOrderId(orderVO.getOrderId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 商户产品版本
|
|
|
|
|
+ String gradeCode = "PRO";
|
|
|
|
|
+ Map<String, Object> paramCompany = new HashMap<>();
|
|
|
|
|
+ paramCompany.put("cpId", orderVO.getCpId());
|
|
|
|
|
+ List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
|
|
|
|
|
+ if (listCompany.size() > 0) {
|
|
|
|
|
+ gradeCode = listCompany.get(0).get("gradeCode").toString();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
// 编辑的
|
|
// 编辑的
|
|
|
List<OrderItemVO> editOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
List<OrderItemVO> editOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
|
for (OrderItemVO orderItemVO : editOrderItemVOList) {
|
|
for (OrderItemVO orderItemVO : editOrderItemVOList) {
|
|
@@ -535,12 +553,43 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
}
|
|
|
// 如果出库数量不是0,则不能改仓库
|
|
// 如果出库数量不是0,则不能改仓库
|
|
|
if (outintOrOutQty.compareTo(BigDecimal.ZERO) != 0) {
|
|
if (outintOrOutQty.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
- if (!orderItemForUpdate.getWhId().equals(orderItemVO.getWhId())) {
|
|
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_ISOUT.getMessage());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(orderItemForUpdate.getSkuId()!=null){ //过滤外协品
|
|
|
|
|
+ if (!orderItemForUpdate.getWhId().equals(orderItemVO.getWhId())) {
|
|
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORDER_ISOUT.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItemService.updateByUuid(orderItem);
|
|
orderItemService.updateByUuid(orderItem);
|
|
|
|
|
+ // 免费版:
|
|
|
|
|
+ // 订单编辑钱保存,要更改对应出库单的钱
|
|
|
|
|
+ // 订单编辑数量保存,要更改对应出库单数量,并且更新库存;更改后数量不能小于退货数量;
|
|
|
|
|
+ // 专业版:编辑保持原逻辑
|
|
|
|
|
+ if ("STD".equals(gradeCode)) { //免費版特加逻辑
|
|
|
|
|
+ //更改后数量不能小于退货数量;
|
|
|
|
|
+ if(orderItemVO.getItemQty().compareTo(orderItemForUpdate.getReturnQty()) == -1){
|
|
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.GOODSQTY_NO_LESS_RETURNQTY.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ //
|
|
|
|
|
+ if (outintOrOutQty.compareTo(BigDecimal.ZERO) > 0) { //有出库数据
|
|
|
|
|
+// OutboundVO outboundVO = outBoundDtoConvert.convertToPo(orderVO);
|
|
|
|
|
+// outboundVO.setOutDate(LocalDate.now());
|
|
|
|
|
+// outboundVO.setOutingQty(orderVO.getSumQuantity());
|
|
|
|
|
+// outboundVO.setOutingAmt(orderVO.getFactAmt());
|
|
|
|
|
+// outboundVO.setFlgAutoHandle(orderVO.getFlgAutoHandle());
|
|
|
|
|
+// outboundVO.setFlgHandleSetting(orderVO.getFlgHandleSetting());
|
|
|
|
|
+// outboundVO.setFromId(order.getOrderId());
|
|
|
|
|
+// outboundVO.setFromNo(order.getOrderNo());
|
|
|
|
|
+// outboundVO.setOutDate(orderVO.getDeliveryDate());
|
|
|
|
|
+// outboundVO.setFactAmt(orderVO.getFactAmt());
|
|
|
|
|
+// outboundVO.setDiscount(orderVO.getDiscount());
|
|
|
|
|
+// outboundVO.setDiscAmt(orderVO.getDiscAmt());
|
|
|
|
|
+// outboundVO.setSumAmount(orderVO.getSumAmount());
|
|
|
|
|
+// outboundSaleOrderService.saleOutboundUpdate( outboundVO);
|
|
|
|
|
+ }
|
|
|
|
|
+// outboundItemMapper.selectByCond(new OutboundItemQuery().setFromItemId(orderItem.getItemId()));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 删除业绩信息
|
|
// 删除业绩信息
|
|
@@ -602,14 +651,6 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 商户产品版本
|
|
|
|
|
- String gradeCode = "PRO";
|
|
|
|
|
- Map<String, Object> paramCompany = new HashMap<>();
|
|
|
|
|
- paramCompany.put("cpId", orderVO.getCpId());
|
|
|
|
|
- List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
|
|
|
|
|
- if (listCompany.size() > 0) {
|
|
|
|
|
- gradeCode = listCompany.get(0).get("gradeCode").toString();
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
// 专业版有定金
|
|
// 专业版有定金
|
|
|
if ("PRO".equals(gradeCode)) {
|
|
if ("PRO".equals(gradeCode)) {
|
|
@@ -758,7 +799,36 @@ public class OrderService extends BaseService<Order> {
|
|
|
accountService.updateMac(macId);
|
|
accountService.updateMac(macId);
|
|
|
}
|
|
}
|
|
|
/**************************************** 客户收款end ********************************/
|
|
/**************************************** 客户收款end ********************************/
|
|
|
|
|
+ if(insertOrderItemVOList.size()>0){ //编辑时新选的数据生成出库单
|
|
|
|
|
+
|
|
|
|
|
+ //开单并出库办理
|
|
|
|
|
+ if (orderVO.getOutboundProcessingFlag() != null && orderVO.getOutboundProcessingFlag()) {
|
|
|
|
|
+ for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
|
|
|
+ orderItemVO.setOutingQty(orderItemVO.getItemQty());
|
|
|
|
|
+ orderItemVO.setOutingAmt(orderItemVO.getItemAmt());
|
|
|
|
|
+ orderItemVO.setPriceOut(orderItemVO.getFactPrice());
|
|
|
|
|
+ orderItemVO.setFromId(orderVO.getOrderId());
|
|
|
|
|
+ orderItemVO.setFromItemId(orderItemVO.getItemId());
|
|
|
|
|
+ }
|
|
|
|
|
+ orderVO.setItemList(insertOrderItemVOList);
|
|
|
|
|
+ OutboundVO outboundVO = outBoundDtoConvert.convertToPo(orderVO);
|
|
|
|
|
+ outboundVO.setOutDate(LocalDate.now());
|
|
|
|
|
+ outboundVO.setOutingQty(orderVO.getSumQuantity());
|
|
|
|
|
+ outboundVO.setOutingAmt(orderVO.getFactAmt());
|
|
|
|
|
+ outboundVO.setFlgAutoHandle(orderVO.getFlgAutoHandle());
|
|
|
|
|
+ outboundVO.setFlgHandleSetting(orderVO.getFlgHandleSetting());
|
|
|
|
|
+ outboundVO.setFromId(order.getOrderId());
|
|
|
|
|
+ outboundVO.setFromNo(order.getOrderNo());
|
|
|
|
|
+ outboundVO.setOutDate(orderVO.getDeliveryDate());
|
|
|
|
|
+ outboundVO.setFactAmt(orderVO.getFactAmt());
|
|
|
|
|
+ outboundVO.setDiscount(orderVO.getDiscount());
|
|
|
|
|
+ outboundVO.setDiscAmt(orderVO.getDiscAmt());
|
|
|
|
|
+ outboundVO.setSumAmount(orderVO.getSumAmount());
|
|
|
|
|
+
|
|
|
|
|
+ outboundSaleOrderService.inventoryOUtBond(outboundVO);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
return ResponseResultUtil.success();
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -938,4 +1008,70 @@ public class OrderService extends BaseService<Order> {
|
|
|
return ResponseResultUtil.success(data);
|
|
return ResponseResultUtil.success(data);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 一键作废
|
|
|
|
|
+ * @date : 2024/7/1 13:26
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ public ResponseResultVO<?> oneKeyInvalid(String id) {
|
|
|
|
|
+ Order orderForUpdate = orderMapper.selectByIdForUpdate(id);
|
|
|
|
|
+ //region并发校验
|
|
|
|
|
+ if (!orderForUpdate.getFlgValid()) {
|
|
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ //endregion
|
|
|
|
|
+
|
|
|
|
|
+ //region 作废
|
|
|
|
|
+ Order orderUpdate = new Order();
|
|
|
|
|
+ orderUpdate.setFlgValid(false).setOrderId(id);
|
|
|
|
|
+ super.update(orderUpdate, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
|
|
|
+ UUID.fromString(orderUpdate.getOrderId())));
|
|
|
|
|
+ //endregion
|
|
|
|
|
+
|
|
|
|
|
+ //region 需要重新计算的资金账户
|
|
|
|
|
+ List<String> macList = new ArrayList<>();
|
|
|
|
|
+ // 收款明细
|
|
|
|
|
+ RecPay recPayForUpdate = recPayMapper.selectByBiznisIdForUpdate(id, false);
|
|
|
|
|
+ if (recPayForUpdate != null) {
|
|
|
|
|
+ // 将之前的明细全部删除
|
|
|
|
|
+ List<RecPayItem> recPayItemOriginalList = recPayItemMapper.selectByZIdForUpdate(recPayForUpdate.getRpId());
|
|
|
|
|
+ for (RecPayItem recPayItem : recPayItemOriginalList) {
|
|
|
|
|
+ //改为更新false
|
|
|
|
|
+ RecPayItem recPayItemNew = new RecPayItem();
|
|
|
|
|
+ recPayItemNew.setItemId(recPayItem.getItemId()).setFlgValid(false);
|
|
|
|
|
+ recPayItemService.updateByUuid(recPayItemNew);
|
|
|
|
|
+ // 删除账款明细
|
|
|
|
|
+ accountItemMapper.deleteById(recPayItem.getAccItemId());
|
|
|
|
|
+ // 删除账户流水
|
|
|
|
|
+ moneyAccountItemMapper.deleteByInvoiceId(recPayItem.getItemId());
|
|
|
|
|
+
|
|
|
|
|
+ if (!macList.contains(recPayItem.getMacId())) {
|
|
|
|
|
+ macList.add(recPayItem.getMacId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新总账表的总收款额和可用额
|
|
|
|
|
+ accountService.updateReceiptLock(recPayForUpdate.getObjectId());
|
|
|
|
|
+
|
|
|
|
|
+ // 更新账户余额
|
|
|
|
|
+ for (String macId : macList) {
|
|
|
|
|
+ accountService.updateMac(macId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 作废
|
|
|
|
|
+ RecPay recPayUpdate = new RecPay();
|
|
|
|
|
+ recPayUpdate.setFlgValid(false).setRpId(recPayForUpdate.getRpId());
|
|
|
|
|
+ receiptService.updateByUuid(recPayUpdate);
|
|
|
|
|
+ }
|
|
|
|
|
+ //endregion
|
|
|
|
|
+
|
|
|
|
|
+ //region 作废出库单
|
|
|
|
|
+ outboundSaleOrderService.oneKeySaleOutboundRepeal(id);
|
|
|
|
|
+ //endregion
|
|
|
|
|
+
|
|
|
|
|
+ return ResponseResultUtil.success();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|