Browse Source

拆单任务完成,待测试

dist.1.3.0
chenlong 6 months ago
parent
commit
bcc19c80fc
  1. 9
      blade-biz-common/src/main/java/org/springblade/common/constant/order/OrderSplitAllTaskStateConstant.java
  2. 18
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSplitOrderTaskController.java
  3. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSplitOrderTaskService.java
  4. 119
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSplitOrderTaskServiceImpl.java
  5. 14
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/vo/SplitPackageOrderVO.java

9
blade-biz-common/src/main/java/org/springblade/common/constant/order/OrderSplitTaskStateConstant.java → blade-biz-common/src/main/java/org/springblade/common/constant/order/OrderSplitAllTaskStateConstant.java

@ -5,18 +5,19 @@ import lombok.Getter;
/** /**
* 拆单总任务状态 * 拆单总任务状态
* 状态0=未完成1=已完成 * 状态0=未完成1=已完成, 2=已撤销
*/ */
@Getter @Getter
public enum OrderSplitTaskStateConstant { public enum OrderSplitAllTaskStateConstant {
InProgress("未完成",0), InProgress("未完成",0),
finish("已完成",1); finish("已完成",1),
cancel("已撤销",2);
private final String name; private final String name;
private final Integer value; private final Integer value;
OrderSplitTaskStateConstant(String name, Integer value) { OrderSplitAllTaskStateConstant(String name, Integer value) {
this.name = name; this.name = name;
this.value = value; this.value = value;
} }

18
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSplitOrderTaskController.java

@ -7,6 +7,7 @@ import com.logpm.distribution.dto.splitOrder.DistributionSplitTaskSearchDTO;
import com.logpm.distribution.entity.DistributionSplitOrderAllTaskEntity; import com.logpm.distribution.entity.DistributionSplitOrderAllTaskEntity;
import com.logpm.distribution.entity.DistributionSplitOrderTaskEntity; import com.logpm.distribution.entity.DistributionSplitOrderTaskEntity;
import com.logpm.distribution.service.IDistributionSplitOrderTaskService; import com.logpm.distribution.service.IDistributionSplitOrderTaskService;
import com.logpm.distribution.vo.SplitPackageOrderVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -81,7 +82,7 @@ public class DistributionSplitOrderTaskController {
return distributionSplitOrderTaskService.finishTask(taskId); return distributionSplitOrderTaskService.finishTask(taskId);
} }
@RequestMapping("/getTaskDetail") @RequestMapping("/get-task-detail")
public R<Object> getTaskDetail(Long taskId) { public R<Object> getTaskDetail(Long taskId) {
return distributionSplitOrderTaskService.getTaskDetail(taskId); return distributionSplitOrderTaskService.getTaskDetail(taskId);
} }
@ -95,4 +96,19 @@ public class DistributionSplitOrderTaskController {
public R<String> updateTask(DistributionSplitOrderTaskEntity distributionSplitOrderTaskEntity) { public R<String> updateTask(DistributionSplitOrderTaskEntity distributionSplitOrderTaskEntity) {
return distributionSplitOrderTaskService.updateTask(distributionSplitOrderTaskEntity); return distributionSplitOrderTaskService.updateTask(distributionSplitOrderTaskEntity);
} }
@RequestMapping("/check-order-code")
public R<String> checkOrderCode(String orderCode) {
return distributionSplitOrderTaskService.checkOrderCode(orderCode);
}
@RequestMapping("/get-package-code-by-order-code")
public R<IPage<SplitPackageOrderVO>> getPackageCodeByOrderCode(Query query, String orderCode) {
return distributionSplitOrderTaskService.getPackageCodeByOrderCode(query, orderCode);
}
@RequestMapping("/get-package-code-by-task-id")
public R<List<SplitPackageOrderVO>> getPackageCodeByTaskId(Long taskId) {
return distributionSplitOrderTaskService.getPackageCodeByTaskId( taskId);
}
} }

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSplitOrderTaskService.java

@ -6,6 +6,7 @@ import com.logpm.distribution.dto.splitOrder.DistributionSplitAllTaskSearchDTO;
import com.logpm.distribution.dto.splitOrder.DistributionSplitTaskSearchDTO; import com.logpm.distribution.dto.splitOrder.DistributionSplitTaskSearchDTO;
import com.logpm.distribution.entity.DistributionSplitOrderAllTaskEntity; import com.logpm.distribution.entity.DistributionSplitOrderAllTaskEntity;
import com.logpm.distribution.entity.DistributionSplitOrderTaskEntity; import com.logpm.distribution.entity.DistributionSplitOrderTaskEntity;
import com.logpm.distribution.vo.SplitPackageOrderVO;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -111,4 +112,10 @@ public interface IDistributionSplitOrderTaskService extends BaseService<Distribu
R<String> finishAllTask(Long allTaskId); R<String> finishAllTask(Long allTaskId);
R<String> deleteAllTask(Long allTaskId); R<String> deleteAllTask(Long allTaskId);
R<String> checkOrderCode(String orderCode);
R<List<SplitPackageOrderVO>> getPackageCodeByTaskId(Long taskId);
R<IPage<SplitPackageOrderVO>> getPackageCodeByOrderCode(Query query, String orderCode);
} }

