|
|
@@ -317,14 +317,33 @@ public class OrderService extends BaseService<Order> {
|
|
|
|
|
|
// 订单明细保存
|
|
|
if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
|
|
|
+ // 使用HashMap来存储SupName到SupId的映射
|
|
|
+ Map<String, String> supNameToSupIdMap = new HashMap<>();
|
|
|
for (OrderItemVO orderItemVO : orderVO.getItemList()) {
|
|
|
- //外协品供应上只有name 没有id 的时候 要新建供应商
|
|
|
- if (orderItemVO.getSkuId() == null) { //说明外协品
|
|
|
- if (orderItemVO.getSupId() == null) { //说明在库里不存在这个供应商
|
|
|
- Supplier supplier = supplierService.saleinsert(new SupplierVo().setSupName(orderItemVO.getSupName()).setSupType("供应商类别-外协").setCpId(authUtils.getStaff().getCpId()));
|
|
|
- orderItemVO.setSupId(supplier.getSupId());
|
|
|
+ // 如果SKU ID为空,表示外协品
|
|
|
+ if (orderItemVO.getSkuId() == null) {
|
|
|
+ // 如果SupId为空,表示在库中不存在这个供应商
|
|
|
+ if (orderItemVO.getSupId() == null) {
|
|
|
+ // 检查是否已经为这个SupName创建了供应商
|
|
|
+ String existingSupId = supNameToSupIdMap.get(orderItemVO.getSupName());
|
|
|
+ if (existingSupId == null) {
|
|
|
+ // 尚未创建,新建供应商
|
|
|
+ SupplierVo supplierVo = new SupplierVo()
|
|
|
+ .setSupName(orderItemVO.getSupName())
|
|
|
+ .setSupType("供应商类别-外协")
|
|
|
+ .setCpId(authUtils.getStaff().getCpId());
|
|
|
+ Supplier supplier = supplierService.saleinsert(supplierVo);
|
|
|
+ // 将新创建的SupId存入映射
|
|
|
+ supNameToSupIdMap.put(orderItemVO.getSupName(), supplier.getSupId());
|
|
|
+ // 设置orderItemVO的SupId
|
|
|
+ orderItemVO.setSupId(supplier.getSupId());
|
|
|
+ } else {
|
|
|
+ // 已经创建,直接设置orderItemVO的SupId
|
|
|
+ orderItemVO.setSupId(existingSupId);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
if (orderItem.getPriceStd() == null) {
|
|
|
@@ -339,6 +358,8 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
/**************************************** 客户收款begin ********************************/
|
|
|
if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
|
|
|
// 商户产品版本
|
|
|
@@ -545,7 +566,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
|
|
|
orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
|
|
|
//当gradeCode为"STD"时,无论outStatus是什么,都直接删除;而当gradeCode不是"STD"时,只有outStatus为DAICHUKU时才允许删除
|
|
|
- if ("STD".equals(gradeCode) ||
|
|
|
+ if (Constant.GradeCode.STD.getName().equals(gradeCode) ||
|
|
|
(Constant.OutStatus.DAICHUKU.getName().equals(orderItemForUpdate.getOutStatus()))) {
|
|
|
orderItemMapper.deleteById(orderItemVO.getItemId());
|
|
|
} else {
|
|
|
@@ -561,7 +582,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
|
|
|
// 出库数量
|
|
|
BigDecimal outintOrOutQty = orderItemForUpdate.getOutingQty().add(orderItemForUpdate.getOutQty());
|
|
|
- if (!"STD".equals(gradeCode)) {
|
|
|
+ if (!Constant.GradeCode.STD.getName().equals(gradeCode)) {
|
|
|
// 商品数量不能小于(出库中数量+已出库数量)
|
|
|
if (orderItemVO.getItemQty().compareTo(outintOrOutQty) == -1) {
|
|
|
throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
|
|
|
@@ -592,14 +613,33 @@ public class OrderService extends BaseService<Order> {
|
|
|
|
|
|
// 新增的
|
|
|
List<OrderItemVO> insertOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() == null).collect(Collectors.toList());
|
|
|
+ // 使用HashMap来存储SupName到SupId的映射
|
|
|
+ Map<String, String> supNameToSupIdMap = new HashMap<>();
|
|
|
for (OrderItemVO orderItemVO : insertOrderItemVOList) {
|
|
|
- //外协品供应上只有name 没有id 的时候 要新建供应商
|
|
|
- if (orderItemVO.getSkuId() == null) { //说明外协品
|
|
|
- if (orderItemVO.getSupId() == null) { //说明在库里不存在这个供应商
|
|
|
- Supplier supplier = supplierService.saleinsert(new SupplierVo().setSupName(orderItemVO.getSupName()).setSupType("供应商类别-外协").setCpId(authUtils.getStaff().getCpId()));
|
|
|
- orderItemVO.setSupId(supplier.getSupId());
|
|
|
+ // 如果SKU ID为空,表示外协品
|
|
|
+ if (orderItemVO.getSkuId() == null) {
|
|
|
+ // 如果SupId为空,表示在库中不存在这个供应商
|
|
|
+ if (orderItemVO.getSupId() == null) {
|
|
|
+ // 检查是否已经为这个SupName创建了供应商
|
|
|
+ String existingSupId = supNameToSupIdMap.get(orderItemVO.getSupName());
|
|
|
+ if (existingSupId == null) {
|
|
|
+ // 尚未创建,新建供应商
|
|
|
+ SupplierVo supplierVo = new SupplierVo()
|
|
|
+ .setSupName(orderItemVO.getSupName())
|
|
|
+ .setSupType("供应商类别-外协")
|
|
|
+ .setCpId(authUtils.getStaff().getCpId());
|
|
|
+ Supplier supplier = supplierService.saleinsert(supplierVo);
|
|
|
+ // 将新创建的SupId存入映射
|
|
|
+ supNameToSupIdMap.put(orderItemVO.getSupName(), supplier.getSupId());
|
|
|
+ // 设置orderItemVO的SupId
|
|
|
+ orderItemVO.setSupId(supplier.getSupId());
|
|
|
+ } else {
|
|
|
+ // 已经创建,直接设置orderItemVO的SupId
|
|
|
+ orderItemVO.setSupId(existingSupId);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
orderItem.setItemId(UUID.randomUUID().toString());
|
|
|
@@ -608,7 +648,6 @@ public class OrderService extends BaseService<Order> {
|
|
|
orderItemVO.setOrderId(orderVO.getOrderId());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 删除业绩信息
|
|
|
multiOwnerMapper.deleteByOrderId(order.getOrderId());
|
|
|
|
|
|
@@ -739,7 +778,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
// 更新总账表的锁定金额
|
|
|
accountService.updateReceiptLock(recPayForUpdate.getObjectId());
|
|
|
}
|
|
|
- } else if ("STD".equals(gradeCode)) {
|
|
|
+ } else if (Constant.GradeCode.STD.getName().equals(gradeCode)) {
|
|
|
if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
|
|
|
// 计算订单明细的出库中数量,金额合计
|
|
|
RecPayItemVO itemSum = orderVO.getReceiptList().stream().reduce((x, y) -> {
|
|
|
@@ -816,7 +855,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
accountService.updateMac(macId);
|
|
|
}
|
|
|
/**************************************** 客户收款end ********************************/
|
|
|
- if ("STD".equals(gradeCode)) { //订单 转 出库数据
|
|
|
+ if (Constant.GradeCode.STD.getName().equals(gradeCode)) { //订单 转 出库数据
|
|
|
// 合并两个列表
|
|
|
List<OrderItemVO> combinedList = Stream.concat(insertOrderItemVOList.stream(), editOrderItemVOList.stream())
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -1099,7 +1138,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
|
|
|
String gradeCode = authUtils.getStaff().getGradeCode();
|
|
|
// 更新总账表的总收款额和可用额
|
|
|
- if ("STD".equals(gradeCode)) {
|
|
|
+ if (Constant.GradeCode.STD.getName().equals(gradeCode)) {
|
|
|
accountService.updateReceipt(recPayForUpdate.getObjectId());
|
|
|
} else {
|
|
|
accountService.updateReceiptLock(recPayForUpdate.getObjectId());
|