#
Junjie
2024-08-02 f7b699b0da8aa185edeb38dc1abaaf964ba41d95
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -4,6 +4,7 @@
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
import com.zy.asrs.wms.asrs.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,11 +31,19 @@
    @Autowired
    private TaskDetlFieldService taskDetlFieldService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private LocService locService;
    @Autowired
    private LocStsService locStsService;
    @Autowired
    private TaskLogService taskLogService;
    @Autowired
    private TaskDetlLogService taskDetlLogService;
    @Autowired
    private TaskDetlFieldLogService taskDetlFieldLogService;
    @Override
    public String generateTaskNo(Long taskType) {
@@ -129,17 +138,32 @@
                throw new CoolException("组托通知档更新失败");
            }
            //更新订单数据
            //更新订单明细数据
            OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId());
            if(orderDetl == null){
                throw new CoolException("订单数据异常");
                throw new CoolException("订单明细不存在");
            }
            orderDetl.setWorkQty(orderDetl.getWorkQty() + taskDetl.getAnfme());
            orderDetl.setUpdateTime(new Date());
            boolean orderDetlUpdate = orderDetlService.updateById(orderDetl);
            if(!orderDetlUpdate){
                throw new CoolException("订单更新失败");
                throw new CoolException("订单明细更新失败");
            }
            //获取订单
            Order order = orderService.getById(taskDetl.getOrderId());
            if(order == null){
                throw new CoolException("订单不存在");
            }
            //更新订单状态
            if (order.getOrderSettle().equals(OrderSettleType.WAIT.val())) {
                order.setOrderSettle(OrderSettleType.WORKING.val());
                order.setUpdateTime(new Date());
                if (!orderService.updateById(order)) {
                    throw new CoolException("订单数据更新失败");
                }
            }
        }
@@ -149,6 +173,34 @@
        boolean locUpdate = locService.updateById(loc);
        if(!locUpdate){
            throw new CoolException("库位状态更新失败");
        }
        return true;
    }
    @Override
    public boolean completeTask(Long taskId) {
        Task task = taskService.getById(taskId);
        if(task == null){
            throw new CoolException("任务不存在");
        }
        List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(taskId);
        if (taskDetls.isEmpty()) {
            throw new CoolException("任务明细不存在");
        }
        if (task.getTaskType() < 100) {
            //入库
            task.setTaskSts(99L);//99.入库完成
        }else {
            //出库
            task.setTaskSts(199L);//199.出库完成
        }
        task.setUpdateTime(new Date());
        if (!taskService.updateById(task)) {
            throw new CoolException("任务更新失败");
        }
        return true;
@@ -236,10 +288,28 @@
                }
            }
            //删除明细扩展
            boolean removeField = taskDetlFieldService.remove(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
            if(!removeField){
                throw new CoolException("回滚扩展明细失败");
            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
            for (TaskDetlField detlField : detlFields) {
                //明细扩展字段数据保存至历史档
                TaskDetlFieldLog taskDetlFieldLog = new TaskDetlFieldLog();
                taskDetlFieldLog.sync(detlField);
                if (!taskDetlFieldLogService.save(taskDetlFieldLog)) {
                    throw new CoolException("明细扩展字段转历史档案失败");
                }
                //删除明细扩展
                boolean removeField = taskDetlFieldService.removeById(detlField.getId());
                if(!removeField){
                    throw new CoolException("回滚扩展明细失败");
                }
            }
            //明细数据保存至历史档
            TaskDetlLog taskDetlLog = new TaskDetlLog();
            taskDetlLog.sync(taskDetl);
            if (!taskDetlLogService.save(taskDetlLog)) {
                throw new CoolException("明细数据转历史档案失败");
            }
            //删除明细
@@ -249,6 +319,13 @@
            }
        }
        //数据保存至历史档
        TaskLog taskLog = new TaskLog();
        taskLog.sync(task);
        if (!taskLogService.save(taskLog)) {
            throw new CoolException("任务档案转历史档案失败");
        }
        //删除任务
        boolean removeTask = taskService.removeById(taskId);
        if(!removeTask){