119
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSplitOrderTaskServiceImpl.java

@ -5,15 +5,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.SerializationUtils; import com.baomidou.mybatisplus.core.toolkit.SerializationUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.distribution.dto.splitOrder.DistributionSplitAllTaskSearchDTO; import com.logpm.distribution.dto.splitOrder.DistributionSplitAllTaskSearchDTO;
import com.logpm.distribution.dto.splitOrder.DistributionSplitTaskSearchDTO; import com.logpm.distribution.dto.splitOrder.DistributionSplitTaskSearchDTO;
import com.logpm.distribution.entity.*; import com.logpm.distribution.entity.*;
import com.logpm.distribution.mapper.DistributionSplitOrderTaskMapper; import com.logpm.distribution.mapper.DistributionSplitOrderTaskMapper;
import com.logpm.distribution.service.*; import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.SplitPackageOrderVO;
import groovy.util.logging.Slf4j; import groovy.util.logging.Slf4j;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.constant.order.OrderSplitStateConstant; import org.springblade.common.constant.order.OrderSplitStateConstant;
import org.springblade.common.constant.order.OrderSplitTaskStateConstant; import org.springblade.common.constant.order.OrderSplitAllTaskStateConstant;
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant; import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageSplitStateConstant; import org.springblade.common.constant.orderpackage.OrderPackageSplitStateConstant;
import org.springblade.common.exception.CustomerException; import org.springblade.common.exception.CustomerException;
@ -24,11 +27,11 @@ import org.springblade.core.redis.lock.LockType;
import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.redis.lock.RedisLockClient;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -69,7 +72,8 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
} }
IPage<DistributionSplitOrderTaskEntity> page = Condition.getPage(query); IPage<DistributionSplitOrderTaskEntity> page = Condition.getPage(query);
list(page, queryWrapper); List<DistributionSplitOrderTaskEntity> list = list(page, queryWrapper);
page.setRecords(list);
return R.data(page); return R.data(page);
} }
@ -191,7 +195,7 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
if (task == null) { if (task == null) {
return R.fail("拆单任务不存在"); return R.fail("拆单任务不存在");
} }
if (!task.getState().equals(OrderSplitTaskStateConstant.InProgress.getValue())) { if (!task.getState().equals(OrderSplitAllTaskStateConstant.InProgress.getValue())) {
return R.fail("拆单任务已完成,无法添加"); return R.fail("拆单任务已完成,无法添加");
} }
@ -654,11 +658,11 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
@Override @Override
public R<String> cancelTask(Long taskId) { public R<String> cancelTask(Long taskId) {
DistributionSplitOrderTaskEntity task = getById(taskId); DistributionSplitOrderTaskEntity task = getById(taskId);
if (!task.getState().equals(OrderSplitStateConstant.finish.getValue())) { if (!task.getState().equals(OrderSplitStateConstant.InProgress.getValue())) {
return R.fail("任务未已完成或已取消,无法操作"); return R.fail("任务未已完成或已取消,无法操作");
} }
DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(task.getSplitOrderAllTaskId()); DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(task.getSplitOrderAllTaskId());
if (!allTask.getState().equals(OrderSplitStateConstant.InProgress.getValue())) { if (!allTask.getState().equals(OrderSplitAllTaskStateConstant.InProgress.getValue())) {
return R.fail("拆单总任务已完成或已取消,无法操作"); return R.fail("拆单总任务已完成或已取消,无法操作");
} }
@ -675,20 +679,25 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
distributionStockArticleService.updateById(originalOrder); distributionStockArticleService.updateById(originalOrder);
DistributionStockArticleEntity newOrder = distributionStockArticleService.getById(task.getNewStockArticleId()); DistributionStockArticleEntity newOrder = distributionStockArticleService.getById(task.getNewStockArticleId());
if (newOrder != null) {
newOrder.setTotalNumber(0); newOrder.setTotalNumber(0);
newOrder.setHandQuantity(0); newOrder.setHandQuantity(0);
distributionStockArticleService.updateById(newOrder); distributionStockArticleService.updateById(newOrder);
}
task.setNumber(0); task.setNumber(0);
task.setState(OrderSplitStateConstant.cancel.getValue()); task.setState(OrderSplitStateConstant.cancel.getValue());
updateById(task); updateById(task);
if (!packageList.isEmpty()) {
distributionParcelListService.update(Wrappers.<DistributionParcelListEntity>lambdaUpdate() distributionParcelListService.update(Wrappers.<DistributionParcelListEntity>lambdaUpdate()
.in(DistributionParcelListEntity::getOrderPackageCode, packageList.stream().map(DistributionSplitOrderDetailEntity::getOrderPackageCode).collect(Collectors.toList())) .in(DistributionParcelListEntity::getOrderPackageCode, packageList.stream().map(DistributionSplitOrderDetailEntity::getOrderPackageCode).collect(Collectors.toList()))
.eq(DistributionParcelListEntity::getStockArticleId, task.getNewStockArticleId()) .eq(DistributionParcelListEntity::getStockArticleId, task.getNewStockArticleId())
.set(DistributionParcelListEntity::getStockArticleId, task.getStockArticleId()) .set(DistributionParcelListEntity::getStockArticleId, task.getStockArticleId())
.set(DistributionParcelListEntity::getOrderCode, task.getOrderCode()) .set(DistributionParcelListEntity::getOrderCode, task.getOrderCode())
); );
}
distributionSplitOrderLogService.record(task, "撤消拆单任务", AuthUtil.getUser().getUserName()); distributionSplitOrderLogService.record(task, "撤消拆单任务", AuthUtil.getUser().getUserName());
@ -700,17 +709,17 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
throw new CustomerException("系统错误"); throw new CustomerException("系统错误");
} }
return R.success("success"); return R.success("操作成功");
} }
@Override @Override
public R<String> cancelAllTask(Long allTaskId) { public R<String> cancelAllTask(Long allTaskId) {
DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId); DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId);
if (!allTask.getState().equals(OrderSplitStateConstant.finish.getValue())) { if (!allTask.getState().equals(OrderSplitAllTaskStateConstant.finish.getValue())) {
return R.fail("拆单总任务未完成或已取消,无法操作"); return R.fail("拆单总任务未完成或已取消,无法操作");
} }
allTask.setState(OrderSplitTaskStateConstant.InProgress.getValue()); allTask.setState(OrderSplitAllTaskStateConstant.InProgress.getValue());
distributionSplitOrderAllTaskService.updateById(allTask); distributionSplitOrderAllTaskService.updateById(allTask);
return R.success("success"); return R.success("success");
@ -719,11 +728,19 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
@Override @Override
public R<String> finishAllTask(Long allTaskId) { public R<String> finishAllTask(Long allTaskId) {
DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId); DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId);
if (!allTask.getState().equals(OrderSplitStateConstant.InProgress.getValue())) { if (!allTask.getState().equals(OrderSplitAllTaskStateConstant.InProgress.getValue())) {
return R.fail("拆单总任务已完成或已取消,无法操作"); return R.fail("拆单总任务已完成或已取消,无法操作");
} }
allTask.setState(OrderSplitTaskStateConstant.finish.getValue()); DistributionSplitOrderTaskEntity existsInProgress = getOne(Wrappers.<DistributionSplitOrderTaskEntity>lambdaQuery()
.eq(DistributionSplitOrderTaskEntity::getSplitOrderAllTaskId, allTaskId)
.eq(DistributionSplitOrderTaskEntity::getState, OrderSplitStateConstant.InProgress.getValue())
);
if (existsInProgress != null) {
return R.fail("拆单总任务中存在未完成拆单任务,无法操作");
}
allTask.setState(OrderSplitAllTaskStateConstant.finish.getValue());
distributionSplitOrderAllTaskService.updateById(allTask); distributionSplitOrderAllTaskService.updateById(allTask);
return R.success("success"); return R.success("success");
@ -733,7 +750,7 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
@Override @Override
public R<String> deleteAllTask(Long allTaskId) { public R<String> deleteAllTask(Long allTaskId) {
DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId); DistributionSplitOrderAllTaskEntity allTask = distributionSplitOrderAllTaskService.getById(allTaskId);
if (!allTask.getState().equals(OrderSplitStateConstant.InProgress.getValue())) { if (!allTask.getState().equals(OrderSplitAllTaskStateConstant.InProgress.getValue())) {
return R.fail("拆单总任务已完成或已取消,无法操作"); return R.fail("拆单总任务已完成或已取消,无法操作");
} }
@ -819,10 +836,86 @@ public class DistributionSplitOrderTaskServiceImpl extends BaseServiceImpl<Distr
@Override @Override
public R<Object> getTaskDetail(Long taskId) { public R<Object> getTaskDetail(Long taskId) {
return null; R<List<SplitPackageOrderVO>> PackageOrderList = getPackageCodeByTaskId(taskId);
List<DistributionSplitOrderLogEntity> logList = distributionSplitOrderLogService.list(Wrappers.<DistributionSplitOrderLogEntity>lambdaQuery()
.eq(DistributionSplitOrderLogEntity::getSplitOrderTaskId, taskId)
);
HashMap<String, Object> res = new HashMap<>();
res.put("packageList", PackageOrderList.getData());
res.put("logList", logList);
return R.data(res);
} }
@Override
public R<String> checkOrderCode(String orderCode) {
DistributionSplitOrderAllTaskEntity exists = distributionSplitOrderAllTaskService.getOne(
Wrappers.<DistributionSplitOrderAllTaskEntity>lambdaQuery()
.eq(DistributionSplitOrderAllTaskEntity::getOrderCode, orderCode)
);
return R.success(exists == null ? "" : exists.getNo());
}
@Override
public R<IPage<SplitPackageOrderVO>> getPackageCodeByOrderCode(Query query, String orderCode) {
IPage<DistributionParcelListEntity> page = Condition.getPage(query);
List<DistributionParcelListEntity> list = distributionParcelListService.list(page, Wrappers.<DistributionParcelListEntity>lambdaQuery()
.eq(DistributionParcelListEntity::getOrderCode, orderCode)
);
ArrayList<SFunction<DistributionParcelListEntity, ?>> columns = new ArrayList<>();
columns.add(DistributionParcelListEntity::getOrderPackageCode);
Wrappers.<DistributionParcelListEntity>lambdaQuery().select(true, columns);
List<SplitPackageOrderVO> res = list.isEmpty()
? new ArrayList<>()
: list.stream().map(distributionParcelListEntity -> {
SplitPackageOrderVO splitPackageOrderVO = new SplitPackageOrderVO();
splitPackageOrderVO.setPackageCode(distributionParcelListEntity.getOrderPackageCode());
splitPackageOrderVO.setMateriel(distributionParcelListEntity.getMaterialName());
splitPackageOrderVO.setOrderCode(distributionParcelListEntity.getOrderCode());
splitPackageOrderVO.setCategory(distributionParcelListEntity.getThirdProduct());
return splitPackageOrderVO;
}).collect(Collectors.toList());
IPage<SplitPackageOrderVO> newPage = Condition.getPage(query);
newPage.setRecords(res);
return R.data(newPage);
}
@Override
public R<List<SplitPackageOrderVO>> getPackageCodeByTaskId(Long taskId) {
List<DistributionSplitOrderDetailEntity> details = distributionSplitOrderDetailService.list(
Wrappers.<DistributionSplitOrderDetailEntity>lambdaQuery()
.eq(DistributionSplitOrderDetailEntity::getSplitOrderTaskId, taskId)
);
List<SplitPackageOrderVO> res = new ArrayList<>();
if (!details.isEmpty()){
List<DistributionParcelListEntity> list = distributionParcelListService.list(Wrappers.<DistributionParcelListEntity>lambdaQuery()
.in(DistributionParcelListEntity::getOrderPackageCode, details.stream().map(DistributionSplitOrderDetailEntity::getOrderPackageCode).collect(Collectors.toList()))
);
res = list.stream().map(distributionParcelListEntity -> {
SplitPackageOrderVO splitPackageOrderVO = new SplitPackageOrderVO();
splitPackageOrderVO.setPackageCode(distributionParcelListEntity.getOrderPackageCode());
splitPackageOrderVO.setMateriel(distributionParcelListEntity.getMaterialName());
splitPackageOrderVO.setOrderCode(distributionParcelListEntity.getOrderCode());
splitPackageOrderVO.setCategory(distributionParcelListEntity.getThirdProduct());
return splitPackageOrderVO;
}).collect(Collectors.toList());
}
return R.data(res);
}
private int getCurrentOrderCodeNumber(Long oldStockArticleId) { private int getCurrentOrderCodeNumber(Long oldStockArticleId) {
long count = count(Wrappers.<DistributionSplitOrderTaskEntity>lambdaQuery().eq( long count = count(Wrappers.<DistributionSplitOrderTaskEntity>lambdaQuery().eq(

14
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/vo/SplitPackageOrderVO.java

@ -0,0 +1,14 @@
package com.logpm.distribution.vo;
import lombok.Data;
/**
* 拆单包件VO
*/
@Data
public class SplitPackageOrderVO {
private String orderCode;
private String packageCode;
private String materiel;
private String category;
}
Loading…
Cancel
Save