|
@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import com.gree.mall.manager.bean.SyncOrderDto;
|
|
|
import com.gree.mall.manager.bean.admin.AdminUserCom;
|
|
|
import com.gree.mall.manager.bean.common.RegionBean;
|
|
|
import com.gree.mall.manager.commonmapper.CommonMapper;
|
|
@@ -67,6 +68,7 @@ public class OrderBaseExcelLogic {
|
|
|
private final WebsitUserService websitUserService;
|
|
|
private final PgOrderProductDetailService pgOrderProductDetailService;
|
|
|
private final UserWaitService userWaitService;
|
|
|
+ private final PgOrderOperatorLogService pgOrderOperatorLogService;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -1257,4 +1259,68 @@ public class OrderBaseExcelLogic {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ public void saveThreeOrder(SyncOrderDto syncOrderDto) {
|
|
|
+
|
|
|
+ AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
+ //品牌map
|
|
|
+ Map<String, Brand> brandMap = sysDictCompanyLogic.brandMapOfName(adminUser.getCompanyWechatId());
|
|
|
+ //工单类型map
|
|
|
+ Map<String, OrderSmallType> orderSmallTypeMap = sysDictCompanyLogic.orderSmallTypeMap(adminUser.getCompanyWechatId());
|
|
|
+ //产品大类,小类map
|
|
|
+ List<GoodsCategory> goodsCategoryList = goodsCategoryService.lambdaQuery()
|
|
|
+ .eq(GoodsCategory::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .eq(GoodsCategory::getType, 2).list();
|
|
|
+ Map<String, GoodsCategory> categoryMap1 = goodsCategoryList.stream().filter(v -> v.getLevel() == 1)
|
|
|
+ .collect(Collectors.toMap(GoodsCategory::getName, v -> v));
|
|
|
+ Map<String, GoodsCategory> categoryMap2 = goodsCategoryList.stream().filter(v -> v.getLevel() == 2)
|
|
|
+ .collect(Collectors.toMap(GoodsCategory::getName, v -> v));
|
|
|
+ List<WebsitUser> websitUsers = websitUserService.lambdaQuery().groupBy(WebsitUser::getWorkerNumber).list();
|
|
|
+ Map<String, WebsitUser> websitUserMap = websitUsers.stream()
|
|
|
+ .collect(Collectors.toMap(WebsitUser::getWorkerNumber, v -> v));
|
|
|
+
|
|
|
+ List<User> users = userService.lambdaQuery().eq(User::getType, "WORKER").list();
|
|
|
+ Map<String, User> userMap = users.stream()
|
|
|
+ .collect(Collectors.toMap(User::getUserId, v -> v));
|
|
|
+
|
|
|
+ //工单渠道
|
|
|
+ // Map<String, SysDictCompany> orderChannelMap = sysDictCompanyLogic.dictByTypeOfValue(SysDictConstant.ORDER_CHANNEL, adminUser.getCompanyWechatId());
|
|
|
+ //网点名称
|
|
|
+ Map<String, AdminWebsit> adminWebsitMap = adminWebsitService.lambdaQuery()
|
|
|
+ .eq(AdminWebsit::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .in(adminUser.getType() == 0, AdminWebsit::getWebsitId, adminUser.getAdminWebsitIds())
|
|
|
+ .eq(AdminWebsit::getType, AdminWebsitTypeEnum.C.getKey())
|
|
|
+ .list().stream().collect(Collectors.toMap(AdminWebsit::getWebsitId, Function.identity()));
|
|
|
+ //已完工标识
|
|
|
+ List<String> overOrderIds = new ArrayList<>();
|
|
|
+
|
|
|
+ //本次导入的旧的工单集合 (并清空旧的师傅信息)
|
|
|
+ // Map<String, PgOrderBase> oldOrderBaseMap = getOldOrderBase(rows);
|
|
|
+ //本商户的所有师傅
|
|
|
+ Map<String, User> workerMap = getWorkers(adminUser.getCompanyWechatId());
|
|
|
+
|
|
|
+ for (PgOrderBase pgOrderBase : syncOrderDto.getPgOrderBases()) {
|
|
|
+
|
|
|
+ Region region = orderBaseLogic.getRegion(pgOrderBase.getProvince(), pgOrderBase.getCity(), pgOrderBase.getArea(), pgOrderBase.getStreet());
|
|
|
+
|
|
|
+ if (region != null){
|
|
|
+ pgOrderBase.setProvinceId(region.getProvinceCode());
|
|
|
+ pgOrderBase.setCityId(region.getCityCode());
|
|
|
+ pgOrderBase.setAreaId(region.getAreaCode());
|
|
|
+ pgOrderBase.setStreetId(region.getId());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ pgOrderBaseService.saveOrUpdateBatch(syncOrderDto.getPgOrderBases());
|
|
|
+
|
|
|
+ pgOrderWorkerService.saveOrUpdateBatch(syncOrderDto.getOrderWorkers());
|
|
|
+
|
|
|
+ pgOrderProductService.saveOrUpdateBatch(syncOrderDto.getOrderProducts());
|
|
|
+
|
|
|
+ pgOrderOperatorLogService.saveOrUpdateBatch(syncOrderDto.getPgOrderOperatorLogs());
|
|
|
+ }
|
|
|
+
|
|
|
}
|