package com.vincent.rsf.server.api.controller.pda; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.api.entity.params.CallForEmptyContainersParam; import com.vincent.rsf.server.api.entity.params.ContainerWaveParam; import com.vincent.rsf.server.api.entity.params.OrderOutGeneralParam; import com.vincent.rsf.server.api.service.PdaOutStockService; import com.vincent.rsf.server.manager.entity.WkOrder; import com.vincent.rsf.server.manager.entity.WkOrderItem; import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.manager.service.OutStockItemService; import com.vincent.rsf.server.manager.service.OutStockService; import com.vincent.rsf.server.system.constant.DictTypeCode; import com.vincent.rsf.server.system.controller.BaseController; import com.vincent.rsf.server.system.entity.DictData; import com.vincent.rsf.server.system.service.DictDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.Map; @Api(tags = "PDA出库操作接口") @RequestMapping("/pda") @RestController public class PdaOutStockController extends BaseController { @Autowired private PdaOutStockService pdaOutStockService; @Resource private OutStockService outStockService; @Resource private OutStockItemService outStockItemService; @Autowired private DictDataService dictDataService; @GetMapping("/outStockTaskItem/{barcode}") @ApiOperation("快速拣货查询") public R getOutStockTaskItem(@PathVariable String barcode) { return pdaOutStockService.getOutStockTaskItem(barcode); } @GetMapping("/saveOutTaskSts/{barcode}") @ApiOperation("快速拣货") public R saveOutTaskSts(@PathVariable String barcode) { return pdaOutStockService.saveOutTaskSts(barcode); } @PostMapping("/getWaveList") @ApiOperation("查询波次列表") public R getWaveListItem(@RequestBody Map map) { return pdaOutStockService.getWaveListItem(map.get("barcode")); } @PostMapping("/getContainerWaveList") @ApiOperation("根据容器码查询波次及出库单") public R getContainerWaveList(@RequestBody Map map) { return pdaOutStockService.getContainerWaveList(map); } @PostMapping("/saveWavePick") @ApiOperation("根据容器码查询波次及出库单") public R saveWavePick(@RequestBody ContainerWaveParam containerWaveParam) { return pdaOutStockService.saveWavePick(containerWaveParam, getLoginUserId()); } @PostMapping("/callForEmptyContainers") @ApiOperation("呼叫空容器") public R callForEmptyContainers(@RequestBody CallForEmptyContainersParam containerWaveParam) { return pdaOutStockService.callForEmptyContainers(containerWaveParam, getLoginUserId()); } // @PreAuthorize("hasAuthority('manager:outStock:list')") @PostMapping("/outStockItem/page") public R page(@RequestBody JSONObject param) { return R.ok() .add(outStockItemService.list(new LambdaQueryWrapper<>(WkOrderItem.class).eq(WkOrderItem::getDeleted, 0) .eq(WkOrderItem::getOrderCode, param.getString("orderId")))); } @PostMapping("/orderOut/getType") public R orderOutGetType(@RequestBody OrderOutGeneralParam param) { if (Cools.isEmpty(param)) { return R.ok(); } List dictData = dictDataService.list(new LambdaQueryWrapper() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE) .in(DictData::getValue, param.getType())); return R.ok(dictData); } @RequestMapping(value = "/orderOut/list") public R pdaPageList(@RequestParam(required = true) String orderNo, @RequestParam(defaultValue = "1") Integer curr, @RequestParam(defaultValue = "5") Integer limit) { Page page = new Page<>(curr, limit); LambdaQueryWrapper wkOrderLambdaQueryWrapper = new LambdaQueryWrapper<>(); wkOrderLambdaQueryWrapper.eq(WkOrder::getType, OrderType.ORDER_OUT.type); wkOrderLambdaQueryWrapper.eq(!Cools.isEmpty(orderNo), WkOrder::getCode, orderNo); Page wkOrderPage = outStockService.page(page, wkOrderLambdaQueryWrapper); return R.ok(wkOrderPage); } @RequestMapping(value = "/orderOut/detlList") public R orderOutDetlList(@RequestParam(required = true) String orderNo) { if (Cools.isEmpty(orderNo)) { return R.error("订单号为空"); } LambdaQueryWrapper wkOrderLambdaQueryWrapper = new LambdaQueryWrapper<>(); // wkOrderLambdaQueryWrapper.eq(WkOrderItem::getType, OrderType.ORDER_OUT.type); wkOrderLambdaQueryWrapper.eq(!Cools.isEmpty(orderNo), WkOrderItem::getOrderCode, orderNo); List list = outStockItemService.list(wkOrderLambdaQueryWrapper); return R.ok(list); } @PostMapping("/orderOut/getOutLocView") public R orderOutGetOutLocView(@RequestBody OrderOutGeneralParam param) { // 参数 param.getOrderItemId()//出库预览 return R.ok(); } // // @PostMapping("/orderOut/getOutLocRun") // public R orderOutGetOutLocView(@RequestBody OrderOutGeneralParam param) { // //参数 param.getOrderItemId()//出库执行 // // return R.ok(); // } }