|
@@ -13,7 +13,12 @@ import com.ruoyi.framework.mybatis.holder.LogicHolder;
|
|
import com.sd.business.entity.artwork.po.ArtworkLibrary;
|
|
import com.sd.business.entity.artwork.po.ArtworkLibrary;
|
|
import com.sd.business.entity.bom.bo.BomSpecBo;
|
|
import com.sd.business.entity.bom.bo.BomSpecBo;
|
|
import com.sd.business.entity.bom.po.BomSpec;
|
|
import com.sd.business.entity.bom.po.BomSpec;
|
|
|
|
+import com.sd.business.entity.department.constant.DepartmentConstant;
|
|
import com.sd.business.entity.department.po.Department;
|
|
import com.sd.business.entity.department.po.Department;
|
|
|
|
+import com.sd.business.entity.in.dto.InOutStorageDto;
|
|
|
|
+import com.sd.business.entity.in.emums.InDetailTypeEnum;
|
|
|
|
+import com.sd.business.entity.in.emums.InOutTypeEnum;
|
|
|
|
+import com.sd.business.entity.in.po.InOutStorageBom;
|
|
import com.sd.business.entity.order.enums.OrderClassifyEnum;
|
|
import com.sd.business.entity.order.enums.OrderClassifyEnum;
|
|
import com.sd.business.entity.order.enums.OrderExceptionTypeEnum;
|
|
import com.sd.business.entity.order.enums.OrderExceptionTypeEnum;
|
|
import com.sd.business.entity.order.enums.OrderStatusEnum;
|
|
import com.sd.business.entity.order.enums.OrderStatusEnum;
|
|
@@ -23,6 +28,8 @@ import com.sd.business.entity.price.po.PriceBillingStandardDetail;
|
|
import com.sd.business.entity.sku.po.SkuSpec;
|
|
import com.sd.business.entity.sku.po.SkuSpec;
|
|
import com.sd.business.entity.sku.po.SkuSpecLink;
|
|
import com.sd.business.entity.sku.po.SkuSpecLink;
|
|
import com.sd.business.entity.statement.dto.StatementOfAccountDto;
|
|
import com.sd.business.entity.statement.dto.StatementOfAccountDto;
|
|
|
|
+import com.sd.business.entity.warehouse.constant.WarehouseConstant;
|
|
|
|
+import com.sd.business.service.in.InOutStorageService;
|
|
import com.sd.business.service.inventory.InventoryFinishedService;
|
|
import com.sd.business.service.inventory.InventoryFinishedService;
|
|
import com.sd.business.service.inventory.InventoryService;
|
|
import com.sd.business.service.inventory.InventoryService;
|
|
import com.sd.business.service.order.*;
|
|
import com.sd.business.service.order.*;
|
|
@@ -85,6 +92,9 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
@Autowired
|
|
@Autowired
|
|
private InventoryFinishedService inventoryFinishedService;
|
|
private InventoryFinishedService inventoryFinishedService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private InOutStorageService inOutStorageService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void syncOrder() {
|
|
public void syncOrder() {
|
|
|
|
|
|
@@ -112,18 +122,18 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
// 循环万里牛订单
|
|
// 循环万里牛订单
|
|
for (JSONObject wlnOrder : wlnOrderList) {
|
|
for (JSONObject wlnOrder : wlnOrderList) {
|
|
|
|
|
|
|
|
+ // 9月1号之前的订单不同步
|
|
|
|
+ Date printTime = wlnOrder.getDate("print_time");
|
|
|
|
+ if (printTime != null && printTime.before(DateUtil.parse("2023-09-01 00:00:00"))) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
// 数据库中是否存在订单
|
|
// 数据库中是否存在订单
|
|
OrderInfo orderInfo = existOrderMap.get(wlnOrder.getString("uid"));
|
|
OrderInfo orderInfo = existOrderMap.get(wlnOrder.getString("uid"));
|
|
|
|
|
|
// 不存在新增
|
|
// 不存在新增
|
|
if (orderInfo == null) {
|
|
if (orderInfo == null) {
|
|
|
|
|
|
- // 9月1号之前的订单不同步
|
|
|
|
- Date printTime = wlnOrder.getDate("print_time");
|
|
|
|
- if (printTime != null && printTime.before(DateUtil.parse("2023-09-01 00:00:00"))) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
// 审核通过之前或预售状态的订单不同步
|
|
// 审核通过之前或预售状态的订单不同步
|
|
Integer processStatus = wlnOrder.getInteger("process_status");
|
|
Integer processStatus = wlnOrder.getInteger("process_status");
|
|
if (processStatus < 1 || processStatus == 14) {
|
|
if (processStatus < 1 || processStatus == 14) {
|
|
@@ -773,7 +783,6 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
}
|
|
}
|
|
if (!saveStatementOrderList.isEmpty()) {
|
|
if (!saveStatementOrderList.isEmpty()) {
|
|
saveStatementOrderList.forEach(item -> {
|
|
saveStatementOrderList.forEach(item -> {
|
|
-
|
|
|
|
// 生成对账单
|
|
// 生成对账单
|
|
StatementOfAccountDto statement = new StatementOfAccountDto();
|
|
StatementOfAccountDto statement = new StatementOfAccountDto();
|
|
statement.setDepartmentId(item.getDepartmentId());
|
|
statement.setDepartmentId(item.getDepartmentId());
|
|
@@ -783,6 +792,33 @@ public class WlnOrderServiceImpl implements WlnOrderService {
|
|
// 生产入库
|
|
// 生产入库
|
|
inventoryFinishedService.noSourceInWarehousing(existOrderSkuMap.getOrDefault(item.getId(), Collections.emptyList()));
|
|
inventoryFinishedService.noSourceInWarehousing(existOrderSkuMap.getOrDefault(item.getId(), Collections.emptyList()));
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ List<Long> noReasonOrderIds = saveStatementOrderList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
|
|
|
|
+ // 无理由订单的快递包材退料
|
|
|
|
+ List<OrderPackageBom> noReasonOrderPackageBomList = orderPackageBomService.list(q -> q.in(OrderPackageBom::getOrderId, noReasonOrderIds));
|
|
|
|
+ Map<Long, InOutStorageBom> inStorageBomMap = noReasonOrderPackageBomList.stream()
|
|
|
|
+ .map(item -> {
|
|
|
|
+ InOutStorageBom inStorageBom = new InOutStorageBom();
|
|
|
|
+ inStorageBom.setBomSpecId(item.getBomSpecId());
|
|
|
|
+ inStorageBom.setQuantity(item.getQuantity());
|
|
|
|
+ return inStorageBom;
|
|
|
|
+ }).collect(Collectors.toMap(
|
|
|
|
+ InOutStorageBom::getBomSpecId,
|
|
|
|
+ Function.identity(),
|
|
|
|
+ (v1, v2) -> {
|
|
|
|
+ v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
|
|
|
|
+ return v1;
|
|
|
|
+ }
|
|
|
|
+ ));
|
|
|
|
+ InOutStorageDto packageBomInStorageDto = new InOutStorageDto();
|
|
|
|
+ packageBomInStorageDto.setType(InOutTypeEnum.IN.getKey());
|
|
|
|
+ packageBomInStorageDto.setDetailType(InDetailTypeEnum.RETURN_GOODS.getKey());
|
|
|
|
+ packageBomInStorageDto.setWarehouseId(WarehouseConstant.PACKAGING_MATERIAL);
|
|
|
|
+ packageBomInStorageDto.setDepartmentId(DepartmentConstant.SD_SPORTS);
|
|
|
|
+ packageBomInStorageDto.setApplicant("系统自动生成");
|
|
|
|
+ packageBomInStorageDto.setRemark("无理由订单快递包材退料入库");
|
|
|
|
+ packageBomInStorageDto.setInOutStorageBomList(new ArrayList<>(inStorageBomMap.values()));
|
|
|
|
+ inOutStorageService.add(packageBomInStorageDto);
|
|
}
|
|
}
|
|
if (!saveOrderSkuList.isEmpty()) {
|
|
if (!saveOrderSkuList.isEmpty()) {
|
|
orderSkuService.saveBatch(saveOrderSkuList);
|
|
orderSkuService.saveBatch(saveOrderSkuList);
|