package com.zy.asrs.task.handler; 
 | 
  
 | 
import com.baomidou.mybatisplus.mapper.EntityWrapper; 
 | 
import com.core.common.Cools; 
 | 
import com.zy.asrs.entity.WaitPakin; 
 | 
import com.zy.asrs.entity.WrkDetl; 
 | 
import com.zy.asrs.entity.WrkMast; 
 | 
import com.zy.asrs.service.*; 
 | 
import com.zy.asrs.task.AbstractHandler; 
 | 
import com.zy.asrs.task.core.ReturnT; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
import org.springframework.transaction.interceptor.TransactionAspectSupport; 
 | 
  
 | 
import java.util.Iterator; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * Created by vincent on 2020/7/6 
 | 
 */ 
 | 
@Slf4j 
 | 
@Service 
 | 
public class WorkLogHandler extends AbstractHandler<String> { 
 | 
  
 | 
    @Autowired 
 | 
    private WrkMastService wrkMastService; 
 | 
    @Autowired 
 | 
    private WrkMastLogService wrkMastLogService; 
 | 
    @Autowired 
 | 
    private WrkDetlService wrkDetlService; 
 | 
    @Autowired 
 | 
    private WrkDetlLogService wrkDetlLogService; 
 | 
    @Autowired 
 | 
    private WaitPakinService waitPakinService; 
 | 
    @Autowired 
 | 
    private WaitPakinLogService waitPakinLogService; 
 | 
    @Autowired 
 | 
    private OrderPakinService orderPakinService; 
 | 
    @Autowired 
 | 
    private OrderPakoutService orderPakoutService; 
 | 
  
 | 
    @Transactional 
 | 
    public ReturnT<String> start(WrkMast wrkMast) { 
 | 
        try { 
 | 
            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); 
 | 
            // 修改订单状态 作业中 ===>> 已完成 
 | 
            if (!Cools.isEmpty(wrkDetls)) { 
 | 
                Iterator<WrkDetl> iterator = wrkDetls.iterator(); 
 | 
                while (iterator.hasNext()) { 
 | 
                    WrkDetl wrkDetl = iterator.next(); 
 | 
                    if (!Cools.isEmpty(wrkDetl.getOrderNo())) { 
 | 
                        if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 8 || wrkMast.getIoType() == 54 || wrkMast.getIoType() == 104) { 
 | 
                            orderPakinService.checkComplete(wrkDetl.getOrderNo()); 
 | 
                        } else { 
 | 
                            orderPakoutService.checkComplete(wrkDetl.getOrderNo()); 
 | 
                        } 
 | 
                        iterator.remove(); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
  
 | 
            // 入库 -------------------------------------------------------------------------------- 
 | 
            if (wrkMast.getWrkSts() == 5) { 
 | 
                // 全板入库 
 | 
                if (wrkMast.getIoType() == 1) { 
 | 
                    // 入库通知单 
 | 
                    if (!Cools.isEmpty(wrkMast.getBarcode())) { 
 | 
                        // 保存入库通知档历史档 
 | 
                        if (!waitPakinLogService.save(wrkMast.getBarcode())) { 
 | 
//                            exceptionHandle("保存入库通知档历史档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
                        } 
 | 
                        // 删除入库通知档 
 | 
                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) { 
 | 
//                            exceptionHandle("删除入库通知档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
                        } 
 | 
                    } 
 | 
//                    // 手动入库生成单据 【 上报三方平台 】 
 | 
//                    if (!Cools.isEmpty(wrkDetls)) { 
 | 
//                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) { 
 | 
//                            exceptionHandle("生成手动入库单据[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
//                        } 
 | 
//                    } 
 | 
                    // 拣料再入库 
 | 
                } else if (wrkMast.getIoType() == 53) { 
 | 
//                    if (!Cools.isEmpty(wrkDetls)) { 
 | 
//                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { 
 | 
//                            exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
//                        } 
 | 
//                    } 
 | 
                } 
 | 
  
 | 
                // 出库 -------------------------------------------------------------------------------- 
 | 
            } else if (wrkMast.getWrkSts() == 15) { 
 | 
//                if (!Cools.isEmpty(wrkDetls)) { 
 | 
//                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) { 
 | 
//                        exceptionHandle("生成手动出库单据[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
//                    } 
 | 
//                } 
 | 
            } 
 | 
  
 | 
            // 保存工作主档历史档 
 | 
            if (!wrkMastLogService.save(wrkMast.getWrkNo())) { 
 | 
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
            } 
 | 
            // 删除工作主档 
 | 
            if (!wrkMastService.deleteById(wrkMast)) { 
 | 
                exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
            } 
 | 
            // 保存工作明细档历史档 
 | 
            if (!wrkDetlLogService.save(wrkMast.getWrkNo())) { 
 | 
//                exceptionHandle("保存工作明细历史档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
            } 
 | 
            // 删除工作明细档 
 | 
            if (!wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()))) { 
 | 
//                exceptionHandle("删除工作明细档[workNo={0}]失败", wrkMast.getWrkNo()); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            log.error("fail", e); 
 | 
            e.printStackTrace(); 
 | 
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 
 | 
            return FAIL.setMsg(e.getMessage()); 
 | 
        } 
 | 
        return SUCCESS; 
 | 
    } 
 | 
  
 | 
} 
 |