|
|
@@ -477,12 +477,17 @@ public class UserLogic {
|
|
|
|
|
|
@Transactional
|
|
|
public void companyDeliveryAdd(UserCompanyDeliveryAddBean bean) {
|
|
|
+ if (CollectionUtil.isEmpty(bean.getStorageIds())) {
|
|
|
+ throw new RemoteServiceException("至少选择一个仓库");
|
|
|
+ }
|
|
|
AdminUserCom adminUser = commonLogic.getAdminUser();
|
|
|
|
|
|
User user = userService.lambdaQuery()
|
|
|
.eq(User::getMobile, bean.getMobile())
|
|
|
.one();
|
|
|
|
|
|
+
|
|
|
+ List<UserCompanyDeliveryRela> relaList = new ArrayList<>();
|
|
|
if (Objects.isNull(user)) {
|
|
|
// 没有生成数据到user表
|
|
|
final String userId = IdWorker.getIdStr();
|
|
|
@@ -495,48 +500,61 @@ public class UserLogic {
|
|
|
.setType(UserTypeEnum.WORKER.getKey());
|
|
|
|
|
|
user.insert();
|
|
|
+
|
|
|
+ UserCompanyDelivery delivery = new UserCompanyDelivery();
|
|
|
+
|
|
|
+ delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setUserId(user.getUserId())
|
|
|
+ .setAllStorage(false)
|
|
|
+ .insert();
|
|
|
} else {
|
|
|
final Integer count = userCompanyDeliveryService.lambdaQuery()
|
|
|
.eq(UserCompanyDelivery::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
.eq(UserCompanyDelivery::getUserId, user.getUserId())
|
|
|
.count();
|
|
|
|
|
|
+ // 已存在的配送员
|
|
|
if (count > 0) {
|
|
|
- throw new RemoteServiceException("配送员重复添加,请检查");
|
|
|
+ // 找出历史的仓库关系
|
|
|
+ final List<UserCompanyDeliveryRela> existsRelaList = userCompanyDeliveryRelaService.lambdaQuery()
|
|
|
+ .eq(UserCompanyDeliveryRela::getCompanyWechatId, adminUser.getCompanyWechatId())
|
|
|
+ .eq(UserCompanyDeliveryRela::getUserId, user.getUserId())
|
|
|
+ .list();
|
|
|
+
|
|
|
+ final List<String> existsList = existsRelaList.stream().map(UserCompanyDeliveryRela::getStorageId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ for (String beanStorageId : bean.getStorageIds()) {
|
|
|
+ if (existsList.contains(beanStorageId)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
|
|
|
+ rela.setUserId(user.getUserId())
|
|
|
+ .setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setStorageId(beanStorageId);
|
|
|
+ relaList.add(rela);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 不存在的配送员
|
|
|
+ UserCompanyDelivery delivery = new UserCompanyDelivery();
|
|
|
+
|
|
|
+ delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setUserId(user.getUserId())
|
|
|
+ .setAllStorage(false)
|
|
|
+ .insert();
|
|
|
+
|
|
|
+ for (String beanStorageId : bean.getStorageIds()) {
|
|
|
+ UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
|
|
|
+ rela.setUserId(user.getUserId())
|
|
|
+ .setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
+ .setStorageId(beanStorageId);
|
|
|
+ relaList.add(rela);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- UserCompanyDelivery delivery = new UserCompanyDelivery();
|
|
|
-
|
|
|
- delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
|
|
|
- .setUserId(user.getUserId())
|
|
|
- .setAllStorage(CollectionUtil.isEmpty(bean.getStorageIds()))
|
|
|
- .insert();
|
|
|
-
|
|
|
- List<UserCompanyDeliveryRela> relaList = new ArrayList<>();
|
|
|
- if (delivery.getAllStorage()) {
|
|
|
- // 全部仓储
|
|
|
- final List<Storage> storages = storageService.lambdaQuery()
|
|
|
- .eq(Storage::getCompanyWechatId, delivery.getCompanyWechatId())
|
|
|
- .list();
|
|
|
- for (Storage storage : storages) {
|
|
|
- UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
|
|
|
- rela.setUserId(user.getUserId())
|
|
|
- .setCompanyWechatId(delivery.getCompanyWechatId())
|
|
|
- .setStorageId(storage.getStorageId());
|
|
|
- relaList.add(rela);
|
|
|
- }
|
|
|
- } else {
|
|
|
- for (String storageId : bean.getStorageIds()) {
|
|
|
- UserCompanyDeliveryRela rela = new UserCompanyDeliveryRela();
|
|
|
- rela.setUserId(user.getUserId())
|
|
|
- .setCompanyWechatId(delivery.getCompanyWechatId())
|
|
|
- .setStorageId(storageId);
|
|
|
- relaList.add(rela);
|
|
|
- }
|
|
|
+ if (CollectionUtil.isNotEmpty(relaList)) {
|
|
|
+ userCompanyDeliveryRelaService.saveBatch(relaList);
|
|
|
}
|
|
|
-
|
|
|
- userCompanyDeliveryRelaService.saveBatch(relaList);
|
|
|
}
|
|
|
|
|
|
@Transactional
|