|  |  | 
 |  |  | package com.zy.asrs.task.handler; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.zy.asrs.entity.LocDetl; | 
 |  |  | import com.zy.asrs.entity.LocMast; | 
 |  |  | import com.zy.asrs.entity.WrkDetl; | 
 |  |  | import com.zy.asrs.entity.WrkMast; | 
 |  |  | import com.zy.asrs.service.LocDetlService; | 
 |  |  | import com.zy.asrs.service.LocMastService; | 
 |  |  | import com.zy.asrs.service.WrkDetlService; | 
 |  |  | import com.zy.asrs.service.WrkMastService; | 
 |  |  | import com.zy.asrs.task.AbstractHandler; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |  */ | 
 |  |  | @Service | 
 |  |  | @Transactional | 
 |  |  | public class WorkMastHandler { | 
 |  |  | public class WorkMastHandler extends AbstractHandler { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private WrkMastService wrkMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkDetlService wrkDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocMastService locMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocDetlService locDetlService; | 
 |  |  |  | 
 |  |  |     public void start() { | 
 |  |  |         List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void doIn(WrkMast wrkMast){ | 
 |  |  |         Date now = new Date(); | 
 |  |  |         switch (wrkMast.getIoType()) { | 
 |  |  |             // 空板入库 | 
 |  |  |             case 10: | 
 |  |  |                 // 修改库位状态=D | 
 |  |  |                 LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); | 
 |  |  |                 if (null != locMast && (locMast.getLocType().equals("S") || locMast.getLocType().equals("Q"))) { | 
 |  |  |                     locMast.setLocType("D"); | 
 |  |  |                     locMast.setIoTime(now); | 
 |  |  |                     locMast.setModiTime(now); | 
 |  |  |                     if (!locMastService.updateById(locMast)) { | 
 |  |  |                         exceptionHandle(""); // todo | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 break; | 
 |  |  |             case 1: | 
 |  |  |  | 
 |  |  |                 List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); | 
 |  |  |                 if (!locDetls.isEmpty()) { | 
 |  |  |                     locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo())); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); | 
 |  |  |                 if (wrkDetls.isEmpty()) { | 
 |  |  |                     exceptionHandle(""); // todo | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 for (WrkDetl wrkDetl : wrkDetls) { | 
 |  |  |  | 
 |  |  |                     LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getLocNo()).eq("matnr", wrkDetl.getMatnr())); | 
 |  |  |                     if (null != locDetl) { | 
 |  |  |                         locDetl.setAnfme(wrkDetl.getAnfme()); | 
 |  |  |                         locDetl.setModiTime(now); | 
 |  |  |                         if (!locDetlService.updateById(locDetl)) { | 
 |  |  |                             exceptionHandle(""); // todo | 
 |  |  |                         } | 
 |  |  |                     } else { | 
 |  |  |                         locDetl = new LocDetl( | 
 |  |  |                                 wrkMast.getLocNo(), // 库位号 | 
 |  |  |                                 wrkDetl.getMatnr(), // 物料号 | 
 |  |  |                                 null,    // 仓库号 | 
 |  |  |                                 null,    // 转储请求编号 | 
 |  |  |                                 null,    // 行项目 | 
 |  |  |                                 null,    // 物料标签ID | 
 |  |  |                                 null,    // 物料描述 | 
 |  |  |                                 null,    // 工厂 | 
 |  |  |                                 null,    // 数量 | 
 |  |  |                                 null,    // 单位 | 
 |  |  |                                 null,    // 托盘条码 | 
 |  |  |                                 null,    // 用户ID | 
 |  |  |                                 null,    // 备注 | 
 |  |  |                                 null,    // 修改人员 | 
 |  |  |                                 null,    // 修改时间 | 
 |  |  |                                 null,    // 创建者 | 
 |  |  |                                 null    // 添加时间 | 
 |  |  |                         ); | 
 |  |  |                         // todo | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                 break; | 
 |  |  |             case 53: | 
 |  |  |                 break; | 
 |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static void main(String[] args) { | 
 |  |  |         for (int i = 0;i<10;i++) { | 
 |  |  |  | 
 |  |  |             try { | 
 |  |  |  | 
 |  |  |                 System.out.println("====" + i); | 
 |  |  |                 if (i == 5){ | 
 |  |  |                     throw new Exception("dsa"); | 
 |  |  |                 } | 
 |  |  |                 System.out.println("----" + i); | 
 |  |  |  | 
 |  |  |             } catch (Exception e) { | 
 |  |  |                 e.printStackTrace(); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |