|
@@ -1,15 +1,19 @@
|
|
|
package com.sd.business.service.inventory.impl;
|
|
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.sd.business.entity.inventory.enums.FinishedOperationTypeEnum;
|
|
|
import com.sd.business.entity.inventory.po.InventoryFinishedOrder;
|
|
|
import com.sd.business.entity.inventory.po.InventoryFinishedOrderDetail;
|
|
|
import com.sd.business.mapper.inventory.InventoryFinishedOrderDetailMapper;
|
|
|
import com.sd.business.service.inventory.InventoryFinishedOrderDetailService;
|
|
|
+import com.sd.business.util.CodeEnum;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -26,9 +30,18 @@ public class InventoryFinishedOrderDetailServiceImpl extends ServiceImpl<Invento
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void add(List<InventoryFinishedOrder> list, FinishedOperationTypeEnum typeEnum) {
|
|
|
+ public synchronized void add(List<InventoryFinishedOrder> list, FinishedOperationTypeEnum typeEnum) {
|
|
|
+
|
|
|
+ String code = typeEnum.equals(FinishedOperationTypeEnum.PRODUCTION_WAREHOUSING) ?
|
|
|
+ CodeEnum.FINISHED_IN.getCode() : CodeEnum.FINISHED_OUT.getCode();
|
|
|
+
|
|
|
+ String prefix = code.substring(0, code.length() - 6);
|
|
|
+ Map<String, Integer> numMap = new HashMap<>(1);
|
|
|
+ numMap.put("num", Convert.toInt(code.replace(prefix, "")));
|
|
|
+
|
|
|
List<InventoryFinishedOrderDetail> inventoryFinishedOrderDetailList = list.stream().map(item -> {
|
|
|
InventoryFinishedOrderDetail inventoryFinishedOrderDetail = new InventoryFinishedOrderDetail();
|
|
|
+ inventoryFinishedOrderDetail.setCode(prefix + numMap.get("num"));
|
|
|
inventoryFinishedOrderDetail.setInventoryFinishedOrderId(item.getId());
|
|
|
inventoryFinishedOrderDetail.setDepartmentId(item.getDepartmentId());
|
|
|
inventoryFinishedOrderDetail.setOrderInfoId(item.getOrderInfoId());
|
|
@@ -36,9 +49,12 @@ public class InventoryFinishedOrderDetailServiceImpl extends ServiceImpl<Invento
|
|
|
inventoryFinishedOrderDetail.setSkuSpecId(item.getSkuSpecId());
|
|
|
inventoryFinishedOrderDetail.setQuantity(item.getQuantity());
|
|
|
inventoryFinishedOrderDetail.setOperationType(typeEnum.getType());
|
|
|
+
|
|
|
+ numMap.put("num", numMap.get("num") + 1);
|
|
|
return inventoryFinishedOrderDetail;
|
|
|
}).collect(Collectors.toList());
|
|
|
saveBatch(inventoryFinishedOrderDetailList);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|