//package com.prolog.cs.biz.outbound.controller;
//
//import com.prolog.cs.basic.warehouse.model.BaseWmsWarehouseMst;
//import com.prolog.cs.biz.outbound.dao.WaveBillMapper;
//import com.prolog.cs.biz.outbound.model.dto.check.CheckConfirmDTO;
//import com.prolog.cs.biz.outbound.model.dto.check.CheckInfoDTO;
//import com.prolog.cs.biz.outbound.model.dto.check.CheckMakeRedDTO;
//import com.prolog.cs.biz.outbound.model.dto.check.LclAdjustDTO;
//import com.prolog.cs.biz.outbound.model.entity.BarcodeHDO;
//import com.prolog.cs.biz.outbound.model.vo.PrintVO;
//import com.prolog.cs.biz.outbound.model.vo.check.InnerCheckBillVO;
//import com.prolog.cs.biz.outbound.model.vo.check.LclVO;
//import com.prolog.cs.biz.outbound.service.InnerCheckService;
//import com.prolog.framework.bz.common.print.PrintData;
//import com.prolog.framework.common.message.RestMessage;
//import com.prolog.framework.lock.annotation.RepeatOperationLock;
//import com.prolog.framework.log.aop.annotation.UserLog;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.List;
//import java.util.Map;
//
///**
// * @Description: 初版内复核，新版已在界面交互、接口响应作重大优化，旧版仅作参考，建议在新版升级
// * @Author: 田海龙
// * @Date: 2022/6/23 9:52
// */
//@Api(tags = "复核任务")
//@RestController
//@RequestMapping("/inner/check")
//public class InnerCheckController {
//
//    @Autowired
//    private InnerCheckService innerCheckService;
//
//    @Autowired
//    private WaveBillMapper billMapper;
//
//    @Deprecated
//    @UserLog
//    @RepeatOperationLock(timeOut = 1000)
//    @ApiOperation(value = "根据容器id获取订单信息")
//    @GetMapping("/container")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "containerCode", value = "容器id", required = true),
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码")
//    })
//    public RestMessage<InnerCheckBillVO> getCheckInfoFromContainerId(String containerCode, String stationCode) {
//        return innerCheckService.getCurrentContainer(containerCode, stationCode);
//    }
//
//    @Deprecated
//    @UserLog
//    @ApiOperation(value = "扫码复核商品")
//    @PostMapping("/item")
//    @RepeatOperationLock(timeOut = 1000)
//    public RestMessage<InnerCheckBillVO> checkItem(@RequestBody CheckInfoDTO checkInfoDTO) {
//        return innerCheckService.checkItem(checkInfoDTO);
//    }
//
//    @Deprecated
//    @UserLog
//    @ApiOperation(value = "数量复核商品")
//    @PostMapping("/item/number")
//    @RepeatOperationLock(timeOut = 1000)
//    public RestMessage<InnerCheckBillVO> checkItemByNum(@RequestBody CheckInfoDTO checkInfoDTO) {
//        return innerCheckService.checkItemByNum(checkInfoDTO);
//    }
//
//    @UserLog
//    @ApiOperation(value = "内复核明细保存")
//    @PostMapping("/saveInnerCheckDetails")
//    public RestMessage<Boolean> saveInnerCheckDetails(@RequestBody CheckConfirmDTO checkConfirmDTO) {
//        innerCheckService.saveInnerCheckDetails(checkConfirmDTO);
//        return RestMessage.doSuccess(true);
//    }
//
//
//    @UserLog
//    @ApiOperation(value = "容器复核确认")
//    @PostMapping("/confirm")
//    public RestMessage<List> containerCheckConfirm(@RequestBody CheckConfirmDTO checkConfirmDTO) {
//        return innerCheckService.containerCheckConfirm(checkConfirmDTO);
//    }
//
//
//    @UserLog
//    @RepeatOperationLock(timeOut = 3000)
//    @ApiOperation(value = "添加拼箱")
//    @PostMapping("/lcl/barcode")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = true),
//            @ApiImplicitParam(name = "containerCode", value = "容器编码", required = true),
//            @ApiImplicitParam(name = "billGroupId", value = "订单id", required = true)
//    })
//    public RestMessage<BarcodeHDO> addLcl(String stationCode, String billGroupId, String containerCode) {
//        return innerCheckService.addLcl(stationCode, billGroupId, containerCode);
//    }
//
//    @UserLog
//    @ApiOperation(value = "获得拼箱打印数据")
//    @GetMapping("/lcl/print")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "containerCode", value = "复核台编码", required = false),
//            @ApiImplicitParam(name = "billGroupId", value = "订单id", required = true),
//            @ApiImplicitParam(name = "lclNo", value = "拼箱号")
//
//    })
//    public RestMessage<PrintVO> printLcl(String containerCode, String billGroupId, String lclNo) {
//        return RestMessage.doSuccess(innerCheckService.printLcl(containerCode, billGroupId, lclNo));
//    }
//
//    @UserLog
//    @ApiOperation(value = "获得拼箱明细打印数据")
//    @GetMapping("/lcl/detail/print")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = false),
//            @ApiImplicitParam(name = "billGroupId", value = "订单id", required = true),
//            @ApiImplicitParam(name = "lclNo", value = "拼箱号")
//
//    })
//    public RestMessage<PrintData> printLclDetail(String stationCode, String billGroupId, String lclNo) {
//        return RestMessage.doSuccess(innerCheckService.printLclDetail(stationCode, billGroupId, lclNo));
//    }
//
//    @UserLog
//    @ApiOperation(value = "复核结果冲红")
//    @PostMapping("/red")
//    public RestMessage<InnerCheckBillVO> makeCheckRed(@RequestBody CheckMakeRedDTO redDTO) {
//        return innerCheckService.makeCheckRed(redDTO);
//    }
//
//
//    @UserLog
//    @ApiOperation(value = "拼箱查询")
//    @GetMapping("/lcl/query")
//    @RepeatOperationLock(timeOut = 500)
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = true),
//            @ApiImplicitParam(name = "billGroupId", value = "订单id", required = true),
//            @ApiImplicitParam(name = "containerCode", value = "容器编码"),
//            @ApiImplicitParam(name = "lclNo", value = "拼箱号"),
//            @ApiImplicitParam(name = "isDoubleCheck", value = "是否双人复核")
//
//    })
//    public RestMessage<LclVO> queryLcl(String stationCode, String billGroupId,
//                                       String lclNo, String containerCode, Integer isDoubleCheck) {
//        return innerCheckService.queryLcl(stationCode, billGroupId, lclNo, containerCode, isDoubleCheck);
//    }
//
//    @UserLog
//    @ApiOperation(value = "拼箱调整")
//    @PostMapping("/lcl/adjust")
//    public RestMessage<Boolean> lclAdjust(@RequestBody List<LclAdjustDTO> lclInfos) {
//        return innerCheckService.lclAdjust(lclInfos);
//    }
//
//    @UserLog
//    @ApiOperation(value = "通过条码获取编码")
//    @GetMapping("/item/info")
//    public RestMessage<String> getItemInfo(@RequestParam String itemBarcode,
//                                           @RequestParam String billGroupId) {
//        return innerCheckService.getItemInfo(itemBarcode,billGroupId);
//    }
//
//
//    @UserLog
//    @ApiOperation(value = "拼箱删除")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = true),
//            @ApiImplicitParam(name = "billGroupId", value = "订单id", required = true),
//            @ApiImplicitParam(name = "lclNo", value = "拼箱号")
//
//    })
//    @PostMapping("/lcl/delete")
//    public RestMessage<Boolean> lclDelete(String stationCode, String billGroupId, String containerCode, String lclNo) {
//        return innerCheckService.lclDelete(stationCode, billGroupId,containerCode, lclNo);
//    }
///*
//
//    @UserLog
//    @ApiOperation(value = "复核台工作任务查询")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = true),
//            @ApiImplicitParam(name = "warehouseId", value = "仓库id", required = true),
//
//    })
//    @PostMapping("/task/query")
//    public RestMessage<Boolean> taskQuery(String stationCode,  String warehouseId) {
//        return innerCheckService.taskQuery(stationCode,warehouseId);
//    }
//*/
//
//
//    @UserLog
//    @ApiOperation(value = "整件拆分")
//    @PostMapping("/pieceBreak")
//    @ApiImplicitParams({
//            @ApiImplicitParam(name = "stationCode", value = "复核台编码", required = true),
//            @ApiImplicitParam(name = "billGroupId", value = "订单分组id", required = true),
//            @ApiImplicitParam(name = "containerCode", value = "容器code", required = true, dataType = "String")
//    })
//    public RestMessage<Boolean> pieceBreak(String billGroupId, String containerCode, String stationCode) {
//        return innerCheckService.pieceBreak(billGroupId, containerCode, stationCode);
//    }
//
//
//    @ApiOperation(value = "内复核获取配置参数:" +
//            "pickWay拣货方式：0-整散分开，拼箱保存按钮显示 1-整单拣货,拼箱保存按钮隐藏" +
//            "scanSupervisionCodeStage不变")
//    @ApiImplicitParam(name = "warehouseId", value = "warehouseId", required = true, dataType = "String")
//    @GetMapping("innerCheckConfig")
//    public RestMessage<Map> innerCheckConfig(String warehouseId) throws Exception {
//        return RestMessage.newInstance(true, "查询成功", innerCheckService.innerCheckConfig(warehouseId));
//    }
//
//}
