|  |  | 
 |  |  | package com.zy.asrs.service.impl; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.core.common.BaseRes; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.entity.BasDevp; | 
 |  |  | import com.zy.asrs.entity.LocMast; | 
 |  |  | import com.zy.asrs.entity.MatCodeCountDto; | 
 |  |  | import com.zy.asrs.entity.WrkMast; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.entity.param.EmptyPlateOutParam; | 
 |  |  | import com.zy.asrs.entity.param.FullStoreParam; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | 
 |  |  |     private WrkDetlService wrkDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocMastService locMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private StaDescService staDescService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  | 
 |  |  |         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo()); | 
 |  |  |         // 生成工作号 | 
 |  |  |         int workNo = commonService.getWorkNo(0); | 
 |  |  |         if (workNo == 0) { | 
 |  |  |             throw new CoolException("生成工作号失败,请联系管理员"); | 
 |  |  |         } else { | 
 |  |  |             if (wrkMastService.selectById(workNo)!=null) { | 
 |  |  |                 throw new CoolException("生成工作号" + workNo + "在工作档中已存在"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         // 检索库位 | 
 |  |  |         StartupDto dto = commonService.getLocNo(1, param.getDevpNo()); | 
 |  |  |         // 生成工作档 | 
 |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void emptyPlateOut(EmptyPlateOutParam param, Long userId) { | 
 |  |  |         WrkMast wrkMast = new WrkMast(); | 
 |  |  | //        wrkMast.setWrkNo(workNo); | 
 |  |  | //        wrkMast.setIoTime(new Date()); | 
 |  |  | //        wrkMast.setWrkSts(1L); // 工作状态:生成入库ID | 
 |  |  | //        wrkMast.setIoType(1); // 入出库状态:1.入库 | 
 |  |  | //        wrkMast.setIoPri(10D); // 优先级:10 | 
 |  |  | //        wrkMast.setCrnNo(dto.getCrnNo()); | 
 |  |  | //        wrkMast.setSourceStaNo(dto.getSourceStaNo()); | 
 |  |  | //        wrkMast.setStaNo(dto.getStaNo()); | 
 |  |  | //        wrkMast.setLocNo(dto.getLocNo()); | 
 |  |  | //        wrkMast.setFullPlt("Y"); // 满板:Y | 
 |  |  | //        wrkMast.setPicking("N"); // 拣料 | 
 |  |  | //        wrkMast.setExitMk("N"); // 退出 | 
 |  |  | //        wrkMast.setEmptyMk("N"); // 空板 | 
 |  |  | //        wrkMast.setLinkMis("N"); | 
 |  |  | //        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 | 
 |  |  |         // 操作人员数据 | 
 |  |  |         wrkMast.setAppeUser(userId); | 
 |  |  |         wrkMast.setAppeTime(new Date()); | 
 |  |  |         wrkMast.setModiUser(userId); | 
 |  |  |         wrkMast.setModiTime(new Date()); | 
 |  |  | //        boolean res = wrkMastService.insert(wrkMast); | 
 |  |  | //        if (!res) { | 
 |  |  | //            throw new CoolException("保存工作档失败"); | 
 |  |  | //        } | 
 |  |  |         if (Cools.isEmpty(param.getOutSite())) { | 
 |  |  |             throw new CoolException("站点不存在"); | 
 |  |  |         } | 
 |  |  |         for (String locNo : param.getLocNos()) { | 
 |  |  |             // 获取工作号 | 
 |  |  |             int workNo = commonService.getWorkNo(0); | 
 |  |  |             // 获取库位 | 
 |  |  |             LocMast locMast = locMastService.selectById(locNo); | 
 |  |  |             if (Cools.isEmpty(locMast)) { | 
 |  |  |                 throw new CoolException(locNo+"库位不存在"); | 
 |  |  |             } | 
 |  |  |             // 获取源站 | 
 |  |  |             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() | 
 |  |  |                     .eq("type_no", 110) | 
 |  |  |                     .eq("stn_no", param.getOutSite()) | 
 |  |  |                     .eq("crn_no", locMast.getCrnNo()); | 
 |  |  |             StaDesc staDesc = staDescService.selectOne(wrapper); | 
 |  |  |             Integer sourceStaNo = staDesc.getCrnStn(); | 
 |  |  |             if (Cools.isEmpty(sourceStaNo)) { | 
 |  |  |                 throw new CoolException("检索源站失败"); | 
 |  |  |             } | 
 |  |  |             // 保存工作档 | 
 |  |  |             WrkMast wrkMast = new WrkMast(); | 
 |  |  |             wrkMast.setWrkNo(workNo); | 
 |  |  |             wrkMast.setIoTime(new Date()); | 
 |  |  |             wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID | 
 |  |  |             wrkMast.setIoType(110); // 入出库状态: 110.空板出库 | 
 |  |  |             wrkMast.setIoPri(10D); | 
 |  |  |             wrkMast.setSourceStaNo(sourceStaNo); // 源站 | 
 |  |  |             wrkMast.setStaNo(param.getOutSite()); // 目标站 | 
 |  |  |             wrkMast.setCrnNo(locMast.getCrnNo()); | 
 |  |  |             wrkMast.setSourceLocNo(locNo); // 源库位 | 
 |  |  |             wrkMast.setFullPlt("N"); // 满板:Y | 
 |  |  |             wrkMast.setPicking("N"); // 拣料 | 
 |  |  |             wrkMast.setExitMk("N"); // 退出 | 
 |  |  |             wrkMast.setEmptyMk("Y"); // 空板 | 
 |  |  |             wrkMast.setLinkMis("N"); | 
 |  |  |             wrkMast.setAppeUser(userId); | 
 |  |  |             wrkMast.setAppeTime(new Date()); | 
 |  |  |             wrkMast.setModiUser(userId); | 
 |  |  |             wrkMast.setModiTime(new Date()); | 
 |  |  |             boolean res = wrkMastService.insert(wrkMast); | 
 |  |  |             if (!res) { | 
 |  |  |                 throw new CoolException("保存工作档失败"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |