# PDA入库接口 ```java @Api("入库") @RestController @RequestMapping("/pda/asn") public class PdaDocAsnController { @Autowired private IBusinessService businessService; @Autowired private IWmsDocAsnHeaderService wmsDocAsnHeaderService; @ApiOperation("入库位->接驳位任务下发") @PostMapping("inToTran") public AjaxResult inToTran(@RequestBody DocAsnHeader docAsnHeader) { } ``` # PDA出库接口 ```java @Api("出库") @RestController @RequestMapping("/pda/so") public class PdaDocSoController { @Autowired private IBusinessService businessService; @Autowired private IWmsDocOrderHeaderService wmsDocOrderHeaderService; @ApiOperation("出库位->接驳位任务下发") @PostMapping("outToTran") public AjaxResult outToTran(@RequestBody DocOrderHeader docOrderHeader) { } ``` ## 出库获取物料列表 ```java @RestController @RequestMapping("/pda/inv") public class PdaInvLotLocIdController { @Autowired private IInvLotLocIdService invLotLocIdService; @Autowired private InvLotLocIdMapper invLotLocIdMapper; @GetMapping("/getSku") public AjaxResult getSku() { InvLocIdSearchFrom invLocIdSearchFrom = new InvLocIdSearchFrom(); invLocIdSearchFrom.setZoneId(Constant.ZONE_TYPE.STORAGE.getValue().toString()); List invLotLocIdLotattVOList = invLotLocIdMapper.selectInvLocIdSkuListGroupBy(invLocIdSearchFrom); return AjaxResult.success("", invLotLocIdLotattVOList); } ``` # PDA质检接口 ## 获取质检批次接口 ```java @RestController @RequestMapping("/pda/qc") public class PdaDocQcController { @Autowired private IDocQcHeaderService iDocQcHeaderService; @Autowired private IDocQcDetailsService iDocQcDetailsService; /** * 获取质检列表(根据sku) * * @return */ @GetMapping("/getQcList") public AjaxResult getQcListByInvLotLocId(String sku) { List qcListByInvLotLocId = iDocQcHeaderService.getQcListByInvLotLocId(sku); if (qcListByInvLotLocId.size() == 0) { return AjaxResult.error("没有需要质检的库存!"); } return AjaxResult.success("获取成功!", qcListByInvLotLocId); } } ``` ## 质检提交接口 ```java /** * 质检提交 * * @param sku 产品代码 * @param batchNo 批号 * @param status 质量状态 * @return */ @Log(title = "PDA质检提交(根据库存质检)", businessType = BusinessType.UPDATE) @PostMapping("/submit") public AjaxResult qcSubmit(String sku, String batchNo, String status) { return iDocQcHeaderService.qcSubmit(sku, batchNo, status); } ``` # 所有配置任务生成接口 ```java public interface IBusinessService { /** * AGV呼叫业务 * * @param flowId * @param agvCallDTO * @return */ AjaxResult agvCall(Long flowId, AgvCallDTO agvCallDTO); } ``` # 定时任务接口-RFID-按钮盒-自动门等任务 ```java @Component public class StartService implements CommandLineRunner { @Autowired private IBusinessService businessService; @Autowired private InitTaskConfig initTaskConfig; @Autowired private AciService aciService; @Autowired private AutoTranSitTask autoTranSitTask; @Autowired private AutoRfidReaderTask autoRfidReaderTask; @Autowired private AutoButtonBoxTask autoButtonBoxTask; @Override public void run(String... args) throws Exception { //自动下发任务 if (initTaskConfig.getAutoSend()) { Thread thread = new Thread(new AutoTaskThread(businessService)); thread.start(); } //ndc下发 if (initTaskConfig.getAciService()) { Thread thread = new Thread(new AciServiceThread(aciService)); thread.start(); } } /** * 自动接驳位任务 * 1.扫描有货的接驳位,如果标记是ASN则进行自动入库 * 2.扫描有货的接驳位,如果标记是SO则进行自动出库 */ public void autoTranSitTask() { autoTranSitTask.run(); } /** * 自动RFID读取任务(墙外) * 1.带有标签的人工叉车靠近RFID阅读器,开启自动门 * 2.带有标签的人工叉车离开RFID阅读器,关闭自动门 */ public void autoRfidReaderTask() { autoRfidReaderTask.run(); } /** * 自动RFID读取任务(室内) */ public void autoRfidReaderTask01() { autoRfidReaderTask.run01(); } /** * 自动按钮盒监控任务 * 1.人工卸完货之后按下冲边按钮,触发冲边搬运任务 * 2.人工卸完货之后按下硫化按钮,触发硫化搬运任务 */ public void autoButtonBoxTask() { autoButtonBoxTask.run(); } ```